Access-Datenbank mit C/C++
-
Guten Morgen, ich bin auf der Suche nach einer Möglichkeit mit C bzw. C++ auf Daten einer Access Datenbank (.mdb) zuzugreifen. Kennt jemand von euch eine Bibliothek für mein Vorhaben. Meine gestrige Suche im Netz hat leider nicht wirklich was gebracht. Bin für jede noch so kleine Hilfe dankbar.
PS: Bitte keine Vorschläge zur Verwendung von .Net Bibliotheken.
-
viele...
einfach anzubinden geht es mit der mfc, micosoft foundation classes.. bzw. mit der entwicklungsumgebung visual studio.
ps: du hattes grad noch geändert, daß du keine net willst, dann wohl auch kein mfcdu kannst es auch per hand machen
auschnitt:
// odbc32.lib mitlinken #include <windows.h> #include <stdlib.h> #include <stdio.h> #include <sql.h> #include <sqlext.h> #define ID_LEN 35 int main(void) { SQLHANDLE henv; SQLHANDLE hdbc; SQLHANDLE hstmt; RETCODE rc; SQLCHAR m_Id[ID_LEN]; SQLCHAR name[ID_LEN]; char Statement[50] = {"select * from adressen"}; char dsn[10] = {"test"}; char user[5] = {""}; char pass[5] = {""}; long m_bytesRet = SQL_NTS; rc = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); rc = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3, SQL_IS_UINTEGER); rc = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); rc = SQLConnect(hdbc, (SQLCHAR *)dsn, SQL_NTS, (SQLCHAR *) user, SQL_NTS, (SQLCHAR *) pass, SQL_NTS); rc = SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt); rc = SQLPrepare(hstmt, (SQLCHAR *)Statement, SQL_NTS); rc = SQLExecute(hstmt); rc = SQLFetch(hstmt); if (rc == SQL_NO_DATA_FOUND) { printf("keine daten gefunden"); SQLFreeStmt(hstmt, SQL_DROP); SQLDisconnect(hdbc); SQLFreeHandle(SQL_HANDLE_DBC, hdbc); SQLFreeHandle(SQL_HANDLE_ENV, henv); exit(0); } else { printf ("daten gefunden"); SQLGetData(hstmt, 1, SQL_C_CHAR, m_Id, 10, &m_bytesRet); printf ("%s", m_Id); SQLGetData(hstmt, 1, SQL_C_CHAR, name,10, &m_bytesRet); printf ("%s", name); } rc = SQLFreeStmt(hstmt, SQL_CLOSE); rc = SQLDisconnect(hdbc); SQLFreeHandle(SQL_HANDLE_DBC, hdbc); SQLFreeHandle(SQL_HANDLE_ENV, henv); }
-
Danke elise für die schnelle Antwort.
Genau...auf MFC möchte ich auch verzichten.
Habe mir deinen Code mal angeschaut und habe dazu nun eine Frage:
Braucht man dazu eine ODBC Datenquelle? Wenn ja kennst du eine
Möglichkeit dies ohne ODBC Datenquelle zu realisieren?
Werde das ganze aber trotzdem heute Abend gleich mal ausprobieren.
Danke nochmal.