Я использую драйвер базы данных ACE.Я создаю базу данных доступа с помощью ADOX и пытаюсь вставить данные с помощью команды SQL.Когда имя файла использует расширение .mdb, оно не работает, пока работает при использовании .accdb.Я использую драйвер x64 ace
//create new database
PMString connectString("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=");
connectString += getFileName().c_str();
ADOX::_CatalogPtr pCatalog(__uuidof(ADOX::Catalog));
try{
pCatalog->Create(connectString.c_str());
}catch( _com_error &e){
throw dymexexception("Error creating table");
}
//init connection
HRESULT hr = CoInitialize(NULL);
if (FAILED(hr))
throw dymexexception("Failed to initialize database");
hr = pConnection.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
throw dymexexception("Failed to initialize database");
hr = pConnection->Open(connectString.c_str(),"","",0);
if(FAILED(hr))
throw dymexexception("Failed to initialize database");
, и это вставная часть
//build sql insert query and execute it
queryString = "INSERT INTO " + tableName + " VALUES(";
for(int i=0;i<fieldValues.size();i++)
{
if(i>0)
queryString += ",";
queryString += fieldValues[i];
}
queryString += ")";
executeSqlCmd(pCommand,queryString);
Где это функция executeSqlCmd
AdoNS::_RecordsetPtr ResultDatabase::executeSqlCmd(AdoNS::_CommandPtr pCommand, PMString queryString)
{
pCommand->CommandText = (_bstr_t) queryString.c_str();
return pCommand->Execute(NULL,NULL,NULL);
}
Есть какие-либо отзывы?