Как работать с базами данных в Microsoft Visual C++?

Пользователь

от nicola , в категории: Другие , год назад

Как работать с базами данных в Microsoft Visual C++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от cooper.berge , год назад

@nicola 

В Microsoft Visual C++ для работы с базами данных можно использовать технологии ADO (ActiveX Data Objects) и ODBC (Open Database Connectivity).

  1. ADO:


Для работы с ADO нужно выполнить следующие шаги:

  • Подключить библиотеку ADO: #import "C:Program FilesCommon FilesSystemadomsado15.dll" no_namespace rename("EOF", "adoEOF")
  • Создать объекты ADO: CoInitialize(NULL); _RecordsetPtr pRecordset("ADODB.Recordset"); _ConnectionPtr pConnection("ADODB.Connection");
  • Установить строку подключения к базе данных: pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:mydb.mdb");
  • Выполнить SQL-запрос и получить результат: pRecordset->Open("SELECT * FROM mytable", pConnection.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdText); while (!pRecordset->adoEOF) { //обработка записей }
  1. ODBC:


Для работы с ODBC нужно выполнить следующие шаги:

  • Подключить библиотеку ODBC: #include <windows.h> #include <sql.h> #include <sqlext.h>
  • Создать объекты ODBC: SQLHANDLE henv = SQL_NULL_HANDLE, hdbc = SQL_NULL_HANDLE, hstmt = SQL_NULL_HANDLE; SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3, 0); SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
  • Установить строку подключения к базе данных: SQLCHAR* connStr = (SQLCHAR*)"DSN=myodbc;UID=myuser;PWD=mypass"; SQLRETURN retcode = SQLDriverConnect(hdbc, NULL, connStr, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE);
  • Выполнить SQL-запрос и получить результат: SQLExecDirect(hstmt, (SQLCHAR*)"SELECT * FROM mytable", SQL_NTS); while (SQLFetch(hstmt) == SQL_SUCCESS) { //обработка записей }


Оба подхода имеют свои достоинства и недостатки, поэтому выбор конкретной технологии зависит от требований к проекту и собственных предпочтений.