程序环境:数据库名为data.mdb,其中有一个admin表,字段为username,password
程序功能是查询admin表中所有数据,并显示出来
#import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF","adoEOF") //导入ADO库
#include<windows.h>
#include<stdio.h>
void main()
{
try
{
LPCTSTR DatabaseFile="data.mdb";
WIN32_FIND_DATA wfd;
HANDLE hFile=FindFirstFile(DatabaseFile,&wfd);
if(hFile==INVALID_HANDLE_VALUE)
{
printf("Cannot Find the database file\n");
system("pause");
return;
}
CoInitialize(NULL);
HRESULT hr;
_ConnectionPtr MyConnection;
MyConnection.CreateInstance(__uuidof(Connection));
hr=MyConnection->Open(_bstr_t("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb"),
_bstr_t(""),
_bstr_t(""),
adModeUnknown);
if(MyConnection==NULL)
{
printf("Could not acquire a Connection interface");
system("pause");
return;
}
_CommandPtr pCommand;
pCommand.CreateInstance(__uuidof(Command));
pCommand->ActiveConnection=MyConnection;
pCommand->CommandText="select * from admin";
_RecordsetPtr pRecordset;
pRecordset.CreateInstance(__uuidof(Recordset));
pRecordset->CursorLocation = adUseClient;
pRecordset->Open((IDispatch*)pCommand,
vtMissing,
adOpenStatic,
adLockBatchOptimistic,
adCmdUnknown);
_variant_t column;
while(!pRecordset->adoEOF)
{
column=pRecordset->GetCollect("username");
if(column.vt != VT_NULL)
printf((char*)_bstr_t(column));
printf("/t");
column=pRecordset->GetCollect("password");
if(column.vt != VT_NULL)
printf((char*)_bstr_t(column));
printf("\n");
pRecordset->MoveNext();
}
printf("hello world!\n");
MyConnection->Close();
system("pause");
CoUninitialize();
}
catch(_com_error &e)
{
_bstr_t bstrError(e.ErrorMessage());
LPTSTR strError=(char*)bstrError;
printf(strError);
printf("\n");
system("pause");
}
}