Re: Interface

Started by Bob Pawleyalmost 20 years ago4 messagesgeneral
Jump to latest
#1Bob Pawley
rjpawley@shaw.ca

To refresh people's memory I have a simple Delphi interface (TEdit and
TNavigator) connected via ODBC to a Postgresql 8.0 table.

I've tried the earlier suggestions in various forms with no success.

I again was successful in updating the table with the table containing no
serial column. With the serial column included I get an error massage that
the serial column needs a value.

I don't understand why the serial column is generated when a row is created
manually through Postgresql Admin interface but it doesn't generate when a
row is added through the Delphi interface.

Could someone explain this difference?

Bob Pawley

----- Original Message -----
From: "Bob Pawley" <rjpawley@shaw.ca>
To: "Joshua D. Drake" <jd@commandprompt.com>
Cc: "Frank L. Parks" <fparks@ezbizpartner.com>; "Postgresql"
<pgsql-general@postgresql.org>
Sent: Wednesday, May 10, 2006 3:55 PM
Subject: Re: [GENERAL] Interface

Show quoted text

Joshua

My first try was to include it with the SQL code on the Update component.
It hasn't worked yet. I want to try variations.

I am also trying a Query component which gave me the same error. I also
have another problem with this component giving me a cursor handle error
which I am attempting to solve. (Same SQL code)

Lots of challenges for a beginner to work through.

Bob
----- Original Message -----
From: "Joshua D. Drake" <jd@commandprompt.com>
To: "Bob Pawley" <rjpawley@shaw.ca>
Cc: "Frank L. Parks" <fparks@ezbizpartner.com>; "Postgresql"
<pgsql-general@postgresql.org>
Sent: Wednesday, May 10, 2006 3:41 PM
Subject: Re: [GENERAL] Interface

Bob Pawley wrote:

Hi Frank

Here's the code entered as part of TUpdateSQL component.
insert into p_id.p_id
(process_name)
values
(:process_name)

Did my DEFAULT not work?

Joshua D. Drake

I am connected via ODBC.

Thanks

Bob

----- Original Message ----- From: "Frank L. Parks"
<fparks@ezbizpartner.com>
To: "Postgresql" <pgsql-general@postgresql.org>
Sent: Wednesday, May 10, 2006 12:30 PM
Subject: Re: [GENERAL] Interface

Bob,

Can you at least show what your insert statement looks like please?
Also, are you using ODBC or VitaVoom's direct driver for DBExpress?

Frank

Bob Pawley wrote:

The folks on the Delphi forum haven't been responsive to this
question. Perhaps the ones that visit the forum don't know the answer.
I have created a Delphi interface to a Postgresql table containing a
serial column.
When I try to insert a new value through the interface I get an error
message that the serial field requires a value.
When I remove the serial column the interface inserts a new value
with no problem. When I insert directly via sql the serial column
updates automatically.
What am I missing to make this work through Delphi?
Bob

---------------------------(end of
broadcast)---------------------------
TIP 6: explain analyze is your friend

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

--

=== The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive PostgreSQL solutions since 1997
http://www.commandprompt.com/

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

