VC ADO方式读取数据库

来源:互联网 发布:淘宝刷钻平台网站 编辑:程序博客网 时间:2024/06/05 19:35

程序环境:数据库名为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");  } } 

原创粉丝点击