ado操作数据库
来源:互联网 发布:类似ehviewer的软件 编辑:程序博客网 时间:2024/05/18 02:31
前一段时间做的一个小项目,涉及到用ado连接数据,现整理,以备用。 基本流程 需要注意的 参考资料ado操作数据库
ado(ActiveXdata object)是MS发布的一种数据库访问技术,是基于oledb技术,以odbc等技术一样,通过中间层来访问数据。从性能上讲,它不如oci访问oracle等这样的api方式来得快,但是从易用性来讲,它确实是非常方便的。当然,它只限于window平台的应用。
我们一般使用已封装好的Ado库,因为大部分的应用都是使有现有封装好的库,本文也是结合网站上现有的一个封装好的库来使用。这个类库的详细讨论可以参见codeproject Ado 封装库 e文 。
借用网友的总结(VC++ ADO开发实践之一),ado的开发主要有这样的几个流程:
1.初始化COM库,引入Ado定义库文件。
在VC环境里,初始化COM库通常是在CWinApp::initInstance()函数内完成的。
BOOL CWinApp::initInstance()
{
AfxOleInit();
}
通常我们用的是已经封装好的Ado库,所以“引入Ado库定义”一般都是在封装的时候做好了。查看封装好的类库时,可以看到有一行类似于这样的代码:
#import "C:/Program Files/Common Files/System/ado/msado15.dll" rename("EOF", "EndOfFile")
#import "C:/Program Files/Common Files/System/ado/MSJRO.DLL" no_namespace rename("ReplicaTypeEnum", "_ReplicaTypeEnum")
在有的地方是这样定义的,如果编译时提系统找不到文件,则要改成上面两行,当然路径要写对。
#import <msado15.dll> rename("EOF", "EndOfFile")
#import <MSJRO.DLL> no_namespace rename("ReplicaTypeEnum", "_ReplicaTypeEnum")
2.创建数据库连接对象。
在未封装的类库中,数据库的连接对象是_ConnectionPtr。在本文的封装类里,数据库操作的对象为CADODatabase:
CADODatabase m_Db = new CADODatabase();
CString conStr = "Provider=OraOLEDB.Oracle.1;Persist Security Info=True;Data Source=DAMIS;";
m_pDb->Open(conStr,"SCOTT","rf0007");
其中conStr为连接字符串,根据每个数据库的不同配置,示例代码是连接Oracle数据库的字符串。具体的每种数据库的connection String 可以在这里查到codeproject上的ado connection string。
打开数据库连接的方法为Open(connectionString, user, pwd)。可以根据返回值判断打开是否成功。
3.执行查询并处理返回结果集。
首先要建立结果集对象,并将其指向操作数据库的连接。这样可以利用已建立的数据库连接来操作结果集。
CADORecordset m_Rs = new CADORecordset(m_Db);
CString queryStr = "select * from analog";
m_Rs.open(queryStr);
这样执行这条sql语句的结果集就保存在m_Rs对象中,具体的如何访问每条记录,可以参考上文提到的文章codeproject Ado 封装库 e文,作者做了比较详尽的描述。使用这种办法来取得结果集,相对比较简便,但功能性就显得不够强大,还有一种办法是建立CADOCommand类来操作SQL语句,具体的操作办法可以参考该文的示例文件。
4.关闭连接释放对象资源。
在使用完资源后,要释放数据库的资源。需要释放的资源有两个,分别为:CADORecordset、CADODatabase。释放的方法为:
m_Rs.delete();
m_Db.close();
各位数据库的连接都不太一样,在连接之前,需确认这个本地机器跟远程数据库的连接是相通的,比如说,在Oracle数据的连接过程中,本地机器需要安装Oracle数据库的客户端程序,并且配置好连接信息。
codeproject Ado 封装库 e文
codeproject上的ado connection string
VC++ ADO开发实践之一
- ADO 操作SqlServer数据库
- 初学ADO操作数据库!
- ADO数据库操作总结
- ado操作数据库
- ADO数据库操作(ACCESS)
- ADO操作ACESS数据库
- ADO数据库操作
- ADO操作数据库
- [MFC]ADO操作数据库
- ADO操作数据库
- MFC ADO数据库操作
- ADO数据库的操作
- QTP-数据库操作ADO
- ADO 数据库操作
- 【ADO.NET】数据库操作
- ado操作数据库
- ADO数据库操作
- VC++ ADO操作数据库
- 分享10个Js的小型库,效果真的很棒...
- 通往测试架构师之路(1):那些家伙在干什么?
- [软件测试必读] 如何制定软件测试计划
- vc连接错误集编
- 关于Symbian里面的mifconv
- ado操作数据库
- 微软批量激活
- 程序员办网站创业,几个问题你想好了吗?[zhuan]
- dtree 形成新树?
- 外科手术的方式组建团队
- select 遮盖
- IT人必读:写给浮躁的IT同仁(请不要做浮躁的人)
- 人民日报的一篇文章(平潭:中国隧道第一乡)
- Equals and Hash Code (之二)