I downloaded/installed the 8.7 client on Linux. Still blew
at the same place. I didn't upgrade the server to 8.7 because
we have to go through a whole test and acceptance process.
If the 8.7 client acted any differently I probably would have
upgraded the server.
Can a 9.x client talk to an 8.5 server?
On 2007-03-15 07:16, Bill Bach wrote:
> V8.5 was pretty early in the Linux code. Perhaps moving to V8.7 would
> help? This is a free update...
> Goldstar Software Inc.
> Pervasive-based Products, Training & Services
> Bill Bach
> BillBach@[EMAIL PROTECTED]
> http://www.goldstarsoftware.com
> *** Chicago: Pervasive Service & Sup****t Class - 03/2007 ***
>
> John C. Frickson wrote:
>
>> I tried initializing buflen, and using SQLConnect(). Still get
>> seg fault.
>>
>> For grins, I tried installing the 9.5 driver, but it couldn't
>> talk to the 8.5 server. I didn't think it would work, but it was
>> worth a try.
>>
>> Maybe I'll try writing C wrapper functions and call them from
>> the C++ program.
>>
>>
>> On 2007-03-13 11:13, Bill Bach wrote:
>> > Not sure if it is the same thing or not, but this sounds awfully
>> > similar:
>> > http://bugs.mysql.com/bug.php?id=15248
>> >
>> > Other random suggestions (with no basis whatsoever):
>> > 1) buflen is not initialized. Definition I found was "Pointer to
>> > the total number of bytes (excluding the null termination byte)
>> > available to return in szConnStrOut." Not sure if it should be
>> > initialized to 256 or not.
>> > 2) Have you tried the more simplistic SQLConnect? Or do you need
>> > more flexibility in your "real" code?
>> > BtrieveBill
>> >
>> > John C. Frickson wrote:
>> >
>> >> I'm migrating some of our applications from Windows to our
>> >> Linux servers. The programs are in C++. They always get a
>> >> segmentation fault in SQLDriverConnect(). I've created a very
>> >> simple program in both C and C++ that exhibits the problem.
>> >> Save as both prg_c.c and prg_cpp.cpp and compiled with:
>> >> gcc -m32 -lodbc -o prg_c prg_c.c
>> >> g++ -m32 -lodbc -o prg_cpp prg_cpp.c
>> >> (-m32 because the server is running 64-bit Linux and PSQL
>> >> only comes with 32-bit drivers.)
>> >>
>> >> -----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----
>> >> #include <string.h>
>> >> #include <sql.h>
>> >> #include <sqlext.h>
>> >>
>> >> int main(int argc, char **argv)
>> >> {
>> >> SQLHENV henv;
>> >> SQLHDBC hdbc;
>> >> SQLCHAR dsn[120];
>> >> short buflen;
>> >> char buffer[257];
>> >> int status;
>> >>
>> >> strcpy((char*)dsn, "DSN=Paragon");
>> >> if (SQLAllocEnv (&henv) != SQL_SUCCESS)
>> >> return -1;
>> >> if (SQLAllocConnect (henv, &hdbc) != SQL_SUCCESS)
>> >> return -1;
>> >> status = SQLDriverConnect (hdbc, 0, dsn, SQL_NTS,
>> >> (SQLCHAR*)buffer, sizeof (buffer), &buflen,
>> >> SQL_DRIVER_COMPLETE);
>> >> if (status != SQL_SUCCESS && status != SQL_SUCCESS_WITH_INFO)
>> >> return -1;
>> >> SQLDisconnect (hdbc);
>> >> SQLFreeConnect (hdbc);
>> >> SQLFreeEnv (henv);
>> >>
>> >> return 0;
>> >> }
>> >> -----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<-----
>> >>
>> >> The straight C program runs fine. The C++ program blows in
>> >> the SQLDriverConnect() call.
>> >>
>> >> I've tried both -lodbc and -liodbc and both fail at the same
>> >> place.
>> >>
>> >> John
>> >
>


|