代码:
_ConnectionPtr Connect;
_RecordsetPtr Recordset;
HRESULT hr;
TCHAR buffer[MAX_PATH];
GetCurrentDirectory(MAX_PATH,buffer);
CString strDBFile;
strDBFile.Format(_T("%s"),buffer);
strDBFile+=_T("\\db.mdb");
if(GetFileAttributes(strDBFile)==INVALID_FILE_ATTRIBUTES)
{
AfxMessageBox(_T("Can't found database file!"));
//return false;
}
else
{
CString strOpen;
strOpen.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s"),strDBFile);
try
{
hr=Connect.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
Connect->Open((_bstr_t)strOpen,"","",adModeUnknown);
}
}
catch(_com_error e)
{
// 捕捉异常
CString ErrorMessage;
ErrorMessage.Format(_T("连接数据库失败!\r\n错误信息:%s"),e.ErrorMessage());
AfxMessageBox(ErrorMessage);///显示错误信息
}
} CString strCreateTime;
strCreateTime.Format(_T("E:\\"));
CString strSQL;
strSQL.Format(_T("insert into FoundFile (CreateTime) values (12456465)")); try{
hr=Connect.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
Connect->Execute(_bstr_t(strSQL),NULL,adExecuteNoRecords);
}
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format(_T("写数据库失败!\r\n错误信息:%s"),e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息 }
每次执行到Connect->Execute(_bstr_t(strSQL),NULL,adExecuteNoRecords)的时候就报错,错误信息是:
unknown error:0x800A0E78
insert into FoundFile (CreateTime) values (12456465) 在Access里面执行是成功的
Why?
_ConnectionPtr Connect;
_RecordsetPtr Recordset;
HRESULT hr;
TCHAR buffer[MAX_PATH];
GetCurrentDirectory(MAX_PATH,buffer);
CString strDBFile;
strDBFile.Format(_T("%s"),buffer);
strDBFile+=_T("\\db.mdb");
if(GetFileAttributes(strDBFile)==INVALID_FILE_ATTRIBUTES)
{
AfxMessageBox(_T("Can't found database file!"));
//return false;
}
else
{
CString strOpen;
strOpen.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s"),strDBFile);
try
{
hr=Connect.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
Connect->Open((_bstr_t)strOpen,"","",adModeUnknown);
}
}
catch(_com_error e)
{
// 捕捉异常
CString ErrorMessage;
ErrorMessage.Format(_T("连接数据库失败!\r\n错误信息:%s"),e.ErrorMessage());
AfxMessageBox(ErrorMessage);///显示错误信息
}
} CString strCreateTime;
strCreateTime.Format(_T("E:\\"));
CString strSQL;
strSQL.Format(_T("insert into FoundFile (CreateTime) values (12456465)")); try{
hr=Connect.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
Connect->Execute(_bstr_t(strSQL),NULL,adExecuteNoRecords);
}
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format(_T("写数据库失败!\r\n错误信息:%s"),e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息 }
每次执行到Connect->Execute(_bstr_t(strSQL),NULL,adExecuteNoRecords)的时候就报错,错误信息是:
unknown error:0x800A0E78
insert into FoundFile (CreateTime) values (12456465) 在Access里面执行是成功的
Why?
代码:
try{
hr=Recordset.CreateInstance("ADODB.Recordset");
if(SUCCEEDED(hr))
{
Recordset->Open((_bstr_t)(strSQL) ,
_variant_t((IDispatch* )Connect, true),
adOpenStatic,
adLockOptimistic,
adCmdText);
}
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format(_T("写数据库失败!\r\n错误信息:%s"),e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息 }