Thread: Error in convert.c when compiling w/ odbcver=0x0300
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
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
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
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