Thread: Error in convert.c when compiling w/ odbcver=0x0300

Error in convert.c when compiling w/ odbcver=0x0300

From
Walt H
Date:
Hello,

In my never ending quest in an attempt to get PostgreSQL to work with
blob data within our application, I attempted to compile the latest odbc
drivers with odbc v. 3.00 support. This fails with:

/bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.     -g
-O2 -c -o convert.lo `test -f 'convert.c' || echo './'`convert.c
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c convert.c -MT convert.lo -MD
-MP -MF .deps/convert.TPlo  -fPIC -DPIC -o convert.lo
convert.c: In function `copy_and_convert_field':
convert.c:1194: incompatible types in assignment
convert.c:1196: incompatible types in assignment
convert.c:1202: incompatible types in assignment
convert.c:1204: incompatible types in assignment

This code evidently compiles in Windows since the odbc driver appears to
be v. 3.00 capable. I'm attempting this on Linux using gcc-3.2.3 and
glibc-2.3.2.  I've tried various other compilers including gcc-2.95.3
and gcc-3.3.1, and have been met with the same results.

Ultimately, I'm trying to use odbc to connect to PostgreSQL within our
app, which is an Omnis Studio application. I need to be able to
store/retrieve binary (blob) data, and have been only partially
successful. Any ideas for a code fix / workaround? I've been
unsuccessful in my attempts so far with odbc < 3.00 - I've had partial
success when running our app under wine and using the native windows
ODBC driver, but due to the added layers/complexity, I'm not sure I
trust the results. Hence the need for native linux w/ odbc v. 3.00  Any
help is appreciated. Thanks,

-Walt



Re: Error in convert.c when compiling w/ odbcver=0x0300

From
Walt H
Date:
Walt H wrote:
> Hello,
>
> In my never ending quest in an attempt to get PostgreSQL to work with
> blob data within our application, I attempted to compile the latest odbc
> drivers with odbc v. 3.00 support.

Sorry, I should have mentioned in my previous mail that I'm attempting
to compile odbc from a CVS pull from 10/7/2003. Anything else I missed
that you might need, just ask. Thanks,

-Walt



Re: Error in convert.c when compiling w/ odbcver=0x0300

From
Bruce Momjian
Date:
Can you suggest a patch to fix this?

---------------------------------------------------------------------------

Walt H wrote:
> Hello,
>
> In my never ending quest in an attempt to get PostgreSQL to work with
> blob data within our application, I attempted to compile the latest odbc
> drivers with odbc v. 3.00 support. This fails with:
>
> /bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.     -g
> -O2 -c -o convert.lo `test -f 'convert.c' || echo './'`convert.c
> gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c convert.c -MT convert.lo -MD
> -MP -MF .deps/convert.TPlo  -fPIC -DPIC -o convert.lo
> convert.c: In function `copy_and_convert_field':
> convert.c:1194: incompatible types in assignment
> convert.c:1196: incompatible types in assignment
> convert.c:1202: incompatible types in assignment
> convert.c:1204: incompatible types in assignment
>
> This code evidently compiles in Windows since the odbc driver appears to
> be v. 3.00 capable. I'm attempting this on Linux using gcc-3.2.3 and
> glibc-2.3.2.  I've tried various other compilers including gcc-2.95.3
> and gcc-3.3.1, and have been met with the same results.
>
> Ultimately, I'm trying to use odbc to connect to PostgreSQL within our
> app, which is an Omnis Studio application. I need to be able to
> store/retrieve binary (blob) data, and have been only partially
> successful. Any ideas for a code fix / workaround? I've been
> unsuccessful in my attempts so far with odbc < 3.00 - I've had partial
> success when running our app under wine and using the native windows
> ODBC driver, but due to the added layers/complexity, I'm not sure I
> trust the results. Hence the need for native linux w/ odbc v. 3.00  Any
> help is appreciated. Thanks,
>
> -Walt
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
>                http://archives.postgresql.org
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Re: Error in convert.c when compiling w/ odbcver=0x0300

From
Walt H
Date:
Bruce Momjian wrote:
> Can you suggest a patch to fix this?
>
> ---------------------------------------------------------------------------
>

I'm sorry, it's been a while since I posted this. I found a workaround and was able to get it
compile since then. From what I remember, it has to do with the way SQLBIGINT was defined from
unixodbc. I believe it is defined as en element of a struct, which created the "incompatible
types" error I received. Since I'm not all too familiar with C, I cheated and created:

typedef long long int mySQLBIGINT;
typedef unsigned mySQLBIGINT mySQLUBIGINT;

at the top of convert.c and replaced the variables used down below with mySQLBIGINT etc... This
allows it to compile. What a nasty hack.

So to answer your original question: I don't think you want my patch :)

-Walt