VC6ADO连接Access2000、Access2003
By 闲鸟归来 , Posted in 死亡笔记
01 /*linkAccess.mdb里有字段coderType*/
02 /*在对应头文件+入一句:*/
03 #import "c:Program FilesCommon FilesSystemadomsado15.dll" no_namespace rename("EOF", "adoEOF")
04
05 /*如下为具体ADO连接Access与查询语句执行*/
06 // 建立连接对象、记录集、Command对象
07 _ConnectionPtr cnn; // _ConnectionPtr cnn(__uuidof(Connection));
08 _RecordsetPtr rst; // _RecordsetPtr rst(__uuidof(Recordset));
09 _CommandPtr cmd; // _CommandPtr cmd(__uuidof(Command));
10
11 CoInitialize(NULL); // 初始化COM环境; AfxOleInit(); 也一样效果
12 cnn.CreateInstance(__uuidof(Connection)); // 建立连接对象
13 try
14 {
15 // 打开本地Access库linkAccess.mdb
16 cnn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=linkAccess.mdb","","",adModeUnknown);
17 }
18 catch(_com_error e)
19 {
20 AfxMessageBox("数据库连接失败,确认数据库linkAccess.mdb是否在当前路径下!");
21 return FALSE;
22 }
23
24 rst.CreateInstance(__uuidof(Recordset)); // 建立记录集
25 _variant_t var;
26 CString str;
27
28 rst->Open("select * from codeInfo", cnn.GetInte易做图cePtr(), /*获取库接库的IDispatch指针*/, adOpenDynamic, adLockOptimistic, adCmdText);
29
30 while ( !rst->adoEOF )
31 {
32 var = rst->GetCollect("coderType");
33 if ( var.vt != VT_NULL )
34 str = (LPCSTR)_bstr_t(var);
35 m_AccessList.AddString(str); // 插入记录
36 rst->MoveNext(); // 下一记录
37 }
38
39 CoUninitialize(); // 卸载COM环境库
补充:软件开发 , Vc ,