VC ADO连接Access数据库 数据源方式链接。 1、应用程序的stdafx.h头文件中(也可以在其他合适的地方)包含如下语句。 #import "C://program files//common
files//system//ado//msado15.dll" no_namespace
rename ("EOF",
"adoEOF") 2、链接数据库 CoInitialize(NULL); //初始化Com组件 //conPtr.CreateInstance("ADODB.Connection"); //Connection用于与数据库服务器的链接 conPtr.CreateInstance(__uuidof(Connection)); //Connection用于与数据库服务器的链接另一种方式 CString
conStr; conStr.Format(_T("DSN=%s;"), _T("数据源名")); /******************连接数据库********************/ try { conPtr->ConnectionTimeout = 5; //设置连接时间 conPtr->Open(_bstr_t(conStr), _T("用户名"),_T("密码"), adModeUnknown); } catch(_com_error e) //捕捉异常 { AfxMessageBox(e.ErrorMessage()); } CoUninitialize(); //释放com组件 3、访问数据库 _RecordsetPtr recordPtr;//数据集指针 recordPtr.CreateInstance(__uuidof(Recordset)); CString cmdStr=_T("select
name,stuno from student");//student为表名 该表中有两个字段name(字符型)stuno(int型) try { recordPtr->Open(_variant_t(cmdStr),
conPtr.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); } catch
(_com_error
e) { AfxMessageBox(e.Description()); } while
(!(recordPtr->adoEOF)) {//获取记录 CString
name=(CString)recordPtr->GetCollect(_variant_t("name")).bstrVal; int
no=recordPtr->GetCollect(_variant_t("stuno")).intVal; recordPtr->MoveNext(); } recordPtr->Close();//关闭记录集 recordPtr.Release();//释放空间 conPtr->Close();//关闭连接 conPtr.Release();//释放空间 非数据源方式链接。 应用程序的stdafx.h头文件中(也可以在其他合适的地方)包含如下语句。 #import "C://program files//common
files//system//ado//msado15.dll" no_namespace
rename ("EOF",
"adoEOF") 链接数据库 CoInitialize(NULL); //初始化Com组件不知是否有必要 conPtr.CreateInstance(__uuidof(Connection)); //Connection用于与数据库服务器的链接 CString
conStr; conStr.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;/ "),_T("E://ZK.mdb"));//
E://ZK.mdb为数据库全路径 try { conPtr->ConnectionTimeout = 5; //设置连接时间 conPtr->Open(_bstr_t(conStr), _T("用户名"),_T("密码"),adModeUnknown); } catch
(_com_error e) { AfxMessageBox(e.ErrorMessage()); } CoUninitialize(); //释放com组件// 获取记录集 获取记录集的方式与数据源方式访问数据库相同