ODBC, large objects and tracing

From: "Eliot Cline" <eliotcline(at)hotmail(dot)com>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: ODBC, large objects and tracing
Date: 1999-12-21 07:47:22
Message-ID: 19991221074723.89113.qmail@hotmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

Hi,

I am porting an application from Win NT to Linux. It is an application for
storing, querying, subsetting and exporting geographic data. On NT the data
is stored in MS SQL Server, database access is handled through a dll which
handles all requests for data from the application. The dll is written using
ODBC 3 as the interface to SQL Server.

I installed postgresql 6.53 a few days ago and had a go at getting the dll
code working with the postgresql odbc driver. As the driver is written for
odbc 2.0, I decided to try the UnixOdbc driver and driver manager. Using
their package my code compiled perfectly, with NO modifications.

However, I immediatley ran into trouble when inserting into large-objects
(Lot's of blobs in this app!). In the server trace there was an error to the
effect of "Invalid large object descriptor".

That had me stumped until yesterday, when I ran across a patch for the ODBC
driver on this mailing list (dated Dec. 8, 99). I applied the patch (by
hand) to the UnixODBC version of the postgres driver, and the problem went
away. I'm impressed! I thought it was going to be way more difficult than
this.

If anyone is interested, I would be happy to supply the modified source
files for the driver and a script I cobbled together to add the large object
support functions, data type and table trigger (for deleting lo's). It all
seems to work quite well.

I do have a couple of questions. What datatype does SQL_VARBINARY map to in
postgresql? I searched the driver header files and came up with "bytea". But
when I try to use it by binding my binary data to a parameter in the insert
statement and then calling SQLExecute, SQLPutDate, etc., all I get is an
SQL_ERROR return value from SQLExecute.

Finally, as lame as it sounds, I can't figure out how to make the odbc trace
work! I've set TRACE = yes and specified a tracefile located in the postgres
home directory. It is always empty. Have I missed something obvious?

Thanks,

Eliot Cline
IT Systems Manager
Intercontinental Sourcing and Services, Ltd.
Bangkok, Thailand
______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Ericson Nunes Ferreira 1999-12-21 08:30:29 Odbc error on update method
Previous Message Hiroki Kataoka 1999-12-21 07:45:10 RE: ODBC and RDO