Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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ß.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...