大家都知道ADO.NET是访问数据库的一种技术,现在用的人也特别的多,本人就特别喜欢用这个技术,我们大家经常听到说我的我们的数据库访问类怎么怎么强大而且支持多数据库,现在的大家做的项目里用的数据库访问类库我想也都是支持多数据库吧,支持到什么程度我就不知道了。
#T#可能只是那么想也是那么设计的,要支持多数据库,要能支持多数据库,大都是做项目应用系统而非产品,即使要用不同的数据库了,基本上是吧上一个项目全COPY过来,修修改改OK了。产品可能就不一样了,那才可能要支持真正的多数据库,才可能会面对真正的数据库访问类库的多数据库的实际检验。ADO.NET2.0下增强了数据库访问的功能,也就是工厂式类库,提到工厂式数据库访问,网上可就多了,ADO.NET2.0增强的工厂式网上也很多了,都说只要改动webconfig里的数据库连接就行了,其它什么地方都不用改了,看了几篇都是点了下,不知道做过充分测试没有,应该说在实际的多数据库产品系统中,还要做很多修正,完善和测试的。
在默认情况下,vc++不支持ado对象。如果要在程序中使用ado对象,需要使用#import命令将ado库文件导入到工程中,代码如下:
- #import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")
参数no_namespace表示不适用ado的名字空间。为了避免出现常量名冲突,将EOF改名为ADOBOF,将BOF改名为ADOBOF。ADO库包含三个基本接口 。即:_ConnectPtr,_CommandPtr,_RecordSetPtr接口。它们分别对应Connection对象,Command 对象和RecordSet对象。
ADO.NET Connection对象
ADO.NET Connection对象代表与数据源的连接。在访问数据库时,首先创建一个ADO.NET Connection对象,通过它建立到数据库的连接。通常需要在头文件中定义一个VConnection对象。
- _ConnnetionPtr m_pConnection;
创建Connection对象的方法如下:
- m_pConnection.CreateInstance("ADODB.Connection")
ConnectionString属性
- m_pConnection->ConnectionString="Provider=SQLOLEDB.1;Password=sa;UserId=sa;Initial Catalog=UserMan;Data Source=localHost;"
ConnectionTimeout终止尝试和产生错误之前执行命令所用的时间,默认为30s,Mode指定Connection对象修改数据的权限。State返回Connection属性的状态,Open方法用于打开到数据源的连接。Connection.Open(ConnectionString,UserId,Password,Options),Close方法(关闭数据库的连接)。