《《ADO数据库编程》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《ADO数据库编程》PPT课件.ppt(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ADO数据库编程数据库编程讲师:杨建枝TEL:E-Mail:ADO数据库编程数据库编程n目的与要求n数据库访问技术简介nADO数据库编程模型nADO数据库的连接nADO记录集的操作nADO命令行的执行2目的与要求目的与要求n了解当前数据库访问技术n掌握利用ADO进行数据库编程3数据库访问技术简介数据库访问技术简介nODBC(OpenDatabaseConnectivity,开放式数据库连接),是一种用来在相关或不相关的数据库管理系统(DBMS)中存取数据的标准应用程序接口(API)。nDAO(DataAccessObject,数据访问对象集),是Microsoft提供的基于一个数据库对象集合的
2、访问技术。nADO(ActiveXDataObject),是Microsoft为最新和最强大的数据访问范例OLEDB而设计的,是一个便于使用的应用程序层接口。ADO使您能够编写应用程序以通过OLE.DB提供者访问和操作数据库服务器中的数据。4ADO数据库编程模型数据库编程模型nADO对象模型:5nADO对象Connection对象:代表了同数据源的一个会话,在客户/服务器模型里,这个会话相当于同服务器的一次网络连接。借助于Connection对象的集合、方法和属性,可以使用Open和Close方法建立和释放一个数据源连接。使用Execute方法可以执行一个数据操作命令,使用BeginTrans
3、、CommitTrans和RollbackTrans方法可以启动、提交和回滚一个处理事务。通过操作theErrors集合可以获取和处理错误信息,操作CommandTimeout属性可以设置连接的溢出时间,操作ConnectionString属性可以设置连接的字符串,操作Mode属性可以设置连接的模式,操作Provider属性可以指定OLEDB提供者。6Recordset对象:如果执行的命令是一个查询并返回存放在表中的结果集,这些结果集将被保存在本地的存储区里,Recordset对象是执行这种存储的ADO对象。通过Recordset对象可以操纵来自数据提供者的数据,包括修改和更新行、插入和删除行
4、。借助于Recordset对象的集合、方法和属性,可以通过设置CursorType属性设置记录集的光标类型,通过设置CursorLocation属性可以指定光标位置,通过读取BOF和EOF属性的值,获知当前光标在记录集里的位置是在最前或者最后,通过执行MoveFirst、MoveLast、MoveNext和MovePrevious方法移动记录集里的光标,通过执行Update方法可以更新数据修改,通过执行AddNew方法可以执行行插入操作,通过执行Delete方法可以删除行。7Command对象:是一个对数据源执行命令的定义,使用该对象可以查询数据库并返回一个Recordset对象,可以执行一个
5、批量的数据操作,可以操作数据库的结构。不同的数据提供者提供的该对象的集合、方法和属性不同。借助于Command对象的集合、方法和属性,可以使用Parameters集合制定命令的参数,可以使用Execute方法执行一个查询并将查询结果返回到一个Recordset对象里,操作CommandText属性可以为该对象指定一个命令的文本,操作CommandType属性可以指定命令的类型,操作Prepared可以得知数据提供者是否准备好命令的执行,操作CommandTimeout属性可以设置命令执行的溢出时间。8nADO数据库编程简要过程(1)创建一个Connection对象。定义用于连接的字符串信息,包
6、括数据源名称、用户ID、口令、连接超时、缺省数据库以及光标的位置。(2)打开数据源,建立同数据源的连接。(3)执行一个SQL命令。一旦连接成功,就可以运行查询了。可以以异步方式运行查询,也可以异步地处理查询结果,ADO会通知提供者后台提供数据。这样可以让应用程序继续处理其它事情而不必等待。(4)使用结果集。完成了查询以后,结果集就可以被应用程序使用了。在不同的光标类型下,可以在客户端或者服务器端浏览和修改行数据。(5)终止连接。当完成了所有数据操作后,可以销毁这个同数据源的连接。9nC+对ADO的支持:_ConnectionPtr:指向ADO的Connect对象的指针。_RecordsetPt
7、r:指向ADO的Recordset对象的指针。_CommandPtr:指向ADO的Command对象的指针。nADO库的引入#import“c:programfilescommonfilessystemadomsado15.dll”no_namespacerename(“EOF”,“adoEOF”)说明:的目录与操作系统安装有关。nCOM库的初始化可以在CXXXApp:InitInstance中输入:AfxOleInit();或者调用COM库API初始化:CoInitialize和CoUninitialize;10ADO数据库的连接数据库的连接n创建一个Connection对象_Connect
8、ionPtr pConnection;(_uuidof(Connection);说明:_ConnectionPtr实际上就是一个智能指针,相当于CComQIPtr,_RecordsetPtr、_CommandPtr亦同。n打开与关闭数据库接pConnection-Open(ConnectionString,UserID,Password,Options);pConnection-Close();11n连接字符串1(1)Provider=Specifiesthenameofaprovidertousefortheconnection.(2)FileName=Specifiesthenameofa
9、provider-specificfile(forexample,apersisteddatasourceobject)containingpresetconnectioninformation.(3)RemoteProvider=Specifiesthenameofaprovidertousewhenopeningaclient-sideconnection.(RemoteDataServiceonly.)(4)RemoteServer=Specifiesthepathnameoftheservertousewhenopeningaclient-sideconnection.(RemoteD
10、ataServiceonly.)12n连接字符串2(5)URL=SpecifiestheconnectionstringasanabsoluteURLidentifyingaresource,suchasafileordirectory.例如:“Provider=sqloledb;DataSource=srv;InitialCatalog=Pubs;UserId=sa;Password=;”“Provider=Microsoft.Jet.OLEDB.4.0;Data”“Driver=SQLServer;server=srv;uid=sa;pwd=pwd;database=Pubs”DSN=Pu
11、bs;UID=sa;PWD=;13ADO记录集的操作记录集的操作n创建一个Recordset对象_RecordsetPtrpRst;(_uuidof(Recordset);说明:记录集的创建也可以利用执行SQL语句来完成。n打开与关闭记录集pRst-Open(Source,ActiveConnection,CursorType,LockType,Options);pRst-Close();14n添加记录pRst-AddNew();pRst-put_Collection(.);pRst-Update();n修改记录pRst-Edit();pRst-put_Collection(.);pRst-Update();n删除记录pRst-Delete();15n遍历记录集pRst-MoveFirst();pRst-MoveLast();pRst-MoveNext();pRst-MovePrevious();16ADO命令行的执行命令行的执行n创建一个Command对象_CommandPtrpCmd;pCmd-CreateInstance(_uuidof(Command);pCmd-ActiveConnection=pConnection;n命令行的执行pCmd-Execute(RecordsAffected,Parameters,Options);17n练习:图书进出表操作。18
限制150内