资源预览内容
第1页 / 共125页
第2页 / 共125页
第3页 / 共125页
第4页 / 共125页
第5页 / 共125页
第6页 / 共125页
第7页 / 共125页
第8页 / 共125页
第9页 / 共125页
第10页 / 共125页
亲,该文档总共125页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
ASPASP存取数据库存取数据库 某网站的导航内容需要根据用户的需求进行删除、增加、修改。现在由你担任程序员,你将如何来实现网络导航部分的实现和维护? 方案一:方案一:,维护功能由程序员修改,维护功能由程序员修改htmlhtml代码来实现。代码来实现。 方案一方案一:,维护工作由管理员在客户端界面即可简单方便的完成,维护工作由管理员在客户端界面即可简单方便的完成,不需要对源程序进行修改。不需要对源程序进行修改。 ASPASP存取数据库技术存取数据库技术 数据库存取组件(Database Access Component)是使用ADO(ActiveX Data Object)技术来存取符合数据源标准的数据库或者具有表格状的数据形式的一种ASP内置组件。 ADOconnectioncommandrecordsetASPASP存取数据库存取数据库Connection对象Command对象Recordset对象数据库数据库网页ADO轻松的实现实现数据库数据的查询、添加、删除、修改等功能,方便数据库的维护或网站的维护。 ASPASP存取数据库存取数据库1.Connection对象对象又称连接对象,主要用来建立与数据库的连接。只有先与数据库建立连接关系,才能实现对数据库的操作。 2.Command对象对象又称命令对象,是数据库执行命令的对象,可以执行数据库查询、修改、增添、删除等操作。 3.Recordset对象对象又称记录集对象。当connection对象或Command对象执行命令后,就会得到一个由满足条件的记录所组成的虚拟记录集。网络导航实例探讨网络导航实例探讨 “网络导航” 数据库 wwwlink 中建立一个link数据表来存放导航信息。 Link_idnameURLintroSubmit_date1新浪 门户网站 2004-10-20 2北大 学习的圣地 2004-10-21 3网易 社区网站 2004-10-23 4搜狐 搜索引擎 2004-10-25 如何把数据库中的导航信息显示在网页上,如何从网络平台上删除、修改、添加网络导航信息?网页访问数据库的基本思路网页访问数据库的基本思路q 建立数据库连接对象(connection对象),并连接数据库q 设置数据表操作的SQL命令,选择connection对象或command对象来执行q 确认数据表操作结果是否需要显示,如果要则建立recordset对象来指向执行结果,并读取相应的记录ConnectionConnection对象的功能对象的功能q连接数据库(最主要的功能)q存取数据表中数据q事务处理ConnectionConnection对象常用属性和方法对象常用属性和方法属性说明Mode设置数据库连接的权限,如只读或只写Connectiontimeout决定等待连接到数据库的时间,默认15秒ConnectionString连接数据库所用到的信息,为一个字符串Commandtimeout等待一条命令处理的时间,默认30秒方法说明open打开与一个数据库的连接close关闭与一个数据库的连接execute执行指定的SQL语句、存储过程等BeginTrans生成一个新的事务CommitTrans执行事务RollBackTrans取消当前事务所做的修改并结束该事务利用利用ConnectionConnection对象连接数据库对象连接数据库要把数据表中的信息显示在web页面,首先要建立数据库连接对象,并打开相应的数据库(wwwlink.mdb)。利用利用ConnectionConnection对象连接数据库对象连接数据库数据库连接对象的创建:利用利用ConnectionConnection对象连接数据库对象连接数据库数据库的连接:数据库的连接有两种方法:非数据源的连接和数据源的连接利用利用ConnectionConnection对象连接数据库对象连接数据库(1)非数据源的连接方法之一 利用利用ConnectionConnection对象连接数据库对象连接数据库打开数据库时需要两个参数,一个是:dbq=数据库的物理路径一个是:Driver=数据库驱动程序。两个参数之间用“;”隔开。Db.open Dbq= & Server.Mappath(address.mdb) & ;Driver=Microsoft Access Driver (*.mdb)利用利用ConnectionConnection对象连接数据库对象连接数据库(1)后跟的是一个字符串;(2)数据库的地址是物理地址,可以用方法把相对地址转换为物理地址,也可以直接写,不过直接写数据库的物理路径,在程序移植时需要修改物理路径,或放在指定的位置。(3)数据库类型:由于我们用的是Access数据库,所以注明“Driver=Microsoft Access Driver (*.mdb)” ,且注意在Driver和(*.mdb)之间的空格。(4)数据库地址信息和类型信息之间用“;”隔开利用利用ConnectionConnection对象连接数据库对象连接数据库(2)(2)非数据源的连接方法之二(基于基于OLE DB的连接方法的连接方法 )该连接方法中也有两个参数,一个是:Provider=数据提供者,另一个是:Data source=数据库的物理路径。两个参数之间用“;”隔开。 利用利用ConnectionConnection对象连接数据库对象连接数据库(3)利用数据源的连接方法(基于ODBC的连接方法 )假设我们设置的数据源名字为mylink,则建立连接的方法是: 利用利用ConnectionConnection对象连接数据库对象连接数据库 通过上述的介绍,请比较两种数据库连接方法各有什么优势? 非数据源连接方法:非数据源连接方法:书写比较复杂,但移植比较简单,不需要在服务器上重新设置数据源。 数据源连接方法:数据源连接方法:书写简单,但移植到其他服务器,则需要重新设置数据源。 利用利用ConnectionConnection对象连接数据库对象连接数据库 在用方法连接数据库时的数据库连接信息还可以用connection对象的connectionstring属性表示。 利用利用ConnectionConnection对象关闭数据库连接对象关闭数据库连接connection对象.Close 切断与指定数据库的连接。 利用利用ConnectionConnection对象执行数据存取对象执行数据存取set recordSet对象=connection对象.execute (SQL语句字符串)或 connection对象.execute(SQL语句字符串)数据库记录数据库记录查询查询数据库记录的删除、修改、增添数据库记录的删除、修改、增添 连接上数据库后,就可以应用connection对象的execute方法对数据库中的数据执行操作。 利用利用ConnectionConnection对象执行查询对象执行查询通过connection对象db的Execute方法执行查询SQL语句,得到一个虚拟的记录集,可建立RecordSet对象作为记录集的指针。 123rsrs.bof=truersrs.eof=truersrs.moveNext, rs.moveProvious, rs.movefirst, rs.movelast, rs.move n。 利用利用ConnectionConnection对象执行查询对象执行查询假设此时记录集指针 rs 指向第一条记录,123rs该记录的每个字段值用 rs(“字段名”) 获取。 rs(rs(“字段名字段名”) )就是标识对应记录的某个字段的值。如:rs(rs(“link_idlink_id”) )可以获取指定记录的编号rs(rs(“namename”) )可以获取指定记录的网站名称rs(rs(“URLURL”) )可以获取指定记录的网站地址利用利用ConnectionConnection对象执行查询对象执行查询我们刚才读取了 rs 所指向的一条记录的数据,但是一般情况记录集中有多条记录,如何能把每条记录都读取出来呢? 在读完一条记录后,用 rs 的 moveNext 方法,使 rs 移到下一条记录,再按照刚才所说的方法来读取每项数据。直到我们的 rs 移到了记录集的结尾,也就是true时。 利用利用ConnectionConnection对象执行删除对象执行删除利用利用ConnectionConnection对象执行删除对象执行删除(1 1)由于我们删除记录时不生成记录集,所以没有必要设置)由于我们删除记录时不生成记录集,所以没有必要设置记录集指针记录集指针rsrs。 (2 2)SQLSQL语句中用到了一个传递参数。语句中用到了一个传递参数。 (3 3)在)在SQLSQL语句中,如果连接的参数是数值型,则不要在参数语句中,如果连接的参数是数值型,则不要在参数两边加单引号,如果是字符则要加单引号,如果是日期型则加两边加单引号,如果是字符则要加单引号,如果是日期型则加# #。 sqlstr1=sqlstr1=”select * from link where link_id=5select * from link where link_id=5”sqlstr1=sqlstr1=”select * from link where name=select * from link where name=搜狐搜狐”sqlstr1=sqlstr1=”select * from link where link_id=select * from link where link_id=” & linked & linkedsqlstr1=sqlstr1=”select * from link where name=select * from link where name=” & netName & & netName & ” 利用利用ConnectionConnection对象执行添加对象执行添加 增添记录的SQL语句中,value内的参数是从哪里获取的?在增加新数据记录时,先得填写表单,然后在增加记录页面获取这些信息,作为SQL语句中insert里value的参数。利用利用ConnectionConnection对象执行添加对象执行添加利用利用ConnectionConnection对象执行数据存取对象执行数据存取在查询、删除、修改等操作中,有时希望知道connection对象.execute 方法影响了多少条记录,怎么办?connection对象.execute SQL语句字符串,number 返回此次操作影响的记录条数 数据库的操作权限数据库的操作权限 在上述的网络导航例子中,我们对数据库进行了查询、增添、删除、修改的操作。但是操作数据库就要涉及到一个权限问题,比如只读、只写、读写。Connection对象的mode属性是设置数据库操作权限的属性。Mode参数整数值说明AdModeUnknown0权限未定义AdModeRead1权限只读AdModeWrite2权限只写AdModeReadWrite3权限可读可写数据库的操作权限数据库的操作权限Mode属性设置应该在数据库打开之前设置事务处理事务处理引入事务处理的原因引入事务处理的原因 在应用数据库存取组件处理数据时,为了避免数据库连接错误或者数据库执行命令出错而引起的一些问题,提出了“同生共死”的要求。ConnectionConnection对象的事务处理方法对象的事务处理方法connection对象的事务处理方法 connection对象.BeginTransconnection对象.CommitTransconnection对象.RollBackTrans。 源数据库源数据库源数据库副本源数据库副本生成生成ConnectionConnection对象的事务处理方法对象的事务处理方法4. connection对象的事务处理方法 connection对象.Begin
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号