MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Работа с БД MS Access в С++"
Answer 863484
Я бы рекомендовал все таки использовать ODBC, так как он стандартизирован ISO и довольно прост в использовании. Например, вставка записей в БД MS Access осуществляется так:
#include <stdio.h> #include <tchar.h> #include <Windows.h> #include <sqlext.h> WCHAR szDSN[] = L"Driver={Microsoft Access Driver (*.mdb, *.accdb)};DSN='';DBQ=C:\\users.mdb"; int _tmain(int argc, _TCHAR* argv[]) { HENV hEnv; HDBC hDbc; /* ODBC API return status */ RETCODE rc; int iConnStrLength2Ptr; WCHAR szConnStrOut[256]; WCHAR query[] = L"INSERT INTO [Users] (name,surname) VALUES ('Иван','Иванов');"; HSTMT hStmt; /* Allocate an environment handle */ rc = SQLAllocEnv(&hEnv); /* Allocate a connection handle */ rc = SQLAllocConnect(hEnv, &hDbc); /* Connect to the database */ rc = SQLDriverConnect(hDbc, NULL, (WCHAR*)szDSN, SQL_NTS, (WCHAR*)szConnStrOut, 255, (SQLSMALLINT*)&iConnStrLength2Ptr, SQL_DRIVER_NOPROMPT); if (SQL_SUCCEEDED(rc)) { wprintf(L"Successfully connected to database. Data source name: \n %s\n", szConnStrOut); /* Prepare SQL query */ wprintf(L"SQL query:\n %s\n", query); rc = SQLAllocStmt(hDbc, &hStmt); rc = SQLPrepare(hStmt, query, SQL_NTS); /* Excecute the query */ rc = SQLExecute(hStmt); if (SQL_SUCCEEDED(rc)) { wprintf(L"SQL Success\n"); } else { wprintf(L"SQL Failed\n"); } } else { wprintf(L"Couldn't connect to %s.\n", szDSN); } /* Disconnect and free up allocated handles */ SQLDisconnect(hDbc); SQLFreeHandle(SQL_HANDLE_DBC, hDbc); SQLFreeHandle(SQL_HANDLE_ENV, hEnv); getchar(); return 0; }
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.