Expi Geschrieben 14. Juli 2005 Teilen Geschrieben 14. Juli 2005 Hy, was brauch ich alles um mich über ein c programm an nem sql server anzumelden ? OS ist Cygwin Compiler gcc Postgresql ist installiert Die includes sind "sql.h" und "sqlext.h", richtig ? Muss ich irgendwas dem compiler als option übergeben ? Thx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Expi Geschrieben 15. Juli 2005 Autor Teilen Geschrieben 15. Juli 2005 Also, hab mich noch etwas weiter mit Google beschäftigt und weiß jetzt dass man "unixODBC" installiert haben muss. odbcUnix ist in /usr/local installiert. Hier der Code von nem Beispiel Prog: #include <stdio.h> #include <sql.h> #include <sqlext.h> main() { SQLHENV env; char driver[256]; char attr[256]; SQLSMALLINT driver_ret; SQLSMALLINT attr_ret; SQLUSMALLINT direction; SQLRETURN ret; SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env); SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (void *) SQL_OV_ODBC3, 0); direction = SQL_FETCH_FIRST; while(SQL_SUCCEEDED(ret = SQLDrivers(env, direction, driver, sizeof(driver), &driver_ret, attr, sizeof(attr), &attr_ret))) { direction = SQL_FETCH_NEXT; printf("%s - %s\n", driver, attr); if (ret == SQL_SUCCESS_WITH_INFO) printf("\tdata truncation\n"); } } Die Optionen beim Compilen sollten folgende sein: gcc -c odbc.c -I/usr/local/include/ ( laut : http://www.dbmaker.com.tw/reference/manuals/odbc/odbc_chap_02.html ) und dann gcc -o odbc odbc.o -L/usr/local/lib -lodbc laut : http://www.easysoft.com/products/9999/faq_answer.phtml?ID=750&product=2002 ) Nur beim übersetzen kommt jetzt folgendes: $ gcc -o odbc odbc.o -L/usr/local/lib -lodbc /usr/local/lib/libodbc.a(__info.o): In function `unicode_shutdown': /home/test/unixODBC-2.2.11/DriverManager/__info.c:561: undefined reference to `_libiconv_close' /home/test/unixODBC-2.2.11/DriverManager/__info.c:566: undefined reference to `_libiconv_close' /usr/local/lib/libodbc.a(__info.o): In function `ansi_to_unicode_copy': /home/test/unixODBC-2.2.11/DriverManager/__info.c:719: undefined reference to `_libiconv' /usr/local/lib/libodbc.a(__info.o): In function `unicode_to_ansi_copy': /home/test/unixODBC-2.2.11/DriverManager/__info.c:664: undefined reference to `_libiconv' /usr/local/lib/libodbc.a(__info.o): In function `unicode_setup': /home/test/unixODBC-2.2.11/DriverManager/__info.c:470: undefined reference to `_libiconv_open' /home/test/unixODBC-2.2.11/DriverManager/__info.c:474: undefined reference to `_libiconv_close' /home/test/unixODBC-2.2.11/DriverManager/__info.c:534: undefined reference to `_libiconv_open' /home/test/unixODBC-2.2.11/DriverManager/__info.c:535: undefined reference to `_libiconv_open' /home/test/unixODBC-2.2.11/DriverManager/__info.c:492: undefined reference to `_libiconv_open' /home/test/unixODBC-2.2.11/DriverManager/__info.c:495: undefined reference to `_libiconv_close' collect2: ld returned 1 exit status Hat jemand ne Ahnung was da nicht stimmt ? Thx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fraunz81 Geschrieben 21. Juli 2005 Teilen Geschrieben 21. Juli 2005 Hallo! Ich weis zwar nicht was du da programmiert hast, aber schau dir mal die folgende Seite an: http://www.pronix.de/pronix-4.html Unter Punkt 27 ist "MySQL mit C" beschrieben. Ist zwar für Windows aber man kann sich ein Bild machen was einem noch fehlen kann. Schau ob du eine Developer - Beschreibung zu deinem Server findest, die APIs für den Zugriff enthält. Ich hoffe es hilft dir weiter. Viel Spaß. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
defi Geschrieben 28. Juli 2005 Teilen Geschrieben 28. Juli 2005 Du musst beim Linken noch die ICONV-Bibliothek angeben, also gcc -o odbc odbc.o -L/usr/local/lib -lodbc -liconv Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.