C++ und Oracle



  • Hallo,
    habe ein Problem:

    Habe auf meinen Win2000 Rechner MS Visual C++6.0 und Oracle 9i installiert.
    Nun möchte ich aus meinen C-Programm mittels eingebetteten SQL-Anweisungen Zugriff auf meine Oracle-Datenbank nehmen.
    Anmeldung:

    strncpy ((char*)username.arr, "blablabla",20);
    username.len= strlen ((char*) username.arr);
    strncpy ((char*)password.arr, "blabla",10);
    password.len= strlen ((char*) password.arr);

    da fängt der Compiler schon an mit heulen: "arr" sowie "len" muß eine Klassee/Struktur/Union sein
    dann bei dem Aufruf des Präprozessors mir EXEC SQL : "EXEC nicht deklarierter Bezeichner" und so weiter.

    Habe unter Oracle den Präprozessor RRO*C++9.2.0.1.0 installiert.
    Muß ich noch was installieren/konfigurieren/fehlen mir Bibliotheken oder Headerdateien?
    Kann mir jemand weiterhelfen... vielleicht mit einen kleinen Beispiel um eine Tabelle zu ertstellen oder ähnliches?

    vielen Dank



  • Hallo,
    von was üfr einem Typ ist den username? EinPointer auf eine Klasse/Struktur?

    Versuch's mal mit username->arr
    und username->len .

    Gruss,
    Qweety.



  • username und password sind als char deklariert.
    im oberen Quelltext werden ihne Werte ( blablabla und blabla) übergeben.
    die Anmeldung an die Datenbank sieht dann so aus:

    EXEC SQL CONNECT :username IDENTIFIED BY :password;

    das weiß ich aus Büchern, aber das funktioniert bei mir irgendwie alles nicht so richtig!



  • strncpy ((char*)username.arr, "blablabla",20);
    username.len= strlen ((char*) username.arr);
    strncpy ((char*)password.arr, "blabla",10);
    password.len= strlen ((char*) password.arr);
    

    Hallo nochmal,
    also ich lese da "username.arr". Dann kann aber doch username kein char sein 😕 .
    also username sieht mindestens so aus:

    {
    char* arr;
    int len;
    }
    

    und ist entweder ein struct oder einer Klasseninstanz.
    [EDIT] Das gleiche gilt für password. [/EDIT]
    Gruss,
    Qweety.

    [ Dieser Beitrag wurde am 22.05.2003 um 14:57 Uhr von Qweety editiert. ]



  • Schuldigung, hab noch mal nachgeschaut:
    varchar username[20];
    varchar password[10];

    so stehts im Beispiel...denke das sind sog. Hostvariablen



  • Hallo nochmal,
    varchar klingt verdächtig nach irgendwas Datenbankspezifischem ... das wird wahrscheinlich genausowenig zum C++-Standard gehören, wie meine dynamischen Libs 😞 . varchar kommt bei Oracle (vielleicht auch bei anderen DBs als Feldtyp vor.

    Aber hast Du dast mit dem -> mal versucht? Denn die Fehlermeldung

    da fängt der Compiler schon an mit heulen: "arr" sowie "len" muß eine Klasse/Struktur/Union sein

    klingt irgendwie danach.

    Sorry, wenn ich Dir sonst nicht gross weiterhelfen kann ... ich arbeite zwar auch mit Oracle, aber die Datenbankzugriffschicht hat bei uns jemand anders verbrochen 😃 .

    Vielleicht weiss ja noch jemand anderes was dazu.

    Good Luck,
    Qweety.


Anmelden zum Antworten