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

Поиск
Список
Период
Сортировка
От Byron Nikolaidis
Тема Re: [INTERFACES] ODBC, Delphi and BLOBs (images)
Дата
Msg-id 35D9D754.F00E9F98@insightdist.com
обсуждение исходный текст
Ответ на ODBC, Delphi and BLOBs (images)  (Andrzej Szydlo <andrzej@maciek.gv.edu.pl>)
Список 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




В списке pgsql-interfaces по дате отправления:

Предыдущее
От: Byron Nikolaidis
Дата:
Сообщение: Re: [INTERFACES] iodbc interface on Unix
Следующее
От: "Roeland M.J. Meyer"
Дата:
Сообщение: ...