ODBC - Verbindung



  • Guten Tag...

    ich möchte mich per ODBC mit einer Datenbank verbinden. Meine bisherige Recherche im Internet hat mich leider noch nicht zum Ziel gebracht.
    Bisher habe ich im ODBC-Datenquellen-Administrator meine ODBC-Quelle eingerichtet. Was ich nun suche ist eine allgemein gültige Möglichkeit mich mit dieser dort eingerichteten Datenbank zu verbinden egal welchen Treiber ich dort gewählt habe. Sinn des Ganzen soll sein das ich die Datenbank beliebig austauschen kann und von MYSQLServer zu Postgress oder anderen Datenbanken wechseln kann. Ausgeführt werden sollen nur Standard SQL-Anweisungen (insert, select, create table, etc…)
    Bisher habe ich online allerdings nur die Möglichkeit gefunden mich mit spezifischen Datenbanken per ODBC zu verbinden. In Java habe ich das ganze schön mehrfach gelöst nur soll ich das ganze Problem nun in c++ angehen.
    Ich suche hier keinen kompletten Lösungsansatz ein Verweis auf eine Quelle die mir weiterhilft wäre schon vollkommen ausreichend.
    Entwickelt wird ausschließlich mit demMicrosoft Visual studio

    Danke schon einmal im Voraus

    Schubi



  • Die ODBC-Funktion um eine Verbindung zur Datenbank herzustellen heisst SQLConnect(). Infos dazu findest du Tonnenweise bei Google (z.B. in der MSDN).

    Die allersimpelste ODBC-Funktion um Sql auszuführen heisst SQLExecDirect()



  • BadWolf schrieb:

    Die ODBC-Funktion um eine Verbindung zur Datenbank herzustellen heisst SQLConnect(). Infos dazu findest du Tonnenweise bei Google (z.B. in der MSDN).

    Die allersimpelste ODBC-Funktion um Sql auszuführen heisst SQLExecDirect()

    danke schon mal für den hinweis... es funktioniert auch soweit alles das einzigste problem das ich noch habe ist beim SQLConnect

    die zeile sieht so aus

    SQLConnect(hdbc,(SQLCHAR*) "SQL", SQL_NTS, name, strlen((const char *)name), pw, strlen((const char *)pw));

    als Fehler bzw. als warning entsteht dann folgendes beim ausführen...

    SQLStatus = 01000
    SQL-Meldung = [Microsoft][SQL Server Native Client 10.0][SQL Server]Changed database context to 'TEST'.

    Das ist soweit okay da die default database im odbc-Datenquellen-Administrator TEST heißt. Frage ist nur ob ich das irgendwie im SQLConnect so verpacken kann das kein warning mehr kommt sondern das der SQLRETURN mir direkt ein SQL_SUCCESS zurückliefert.



  • (ODBC/ADO)-Connection-Strings anzufertigen kann sehr schnell zu einem Nerven aufreibenden Gefrickel werden.

    Es gibt aber einen recht netten Trick: Leg' eine Datei mit beliebigem Namen und der Endung UDL an. Nach einem Doppelklick auf diese Datei öffnet sich ein visuelles Interface, mit dem die Datenbankverbindungs-Parameter zusammengesetzt und auf korrekte Funktion getestet werden können. Nach dem Speichern und Schließen öffne diese Datei z.B. mit dem Editor Notepad. Kaninchen aus dem Hut: Der benötigte (ODBC/ADO)-Connection-String im Klartext!

    Kopieren muss man diesen String dann aber noch selbst ...



  • schmidt-webdesign.net schrieb:

    (ODBC/ADO)-Connection-Strings anzufertigen kann sehr schnell zu einem Nerven aufreibenden Gefrickel werden.

    Es gibt aber einen recht netten Trick: Leg' eine Datei mit beliebigem Namen und der Endung UDL an. Nach einem Doppelklick auf diese Datei öffnet sich ein visuelles Interface, mit dem die Datenbankverbindungs-Parameter zusammengesetzt und auf korrekte Funktion getestet werden können. Nach dem Speichern und Schließen öffne diese Datei z.B. mit dem Editor Notepad. Kaninchen aus dem Hut: Der benötigte (ODBC/ADO)-Connection-String im Klartext!

    Kopieren muss man diesen String dann aber noch selbst ...

    so ganz hilft mir das nciht weiter... da kommt jetzt die Zeile bei raus

    Provider=SQLNCLI10.1;Integrated Security="";Persist Security Info=False;User ID=sqluser;Initial Catalog=TEST;Data Source=192.168.149.2;Initial File Name="";Server SPN=""

    was davon muß jetzt in meine SQLConnect anweisung??



  • SchubiMuc schrieb:

    so ganz hilft mir das nciht weiter... da kommt jetzt die Zeile bei raus

    Provider=SQLNCLI10.1;Integrated Security="";Persist Security Info=False;User ID=sqluser;Initial Catalog=TEST;Data Source=192.168.149.2;Initial File Name="";Server SPN=""

    was davon muß jetzt in meine SQLConnect anweisung??

    Heraus kommt - genau - der benötigte Connection-String mit allen erforderlichen Parametern. Und den verfütterst du - wenn erfolgreich getestet - als SqlConnection.ConnectionString-Eigenschaft (Verbindungszeichenfolge).

    Weiterführende Informationen findest du hier.


Anmelden zum Antworten