资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
一、数据库与 ODBC 数据源的建立1常用数据库Access、SQL Server、SYBASE、ORACLE、DB2、MYSQL等对于大型数据库安装号后需要添加用户,并给予相应权限。建立数据库,建立表,有必要的话还要建立存储过程、触发器等。建立 ODBC 数据源:ODBC(Open Database Connectivity),是被人们广泛接受的用于数据库访问的应用程序编程接口。它使用结构化查询语言(SQL)作为其数据库访问语言。数据库应用程序在ODBC 接口中调用函数,ODBC 接口在 ODBC 驱动程序中实现。对不同的数据库 ODBC 有不同的驱动程序,但是接口都是一样的。这样就大大方便了编程,比如针对 SQL SERVER编的程序,如果都使用标准 SQL 语句,则在迁移到 ORACLE时只需要重新建立对应 ORACLE 的数据源,其他什么都不需要修改,这就是 ODBC 的优点。ODBC 数据源包含了如何与一个数据库进行连接的信息。在对数据库操作时表面上就好象是对这个数据源在操作一样。建立数据源:数据源有三种,用户数据源、文件数据源和系统数据源。一般是用文件数据源和系统数据源。文件数据源将与数据库的连接所需信息存放在一个文件中,而系统数据源将它存放在注册表中。建议使用文件数据源,便于移植。建立数据源通过控制面板中 ODBC 数据源管理程序完成。首先选定使用文件还是系统数据源,然后点击添加,选定驱动程序,对于系统数据源需要指定数据源的名称,对于文件数据源则需要确定数据源的文件存在什么地方及起名字,然后选定数据库,对于大型数据库还要输入用户名和口令并进行连接测试,测试 OK,就建立好了。JAVA 使用的是 JDBC,不过很多数据库不提供 JDBC 驱动程序,所以又有了 JDBC-ODBC 桥。二、使用 ADO 操作数据库ADO(ActiveX Database Object)可以说是一个基于 ODBC 数据接口的应用程序方法。1、使用 Server.CreateObject 建立连接的对象,并使用open 方法打开数据源对应的数据库:Set Conn=Server.CreateObject(“ADODB.Connection”)Conn.open “数据源的名称”,”用户名”,”口令”如果是没有口令的 Access,foxpro,Excel 等数据库,就可以不要用户名和口令,直接 Conn.open “数据源的名称” 就可以了2、设定 SQL 命令,使用 conn 的 Execute 方法执行 SQL命令,产生记录集Set RS=conn.execute(SQL 命令)如:set rs=conn.execute(“select * from users”)就将对应数据库里 users 表里的所有记录全部放到记录集 rs 里了,对 rs 操作就可以获得每个字段的值了。3、使用下列 RecordSets(记录集,就是上面的 rs),显示查询结果:RS.Fields.count recordsets 的字段数RS(i).Name 第 I 个字段的名称,I 由 0 到 RS.Fileds.count-1RS(i) 当前记录的第 I 个字段的值RS(“字段名”) 当前记录该字段名对应的字段的值RS.EOF 是(True)否(False)已到该记录集的末尾RS.MoveNex 将指针移到下一行RS.MovePrev 将指针移到上一行RS.MoveFirst 将指针移到第一行RS.MoveLast 将指针移到最末尾4、最后关闭数据集和连接RS.closeConn.close例:将数据库 db1 里表 users 的内容全部显示出来假设有一个文件数据源 c:program filescommon filesodbcdata sourcesdb1.dsn 和一系统数据源 mydb1 都指向数据库 db1,用户名为user1,口令为 mypwdlistusers.asp显示 db1.users显示 db1.users三、SQL 命令简介1、SelectSelect 字段 1,字段 2, From table_name Where 关系表达式 Order By 字段名 (加 DESC 表示按降序排列)2、InsertInsert table_name (字段 1,字段 2,) Values (字段 1 的值,字段 2 的值,)3、UpdateUpdate table_name Set 字段 1=字段 1 的值,字段 2=字段 2的值 Where 关系表达式4、DeleteDelete From table_name Where 关系表达式注:各家数据库对 SQL 的实现并不完全兼容,在语法上各有些小差异,应用时最好查看该数据库的帮助文档四、recordset 的其他用法1、recordset.open前面讲的是用 connection 的 execute 方法来填充记录集,也可以用 open 方法来做。例:2、记录集游标rs.open sqlstr,conn,0 中最后的 0 就是打开这个记录集所采用的游标类型游标决定了可以对一个记录集进行什么样的操作,还决定了其他用户可以对一个记录集进行什么样的改变。共有四种游标类型,我们常用的有两种,一种是AdOpenForwardOnly(0):使用向前游标,只能在记录集中向前移动;另一种是 AdOpenStatic(3):使用静态游标,可以在记录集中向前或向后移动,且不会对其他用户造成的记录变化有所反映。功能越丰富的游标,效率就越第,缺省情况下打开一个记录集用的是向前游标。注:游标类型常量及其他常量都在 c:program filescommon filesADOADOVBS.inc 文件中定义(也可能不在这个目录)3、返回记录数目记录集有一个属性是 recordcount,指记录集中的记录数,使用这个属性必须用一个效率较低的游标打开它,如静态游标 rs.open sqlstr,conn,3 这时就可以使用 rs.recordcount 这个属性,不过不推荐使用它,可以用其他方法来实现同样的目的。第一个方法:用向前游标打开,用 while 循环加 EOF 判断遍历记录集第二个方法:set rs.open “select count(*) myrecordcount from users”,conn,0rs(“myrecordcount”) 也可以得到记录总数4、对记录集进行分页,实现记录分页显示有三个属性:AbsolutePage 指定当前页PageCount 返回记录集中的逻辑页数PageSize 指定一个逻辑页中的记录个数,缺省是10 个List.asprs.pagecount then page=pagecountend ifrs.absolutepage=pagenumrows=0do while not rs.eof and numrows0 then %”上一页”下一页5、指定记录集的最大容量用于显示最新的 N 条记录,但是不超过 N 条。比如留言板,最开始只显示最新的 10 条留言。如果将记录全部提出,按时间倒序排列,取出前 10 条也可以,但是效率较底,可以设定记录集的最大容量(MaxRecord)为 10,那么最多返回 10 条记录。在留言板中将留言按时间倒序排列,就可以取到最新的10 条。例:五、数据库的其他几个概念1、 存储过程存储过程就是将一段 SQL 代码作为数据库的一部分放到数据库中,它只是在第一次使用时被数据库引擎编译。有助于提高效率,可以当函数用,简化编程。一个简单的例子:create procedure sp_countliuyanas select count(*) as cuntofliuyan from liuyango在 ASP 中应用时:带参数的存储过程create procedure sp_queryxiaoyou (name varchar(10),year1 int,year2 int,dept varchar(40)as select name,sex,grandyear,dept,unit from register wherename like name and grandyear between year1 and year2 and dept like dept order by grandyeargo在 ASP 中应用时:这里的例子都只有一个 SQL 语句,其实可以有多个,还可以定义临时变量,进行流程控制等。删除存储过程:drop procedure procedure_name2、 触发器(trigger),一种特殊的存储过程就是对数据库执行某操作时自动引发其他操作,insert、update、delete 可以引发触发器。比如两个表有相关的行,假如删除第一个表的某一行,就需要删除第二个表的对应行,就可以在第一个表加 delete 触发器,自动删除第二个表对应的行。触发器必须在表上建立,比如 SQL6.5,要创建触发器,在相应表上右击,会有 trigger 选项,点击,就可以创建、删除触发器。例:create trigger my_triggeron usersfor delete as begin/SQL statementsendgo3、 创建视图(VIEW)视图是一种虚拟表,它主要用于为用户提供安全性功能和简化复杂查询的结构。例:有一个工人工资表,字段有姓名、密码、工资级别、工龄create view my_view (name,money)as select name,jibie*150+workyear*20from workersselect * from my_viewdrop view my_view4、事务处理(TRANSACTION)事务处理类似于原操作,就是当一组语句构成一个事务处理时,如果一个语句没有执行成功,则所有语句都不成功,即要么都执行要么都不执行,执行到一半也要退回去。数据库中这种退回操作叫回滚(RollBack)。ASP 中也可以创建事务处理例:错误代码 错误产生者名称 错误描述 执行失败!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号