首页 > 数据库

ADO使用笔记

时间:2009-05-03 10:55:21  作者:netist  我要投稿
Linux初探欢迎您的投稿,投放方法请点击这里查看,我们会定期赠送精美小礼品给优秀的投稿作者。海纳百川 取则行远!LinuxGoo欢迎您的到来。
一、引入ADO库文件 在stdafx.h文件末尾添加以下语句: #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")注......

一、引入ADO库文件
在stdafx.h文件末尾添加以下语句:
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
注意上面语句不要放在开头,否则编译产生下面错误提示:
fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h> c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxv_w32.h 16

二、初始化OLE/COM库环境
在应用程序主类的InitInstance成员函数里加入
if(!AfxOleInit())
{
AfxMessageBox("OLE初始化出错!");
return FALSE;
}

三、使用ADO接口
ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。
_ConnectionPtr接口返回一个记录集或一个空指针,使用它创建一个数据连接,然后使用其它对象执行数据输入输出操作。
_CommandPtr接口返回一个记录集,它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。
_RecordsetPtr是一个记录集对象,与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。
1、使用_ConnectionPtr接口
_ConnectionPtr MyDb;
MyDb.CreateInstance(__uuidof(Connection));
MyDb->Open("Provider=SQLOLEDB;SERVER=127.0.0.1;DATABASE=Northwind;UID=sa;PWD=","","",-1);
2、使用_RecordsetPtr接口
//用_RecordsetPtr接口获得记录集
_RecordsetPtr MySet;
MySet.CreateInstance(__uuidof(Recordset));
MySet->Open("SELECT * FROM Employees", MyDb.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
//访问数据
_variant_t Holder;
try
{
while(!MySet->adoEOF)
{
Holder = MySet->GetCollect("FirstName");
if(Holder.vt!=VT_NULL)
m_List.InsertItem(0,(char*)(_bstr_t)Holder); //m_List是ListBox控件
MySet->MoveNext();
}
}
catch(_com_error * e)
{
CString Error = e->ErrorMessage();
AfxMessageBox(e->ErrorMessage());
}
catch(...)
{
MessageBox("ADO发生错误!");
}
3、使用_CommandPtr接口获取数据
_CommandPtr pCommand;
_RecordsetPtr MySet1;
pCommand.CreateInstance(__uuidof(Command));
pCommand->ActiveConnection=MyDb;
pCommand->CommandText="select * from Employees";

如果您需转载 ADO使用笔记,请注明来自LinuxGoo.com,其版权归原作者所有。请广大网友留言时遵纪守法,使用文明用语。如果您在应用中有什么问题,请在下面留言,我们会尽快解答。
来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目热门