Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Datenbankverbindung mit unixODBC

  1. #1
    atlas
    Gast

    Datenbankverbindung mit unixODBC

    Hallo,

    ich möchte aus einem C++ Programm heraus auf eine Datenbank (Informix) zugreifen. Dazu verwende ich die API von unixODBC. Die notwendigen Schritte bis zum Datenbank-Connect werden auch alle korrekt ausgeführt (zumindest gibt es keine Fehlermeldung).

    Versuche ich dann mit Hilfe der Funktion

    retcode = SQLDriverConnect(conHandleNurHier,
    NULL,
    (unsigned char *)i_datenbankString,
    conStrLen,
    (unsigned char *)conOutStr,
    conOutStrLen,
    &conOutStrLenSoll,
    SQL_DRIVER_NOPROMPT);

    die eigentliche DB-Verbindung aufzubauen, so erhalte ich retcode = -1 (d.i. SQL-Error), ein vermutlich gültiges Handel 142535592(SQL_HANDLE_DBC), einen SQL-Status
    sqlState=0002(--?--)
    einen Fehlercode: nativeError=0
    und eine kryptische Fehlermeldung:
    [nxDC[rvrMngrCntoe usrlb'iobc':fl o on

    Fehlercode = 0 und Returncode = -1?? Das passt doch wohl kaum zusammen?! Vielleicht weiß einer von euch, was hier schief läuft.

    Ach ja, meine Umgebung:

    OS: Fedora 13
    Eclipse 3.5.2 mit gcc
    unixODBC 2.2.14
    IBM Informix 3.50.xC7

    Für eure Hilfe dankt im Voraus

    Guido

  2. #2
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Du bist damit im falschen Forenbereich.
    Kennst du das hier schon?
    http://www.unixodbc.org/doc/ProgrammerManual/Tutorial/
    PS: Code währe auch ganz gut
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  3. #3
    atlas
    Gast
    Hallo,

    sorry, wenn ich in der falschen Gruppe bin: Programmieren > Datenbanken klang mir eigentlich recht plausibel. Welches ist denn dann die richtige Gruppe? Evt. eine Umleitung nach dort?

    Danke für den Link, diesen und noch diverse andere kenne ich bereits ;-)

    Trotzdem zu meinem Problem: Das beschriebene Verhalten ist keine Frage der Codierung; das alles funktioniert problemlos unter Windows und soll jetzt nach
    Linux portiert werden. Die von mir benutzte DSN läßt sich im Übrigen mit isql connecten und manipulieren.

    Ich habe jetzt festgestellt, das man im Driver Manager von unixODBC einen ODBC-Trace aktivieren kann und dieser liefert folgendes:

    [ODBC][3041][1280213704.023954][SQLDriverConnect.c][688]
    Entry:
    Connection = 0x87eee10
    Window Hdl = (nil)
    Str In = [DSN=guido;UID=informix;PWD=********;][length = 36]
    Str Out = 0xbfffe448
    Str Out Max = 1024
    Str Out Ptr = 0xbfffe88e
    Completion = 0
    UNICODE Using encoding ASCII 'ISO8859-1' and UNICODE ''

    [ODBC][3041][1280213706.107248][SQLConnect.c][2263]Can't open cursor lib 'libodbccr' : file not found

    Die angemeckerte Library befindet sich aber in dem Verzeichnis, in welchem sich auch alle anderen ODBC.libs befinden. Beim googlen nach dieser Fehlermeldung bin ich auf eine Systemvariable 'LD_LIBRARY_PATH' gestoßen, wobei es die zumindest in meinem Linux nicht gibt. Aber mehr weiß ich leider (noch) nicht.

    Irgendwelche Ideen?

    Gruß Guido

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •