Thread: Re: [INTERFACES] PostODBC 6.40.0007 to PostgreSQL 6.5.2 NEED HELP : Delphi-ODBC / Pygresql-Python

Re: [INTERFACES] PostODBC 6.40.0007 to PostgreSQL 6.5.2 NEED HELP : Delphi-ODBC / Pygresql-Python

From
Compte utilisateur Sultan-advl
Date:
Hi,
Thanks to Sergio for help about ODBC tuning & is good links to free source
code for Delphi ;-)

Maybe an interface problem with Delphi - ODBC - Postgresql, hope to not disturb
thislist. 

Using this design database since Postgresql 6.3 with Pygresql &  Python cgi
without any problem.Today records of this database still working with Python
& Pygresql.
===
DESCRIPTION  :
Postgresql 6.5.2 & PostODBC 6.40.0007
Using postgresql table whith many text fields & big text in this fields < 8K
for a record Borland crash (IDAPI32.dll & KERNEL.dll error) when using the
DBNavigator with nbRefresh, nbLast, nbFirst Buttons.
NO odbc error in log.
===
A) TABLE PROPERTIES with text  data type (works find with Pygresql & cgi Python
apli) :
Table    = localisation
+----------------------------------+---------------------------------
|              Field               |              Type                | Length|
+----------------------------------+---------------------------------
| id_loc                           | int4 not null|     4 |
| voie_loc                         | text                 |
| codebat_loc                      | text                 |
| idplan_loc                       | int4         |     4 |
| xplan_loc                        | text                 |
| yplan_loc                        | text                 |
| acces_loc                        | text                 |
| accesen_loc                      | text                 |
| id_ville_loc                     | int4         |     4 |
+----------------------------------+---------------------------------
Indices:  localisation_pkey         localisationi1         localisationi2         localisationi3
===
B) TABLE PROPERTIES with char (2048) data type : SAME PROBLEM IN DELPHI - DON'T WORK WITH PYTHON OR PSQL
==========
( Pygresql can't insert data)==> 8K LIMIT ?
==========
Traceback (innermost last): File "./GOSultan.py", line 131, in ?   FctSCAN (file) File "./GOSultan.py", line 103, in
FctSCAN  INSERTDATA(pgcnx, f) File "./GOSultan.py", line 94, in INSERTDATA   q = pgcnx.query(thequery)
 
pg.error: ERROR:  Tuple is too big: size 12356
===========
( Psql can't insert data) ==> 8K LIMIT ?
===========
INSERT INTO localisation
(id_loc,voie_loc,codebat_loc,idplan_loc,xplan_loc,yplan_loc,acces_loc,accesen_loc,id_ville_loc)VALUES ('59','18, rue de
Cheverny','','6','','','','','7');
ERROR:  Tuple is too big: size 12356

===

BACKEND MESSAGE WHEN DELPHI CRASH :

/usr/lib/pgsql/bin/postmaster: ServerLoop:        handling reading 5
/usr/lib/pgsql/bin/postmaster: ServerLoop:        handling reading 5
/usr/lib/pgsql/bin/postmaster: ServerLoop:        handling writing 5
/usr/lib/pgsql/bin/postmaster child[2660]: starting with (/usr/lib/pgsql/bin/postgres -d2 -v131072 -p newkiwi )
/usr/lib/pgsql/bin/postmaster: BackendStartup: pid 2660 user postgres db newkiwi socket 5
FindExec: found "/usr/lib/pgsql/bin/postgres" using argv[0]
debug info:User         = postgresRemoteHost   = 192.168.0.26RemotePort   = 1065DatabaseName = newkiwiVerbose      =
2Noversion   = ftimings      = fdates        = Normalbufsize      = 64sortmem      = 512query echo   = f
 
InitPostgres
StartTransactionCommand
query: set DateStyle to 'ISO'
ProcessUtility: set DateStyle to 'ISO'
CommitTransactionCommand
StartTransactionCommand
query: set geqo to 'OFF'
ProcessUtility: set geqo to 'OFF'
CommitTransactionCommand
StartTransactionCommand
query: set ksqo to 'ON'
ProcessUtility: set ksqo to 'ON'
CommitTransactionCommand
StartTransactionCommand
query: select oid from pg_type where typname='lo'
ProcessQuery
CommitTransactionCommand
StartTransactionCommand
query: SELECT "id_loc" ,"voie_loc" ,"codebat_loc" ,"idplan_loc" ,"xplan_loc" ,"yplan_loc" ,"acces_loc" ,"accesen_loc"
,"id_ville_loc"FROM "localisation" ORDER BY "id_loc" DESC 
 
ProcessQuery
CommitTransactionCommand
StartTransactionCommand
query: SELECT "id_loc" ,"voie_loc" ,"codebat_loc" ,"idplan_loc" ,"xplan_loc" ,"yplan_loc" ,"acces_loc" ,"accesen_loc"
,"id_ville_loc"FROM "localisation" WHERE "id_loc"=61
 
ProcessQuery
CommitTransactionCommand
pq_recvbuf: recv() failed: Connexion r�-initialis�e par le correspondant
proc_exit(0) [#0]
shmem_exit(0) [#0]
exit(0)
/usr/lib/pgsql/bin/postmaster: reaping dead processes...
/usr/lib/pgsql/bin/postmaster: CleanupProc: pid 2659 exited with status 0
pq_recvbuf: recv() failed: Connexion r�-initialis�e par le correspondant
proc_exit(0) [#0]
shmem_exit(0) [#0]
exit(0)
/usr/lib/pgsql/bin/postmaster: reaping dead processes...
/usr/lib/pgsql/bin/postmaster: CleanupProc: pid 2658 exited with status 0
pq_recvbuf: recv() failed: Connexion r�-initialis�e par le correspondant
proc_exit(0) [#0]
shmem_exit(0) [#0]
exit(0)
/usr/lib/pgsql/bin/postmaster: reaping dead processes...
/usr/lib/pgsql/bin/postmaster: CleanupProc: pid 2657 exited with status 0
pq_recvbuf: recv() failed: Connexion r�-initialis�e par le correspondant
proc_exit(0) [#0]
shmem_exit(0) [#0]
exit(0)
/usr/lib/pgsql/bin/postmaster: reaping dead processes...
/usr/lib/pgsql/bin/postmaster: CleanupProc: pid 2660 exited with status 0
pq_recvbuf: recv() failed: Connexion r�-initialis�e par le correspondant
proc_exit(0) [#0]
shmem_exit(0) [#0]
exit(0)
/usr/lib/pgsql/bin/postmaster: reaping dead processes...
/usr/lib/pgsql/bin/postmaster: CleanupProc: pid 2656 exited with status 0
pmdie 2
proc_exit(0) [#0]
shmem_exit(0) [#0]
exit(0)


================END OF BACKEND MSG=============================
Thanks for any help.
Emmanuel.





> >3) Using postgresql table whith many text fields & big text in this fields
> >Borland crash (IDAPI32.dll & KERNEL.dll error) when i use the DBNavigator 
> with 
> >nbRefresh, nbLast, nbFirst Buttons.
> 
> the problem is the following postgresql doesn't support records
> more bigger than 16KB (or at least to updated in chunks of less
> than 16KB), if you need to store bigger fields you have to use the 
> large objects interface.
> AFAIK, this will be fixed in 7.0, there will be no limitations in
> the size of tuples.


It works with Python & Pygresql ; Having make check & records (tuples) < 8Kb


> change the design or wait  :)
> 
> >- Change design of the database [ The type 'text' seems to be 'memo' in 
> DBgrid
> >of Delphi] (I need long description of text in the fields)
> 

Same problem with char (2048)

> >- Don't use DBNavigator with  nbRefresh, nbLast, nbFirst Buttons (Not 
> fixing
> >problem)
> 
> I never use DBNavigator, it only tend to force you to make a bad
> interface with the user.
> What I do use is DBBitBtn at 
> http://www.geocities.com/SiliconValley/Heights/7874/delphi.htm
> 
> 
> Sergio

Very nice link ; no problem to make install of DBBitBtn in Delphi 5 & good
documentation about DBBitBtn. Nice.

BUT SAME PROBLEM :((