当前位置:数据库 > Access >>

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.GetInterfacePtr(), /*获取库接库的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 ,
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,