MySQL - ODBC - C++ Connection



  • Hi,

    ich möchte eine sqlite Datenbank auf Mysql umstellen.
    Ich kriege aber zum verderben keine Verbindung hin.

    Ich habe folgendes installiert/konfiguriert:
    Mysql-Server 5.6 ( ist gestartet)
    ODBC-treiber 5.3 ( Als Datenquelle bei user-DSN eingebunden)

    In VS habe ich die linker odbc32.lib und odbccp32.lib gelinked.

    Dann habe ich folgenden Code zum testen:

    #include "stdafx.h"
    ////////////////////////////////////////
    #include <windows.h>
    #include <sql.h>
    #include <sqltypes.h>
    #include <sqlext.h>
    #include <string>
    #include <vector>
    #include <iostream>
    int main()
    {
    	SQLHENV sql_hEnv = 0;
    
    	SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE,
    		&sql_hEnv);
    
    	SQLSetEnvAttr(sql_hEnv, SQL_ATTR_ODBC_VERSION,
    		(void*)SQL_OV_ODBC3, 0);
    
    	SQLHDBC sql_hDBC = 0;
    	SQLAllocHandle(SQL_HANDLE_DBC, sql_hEnv, &sql_hDBC);
    	int rc = 0;
    	rc = SQLConnect(sql_hDBC,
    		(SQLWCHAR*) "MySQL", 
    		SQL_NTS,
    		(SQLWCHAR*) "root", 
    		SQL_NTS,
    		(SQLWCHAR*) "meinPasswort",
    		SQL_NTS);
    	std::cout << rc << std::endl;
    
    	getchar();
    	return 0;
    }
    

    Leider gibt rc immer -1 zurück.

    mfg cuanu



  • Hallo,

    wie kann man in der heutigen Zeit noch ODBC verwenden (wollen)?
    Teste doch mal Developing Database Applications Using MySQL Connector/C++



  • Hi,

    NACHTRAG: Wir haben heute zu wissen bekommen, dass wir den ODBC-Treiber benutzen sollen. Würde sich jemand erbarmen und mir damit helfen?

    vielen Dank für die konstruktive Kritik/Idee.
    Ich habe vor ODBC mit dem Connector/C++ rumgewerkelt und es gestern nochmal probiert.

    Laut Anleitung CMake/Boost runtergeladen und über mir unbekannte Wege mit der CMake-Gui ein Ordner mit ca. 200mb erstellt.
    Wenn ich dort die mysqlcppconn.sln öffne sehe ich ca. 50 Projekte. Beim starten des example werde ich von 144 Fehlern verteilt über alle Projekte begrüßt.

    Beim installieren von MYSQL war auch ein Connector/c++ dabei.

    Kann mir bitte jemand erklären wie ich überhaupt starten kann?

    mfg cuanu



  • Schau dir mal die Beispiele hier an, vielleicht hilfts dir weiter:

    http://stackoverflow.com/questions/7860480/connecting-to-a-mysql-server-using-c

    Die rufen z.B. SqlDriverConnect und nicht SqlConnect auf. Und du könntest sicherlich mehr Informationen über die Fehler abfragen.



  • Th69 schrieb:

    Hallo,
    wie kann man in der heutigen Zeit noch ODBC verwenden (wollen)?

    da gibt's wohl unterschiedliche Meinungen 🤡

    Der eigenständige Treiber Microsoft ODBC Driver 11 for SQL Server (MSODBCSQL11) stellt eine Anwendungsprogrammierschnittstelle (Application Programming Interface, API) bereit, die die ODBC-Standardschnittstellen für Microsoft SQL Server implementiert. ODBC Driver 11 for SQL Server bietet zusätzlich zu den Funktionen, die im Lieferumfang von ODBC in SQL Server 2012 Native Client enthalten sind, neue Funktionen. ODBC Driver for SQL Server kann zum Erstellen neuer Anwendungen verwendet werden. Sie haben auch die Möglichkeit, ein Upgrade für ältere Anwendungen auszuführen, die derzeit einen älteren ODBC-Treiber nutzen. ODBC Driver for SQL Server unterstützt Verbindungen mit SQL Azure-Datenbank, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008 und SQL Server 2005.



  • Eine weitere Möglichkeit einen ODBC Treiber zu verwenden (also abgesehen davon direkt die ODBC Funktionen aufzurufen), wäre ADO zu verwenden.

    Ob das ein echter Vorteil ist falls man sich nicht schon mit ADO auskennt kann ich allerdings nicht sagen.


Log in to reply