#2Jim Nasby
Jim.Nasby@BlueTreble.com
In reply to: Bob Pawley (#1)

I suspect that Delphi is specifying the serial column in the insert
statement, but then not assigning it a value (if you turn on query
logging you'll be able to confirm that). If that's the case, you could
write an insert trigger that would set the serial column's value to
nextval for the appropriate sequence if it's null.

On Thu, May 18, 2006 at 09:02:51AM -0700, Bob Pawley wrote:

To refresh people's memory I have a simple Delphi interface (TEdit and
TNavigator) connected via ODBC to a Postgresql 8.0 table.

I've tried the earlier suggestions in various forms with no success.

I again was successful in updating the table with the table containing no
serial column. With the serial column included I get an error massage that
the serial column needs a value.

I don't understand why the serial column is generated when a row is created
manually through Postgresql Admin interface but it doesn't generate when a
row is added through the Delphi interface.

Could someone explain this difference?

Bob Pawley

----- Original Message -----
From: "Bob Pawley" <rjpawley@shaw.ca>
To: "Joshua D. Drake" <jd@commandprompt.com>
Cc: "Frank L. Parks" <fparks@ezbizpartner.com>; "Postgresql"
<pgsql-general@postgresql.org>
Sent: Wednesday, May 10, 2006 3:55 PM
Subject: Re: [GENERAL] Interface

Joshua

My first try was to include it with the SQL code on the Update component.
It hasn't worked yet. I want to try variations.

I am also trying a Query component which gave me the same error. I also
have another problem with this component giving me a cursor handle error
which I am attempting to solve. (Same SQL code)

Lots of challenges for a beginner to work through.

Bob
----- Original Message -----
From: "Joshua D. Drake" <jd@commandprompt.com>
To: "Bob Pawley" <rjpawley@shaw.ca>
Cc: "Frank L. Parks" <fparks@ezbizpartner.com>; "Postgresql"
<pgsql-general@postgresql.org>
Sent: Wednesday, May 10, 2006 3:41 PM
Subject: Re: [GENERAL] Interface

Bob Pawley wrote:

Hi Frank

Here's the code entered as part of TUpdateSQL component.
insert into p_id.p_id
(process_name)
values
(:process_name)

Did my DEFAULT not work?

Joshua D. Drake

I am connected via ODBC.

Thanks

Bob

----- Original Message ----- From: "Frank L. Parks"
<fparks@ezbizpartner.com>
To: "Postgresql" <pgsql-general@postgresql.org>
Sent: Wednesday, May 10, 2006 12:30 PM
Subject: Re: [GENERAL] Interface

Bob,

Can you at least show what your insert statement looks like please?
Also, are you using ODBC or VitaVoom's direct driver for DBExpress?

Frank

Bob Pawley wrote:

The folks on the Delphi forum haven't been responsive to this
question. Perhaps the ones that visit the forum don't know the answer.
I have created a Delphi interface to a Postgresql table containing a
serial column.
When I try to insert a new value through the interface I get an error
message that the serial field requires a value.
When I remove the serial column the interface inserts a new value
with no problem. When I insert directly via sql the serial column
updates automatically.
What am I missing to make this work through Delphi?
Bob

---------------------------(end of
broadcast)---------------------------
TIP 6: explain analyze is your friend

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

--

=== The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive PostgreSQL solutions since 1997
http://www.commandprompt.com/

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

--
Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com
Pervasive Software http://pervasive.com work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461

#3Tony Caduto
tony_caduto@amsoftwaredesign.com
In reply to: Jim Nasby (#2)

To refresh people's memory I have a simple Delphi interface (TEdit and

TNavigator) connected via ODBC to a Postgresql 8.0 table.

I've tried the earlier suggestions in various forms with no success.

I again was successful in updating the table with the table containing no
serial column. With the serial column included I get an error massage that
the serial column needs a value.

I don't understand why the serial column is generated when a row is created
manually through Postgresql Admin interface but it doesn't generate when a
row is added through the Delphi interface.

Could someone explain this difference?

Bob Pawley

This is a issue with the design time components and also occurs for
Interbase/Firebird Generator (same thing as a sequence)

See this google link:

http://groups.google.com/group/comp.lang.pascal.delphi.databases/browse_thread/thread/72e87907b66a6923/153daefcdf7a5d9a?lnk=st&amp;q=delphi+interbase+grid+generator&amp;rnum=1&amp;hl=en#153daefcdf7a5d9a

Another one:

http://groups.google.com/group/borland.public.interbase/browse_thread/thread/dd2e2975f2119f2c/8ca7149bac382cc5?lnk=st&amp;q=delphi+interbase+grid+generator&amp;rnum=22&amp;hl=en#8ca7149bac382cc5

I am assuming you are using the serial field as the PK, so you could
also set the PK property to not required as in the last link.

This is related to ODBC though, you might really want to look at Zeos or
PostgresDAC which are native delphi tdataset and have this issue taken
care of internally.
I have never had this problem with either Zeos or PostgresDAC.

Hope this helps,

--
Tony Caduto
AM Software Design
http://www.amsoftwaredesign.com
Home of PG Lightning Admin for Postgresql
Your best bet for Postgresql Administration

#4Bob Pawley
rjpawley@shaw.ca
In reply to: Bob Pawley (#1)

Thanks Tony

I installed PostgresDAC and it cleared up the problem.

Bob

----- Original Message -----
From: "Tony Caduto" <tony_caduto@amsoftwaredesign.com>
To: "Jim C. Nasby" <jnasby@pervasive.com>
Cc: "Bob Pawley" <rjpawley@shaw.ca>; "Postgresql"
<pgsql-general@postgresql.org>
Sent: Monday, May 22, 2006 1:54 PM
Subject: Re: [GENERAL] Interface

Show quoted text

To refresh people's memory I have a simple Delphi interface (TEdit and

TNavigator) connected via ODBC to a Postgresql 8.0 table.

I've tried the earlier suggestions in various forms with no success.

I again was successful in updating the table with the table containing
no serial column. With the serial column included I get an error massage
that the serial column needs a value.

I don't understand why the serial column is generated when a row is
created manually through Postgresql Admin interface but it doesn't
generate when a row is added through the Delphi interface.

Could someone explain this difference?

Bob Pawley

This is a issue with the design time components and also occurs for
Interbase/Firebird Generator (same thing as a sequence)

See this google link:

http://groups.google.com/group/comp.lang.pascal.delphi.databases/browse_thread/thread/72e87907b66a6923/153daefcdf7a5d9a?lnk=st&amp;q=delphi+interbase+grid+generator&amp;rnum=1&amp;hl=en#153daefcdf7a5d9a

Another one:

http://groups.google.com/group/borland.public.interbase/browse_thread/thread/dd2e2975f2119f2c/8ca7149bac382cc5?lnk=st&amp;q=delphi+interbase+grid+generator&amp;rnum=22&amp;hl=en#8ca7149bac382cc5

I am assuming you are using the serial field as the PK, so you could also
set the PK property to not required as in the last link.

This is related to ODBC though, you might really want to look at Zeos or
PostgresDAC which are native delphi tdataset and have this issue taken
care of internally.
I have never had this problem with either Zeos or PostgresDAC.

Hope this helps,

--
Tony Caduto
AM Software Design
http://www.amsoftwaredesign.com
Home of PG Lightning Admin for Postgresql
Your best bet for Postgresql Administration

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings