Re: [INTERFACES] ODBC, Delphi and BLOBs (images)

From: Byron Nikolaidis <byronn(at)insightdist(dot)com>
To: Andrzej Szydlo <andrzej(at)maciek(dot)gv(dot)edu(dot)pl>
Cc: pgsql-interfaces(at)hub(dot)org
Subject: Re: [INTERFACES] ODBC, Delphi and BLOBs (images)
Date: 1998-08-18 19:34:44
Message-ID: 35D9D754.F00E9F98@insightdist.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

It seems that the error handling in the _SQLFetch routine was a little
behind the times, which is confusing things even more and producing the
"unrecognized return value from copy_and_convert...".

I have fixed the error handling code so that it should hopefully return a
better description of the problem.

FYI, there are three possibilities that can cause the 0 to appear:

1. The large object couldn't be opened
2. The large object couldn't be read
3. Something is wrong/incompatible with the multiple GetData calls.

I'm gonna send you the new driver with the better error handling to try in
another mailing.

Byron

Andrzej Szydlo wrote:

> Hello,
>
> I'm trying to access PostgreSQL database from Delphi via ODBC.
> Everything works fast and reliably. The only problem are BLOBs,
> images in this case.
>
> I created the "lo" type according to the FAQ:
>
> create type lo (
> internallength=4, externallength=10,
> input=int4in, output=int4out,
> default='', passedbyvalue
> );
>
> and then created a table and an index:
>
> CREATE TABLE test_tab(nr int4, img lo);
> CREATE UNIQUE INDEX test_inx ON test_tab (nr);
>
> I attached a DBImage control to the "img" field and DBEdit to "nr"
>
> When I insert "images" to the table manually, later Delphi displays
> it without any problem.
>
> When I try to insert any image from Dephi, the value "0" is inserted
> instead of any real OID value, which causes:
>
> "Unrecognized return value from copy_and_convert_field."
>
> on a select attempt.
>
> What can cause "0" to be inserted instead of any value, say 16648?
> Have anyone ever had similar problem? How can it be solved?
>
> It seems that the problem is caused by the Delphi-ODBC interaction.
> With Access everything works well.
>
> If the information I gave here is not precise enough or unclear,
> please ask me for any extra details.
>
> I'd appreciate any suggestions pointing me to the right direction.
>
> Here are software versions and logs:
>
> Delphi: 2.0
> BDE: 4.51
> Postgres - ODBC: 6.30.0248
> Postgres: 6.3.2
> ODBC Admin: 3.0.23.1
>
> In case of UPDATE the psqlodbc.log looks like this:
>
> conn=44173436, query='SELECT "img" FROM "test_tab" WHERE "nr"=255'
> [ fetched 1 rows ]
> conn=44173436, query='BEGIN'
> conn=44173436, query='UPDATE "test_tab" SET "img"=0 WHERE "nr"=255'
> ^^^^^^
> why 0?
> conn=44173436, query='COMMIT'
> conn=44173436, query='SELECT "img" FROM "test_tab" WHERE "nr"=255'
> [ fetched 1 rows ]
> STATEMENT ERROR: func=SQLFetch, desc='', errnum=8, errmsg='Unrecognized
> return
> value from copy_and_convert_field.'
>
> Andrzej

In response to

Browse pgsql-interfaces by date

  From Date Subject
Next Message Roeland M.J. Meyer 1998-08-18 21:38:06
Previous Message Andrzej Szydlo 1998-08-18 19:19:13 ODBC, Delphi and BLOBs (images)