CSDN博客

img a77248848

VC++下ADO连接ACCESS

发表于2008/10/13 20:48:00  727人阅读

分类: c++学习

        最近要做个数据管理系统,要求用MFC实现。一直以来都是习惯了ADO.NET,换了这个真的很不习惯..........下面说说连接的步骤。

        在StdAfx.h加入:#import "c:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","rsEOF")
具体路径因你机子系统而异。

        然后初始化并创建一个连接对象喝一个数据记录对象

CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));

       下面是数据库的地址,我放在了工程的文件夹下。话说我一开始是放在了DEBUG下,编译通过,运行却出错。搞了我老半天,郁闷。路径可以直接写info.mdb,不过必须把MDB放到DEBUG文件夹下,而且手动运行DEBUG里面的EXE程序,否则也错,残念...........

char path[ MAX_PATH ] = { '/0' };
CString DataSource="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
GetCurrentDirectory( MAX_PATH, path );
CString pathstr;
pathstr.Format("%s",path);
DataSource +=pathstr;
DataSource += "//info.mdb";
DataSource +=";Persist Security Info=False";

        下面打开连接
pConn->ConnectionString=(_bstr_t)DataSource;
pConn->Open("","","",adConnectUnspecified);

        接着进行查询看看。这里我在对话框上添加了两个文本框并分别添加变量m_no和m_name,一个输入编号 一个显示姓名。

CString strSQL,strtem;
strSQL.Format("select * from Users where UserId=%s",m_no);

pRst=pConn->Execute((_bstr_t)strSQL,NULL,adCmdText);

while(!pRst->rsEOF)
{
    strtem.Format((_bstr_t)pRst->GetCollect("UserName"));
    m_name=strtem;
    pRst->MoveNext();
}

最后关闭

pRst->Close();
pConn->Close();
pRst.Release();
pConn.Release();
CoUninitialize();

 

要记得在执行这些代码前加入UpdateData(TRUE);后面显示出来再UpdateData(FALSE);

解释:

UpdateData(true);//用于将屏幕上控件中的数据交换到变量中。
UpdateData(false);//用于将数据在屏幕中对应控件中显示出来

0 0

相关博文

我的热门文章

img
取 消
img