Thread: psqlodbc : SOS

psqlodbc : SOS

From
mjoseph@inautix.com
Date:
Hi,

I am using the psqlodbc ODBC driver. I have a few problems. I was wondering
if you could help.

I am using Visual C++ to develop my app. I need to access a byte array
(bytea) field.
1. I use the Windows ODBC api to insert the byte array ( a photograph). I
do multiple SQLPutData() calls. This application works fine with Access.
But with PostgreSQL, it fails. A number gets inserted instead (5 bytes).

2. I tried using MFC's ODBC support. In the CRecordSet's
DoFieldExchange(CFieldExchange* pFX) method, I setup the binding as below.

RFX_Binary(pFX, _T("[data]"), m_data, 100*1024);

100K I assume is the upper limit of the field. THis works on Access but not
for PostgreSQL. The default limit of 255 is not overridden.

If any of these are known issues, could you let me know. If you have any
ideas as to how I can set this right, please get back to me.

3. The psqlodbc  faq when discussing Large Objects suggests creating a new
type like this.
create type lo (
   internallength=4,
   externallength=10,
   input=int4in,
   output=int4out,
   default='',
   passedbyvalue
);

How should I define the input and output functions. Would you be able to
pass on some sample code?
Regards,
Manoj