《数据库访问》PPT课件.ppt

上传人:san****019 文档编号:21185226 上传时间:2021-04-25 格式:PPT 页数:50 大小:427.60KB
返回 下载 相关 举报
《数据库访问》PPT课件.ppt_第1页
第1页 / 共50页
《数据库访问》PPT课件.ppt_第2页
第2页 / 共50页
《数据库访问》PPT课件.ppt_第3页
第3页 / 共50页
点击查看更多>>
资源描述
第 7章 数 据 库 访 问7.1 网 络 数 据 库 概 述7.2 ODBC数 据 源 7.3 ADO对 象 7.4 数 据 库 访 问7.5 综 合 举 例 7.1 网 络 数 据 库 概 述 ODBC是 连 接 数 据 库 的 通 用 驱 动 程 序 , 是 由微 软 主 导 的 数 据 库 连 接 标 准 , 实 用 环 境 也 以 微软 的 系 统 最 为 成 熟 。 在 UNIX系 统 中 , 通 常 要 使用 其 他 厂 商 所 提 供 的 ODBC驱 动 程 序 , 有 些 UNIX厂 商 会 自 己 提 供 ODBC驱 动 程 序 ( 如 SUN为Solaris提 供 ODBC) 。 ADO是 在 Microsoft的 新 的 数 据 库 应 用 开 发接 口 ( API) OLE DB技 术 上 实 现 的 , 通 过 ASP的 ADO对 象 , 只 要 安 装 了 相 应 的 OLE DB驱 动 程序 , 就 可 以 访 问 各 种 数 据 源 , 包 括 传 统 的 关 系型 数 据 库 和 其 他 数 据 。 返 回 首 页 7.2 ODBC数 据 源7.2.1 ODBC概 述7.2.2 创 建 数 据 源 返 回 首 页 7.2.1 ODBC概 述 每 个 ODBC数 据 源 都 被 指 定 一 个 名 字 , 即 DSN( Data Source Name) 。 ODBC数 据 源 分 为 机 器数 据 源 和 文 件 数 据 源 两 种 。 机 器 数 据 源 把 信 息 存 储 在 登 录 信 息 中 , 因而 只 能 被 该 计 算 机 访 问 。 机 器 数 据 源 包 括 系 统数 据 源 和 用 户 数 据 源 。 系 统 数 据 源 对 本 地 计 算机 的 所 有 用 户 都 是 可 见 的 , 而 用 户 数 据 源 是 针对 某 个 用 户 的 , 它 只 对 当 前 用 户 可 见 。 文 件 数 据 源 把 信 息 存 储 在 后 缀 名 为 .dsn的文 件 中 , 如 果 该 文 件 存 放 在 网 络 共 享 的 驱 动 器中 , 就 可 以 被 所 有 安 装 了 相 同 驱 动 程 序 的 用 户共 享 。 返 回 本 节 7.2.2 创 建 数 据 源ODBC数 据 源 管 理 器 “ 创 建 数 据 源 ” 窗口 “ 创 建 到 SQL Server的 新 数 据 源 ” 窗口 “ SQL Server身 份 验 证 ” 窗口 指 定 默 认 数 据 库 等 选 项 指 定 日 志 文 件 等 选 项 “ ODBC Microsoft SQL Server安 装 ” 窗 口 “ SQL Server ODBC数 据 源 测 试 ” 窗 口 返 回 本 节 返 回 本 节 7.3 ADO对 象 ADO对 象 ( ActiveX Data Objects)是 ASP内 置 对 象 之 一 , 凡 是 能 由 ODBC驱 动程 序 访 问 的 数 据 库 , 在 ASP中 都 可 以 通 过ADO对 象 与 SQL语 句 对 其 进 行 网 络 访 问 。 ADO的 七 个 对 象( 1) Connection对 象 用 于 创 建 ASP脚 本 和 指 定数 据 库 的 连 接 。 ( 2) Command对 象 负 责 对 数 据 库 提 供 请 求 , 也就 是 传 递 指 定 的 SQL命 令 。 ( 3) Parameter对 象 负 责 传 递 Command对 象 所需 要 的 SQL命 令 参 数 。 ( 4) RecordSet对 象 负 责 浏 览 与 操 作 从 数 据 库中 取 得 的 数 据 , 也 就 是 说 RecordSet对 象 可 以用 来 表 示 来 自 基 本 表 或 命 令 执 行 结 果 的 记 录 全集 。 ( 5) Field对 象 表 示 指 定 RecordSet对 象 的 数据 字 段 。 ADO的 七 个 对 象( 6) Property对 象 表 示 ADO的 各 项 对 象 属 性 值 ,每 个 ADO对 象 都 会 有 一 个 描 述 或 控 制 对 象 行 的属 性 。( 7) Error对 象 负 责 记 录 连 接 过 程 中 所 有 发 生的 错 误 信 息 , 任 何 涉 及 ADO对 象 的 操 作 都 会 生成 一 个 或 多 个 提 供 者 错 误 。 ADO的 四 个 数 据 集 合( 1) Fields数 据 集 合 所 有 Field对 象 的 集 合 。 ( 2) Properties数 据 集 合 所 有 Property对 象 的 集 合 。 ( 3) Parameters数 据 集 合 包 含 Command对 象 的 所 有 Parameter对 象 。( 4) Errors数 据 集 合 所 有 Error对 象 的 集 合 。 ADO对 象 与 数 据 集 合 之 间 的 关 系 返 回 首 页 7.4 数 据 库 访 问实 现 网 络 数 据 库 的 访 问 主 要 包 括 以 下 5个 步 骤 : ( 1) 打 开 数 据 库 ( 2) 创 建 记 录 集 ( 3) 操 作 记 录 集 ( 4) 关 闭 和 释 放 ADO对 象 返 回 首 页 打 开 数 据 库 使 用 ADO访 问 数 据 库 之 前 , 先 要 建 立 数 据 源 ,再 使 用 连 接 对 象 打 开 数 据 库 。 ADO的 Connection对 象是 网 络 通 过 ADO访 问 数 据 库 的 关 键 , 它 负 责 与 数 据 库的 实 际 连 接 动 作 , 其 它 对 象 都 是 依 赖 于 Connection对 象 对 数 据 库 进 行 操 作 的 。 Connection对 象 的 创 建语 法 Set 连 接 对 象 名 =Server.CreateObject(ADODB.Connection)例 如 Set Conn=Server.CreateObject(ADODB.Connection) Connection对 象 的 方 法方 法 名 功 能Open 打 开 Connection对 象 , 建 立 与 数 据 源 的 连 接 。Execute 执 行 指 定 的 SQL语 句 、 存 储 过 程 。Close 关 闭 Connection对 象 。Open方 法Connection对 象 的 Open方 法 负 责 创 建 与 数 据 源 的 连 接 。语 法 连 接 对 象 名 .Open DSN=数 据 源 名 ;UID=用 户 名 ;PWD=密 码 ; 例 如 : Set Conn=Server.CreateObject(ADODB.Connection) Conn.Open DSN=kycg;UID=sa;PWD=; Connection对 象 的 属 性属 性 名 说 明CommandTimeout 设 置 Connection对 象 的 Execute方 法 运 行 时 等待 的 最 长 时 间 。ConnectionTimeout 设 置 Connection对 象 的 Open方 法 与 数 据 库 连 接时 的 最 长 等 待 时 间 。DefaultDatabase 设 置 Connection对 象 的 缺 省 数 据 库 名 。State 获 得 Connection对 象 的 状 态 , 即 打 开 或 关 闭 。 返 回 本 节 创 建 记 录 集 对 于 数 据 库 中 数 据 的 访 问 是 通 过 记 录 集 对象 实 现 的 , 因 此 在 访 问 数 据 库 之 前 需 要 创 建 记录 集 对 象 。用 SQL语 句 创 建 记 录 集 对 象 用 Recordset对 象 创 建 记 录 集 对 象 用 Command对 象 创 建 记 录 集 对 象 用 SQL语 句 创 建 记 录 集 对 象即 直 接 通 过 Connection对 象 的 Execute方 法 创 建 记 录 集 对 象 。 语 法 连 接 对 象 名 .Execute(CommandText,RecordAffected,Options)例 如 : Conn.Execute(Update teacher set 职 称 =副 教 授 Where 系 别 =数 学 系 )Set Rs=Conn.Execute(Select * From teacher Where 职 称 =教 授 ) CommandText: 可 以 是 SQL语 句 、 一 个 存 储 过 程 或 基 本 表 名 ;RecordAffected: 是 一 个 整 型 变 量 , 用 于 存 储 数 据 库 服 务 器 每 次 操 作 所 得 的 记 录 数 ; Options: 表 示 对 数 据 库 请 求 的 类 型 。 AdCmdTextAdCmdTableAdCmdStoredProc 用 Recordset对 象 创 建 记 录 集 对 象( 1) 创 建 一 个 Recordset对 象 , 格 式 如 下 :Set Recordset对 象 名 =Server.CreateObject(ADODB.Recordset)( 2) 使 用 Recordset对 象 的 Open方 法 打 开 Recordset对 象 。 例 如Set ObjRs=Server.CreateObject(ADODB.Recordset) 格 式 Recordset对 象 名 .Open 数 据 源 ,连 接 名 称 ,游 标 类 型 ,锁 定 方 式 ,数 据 源 类 型 常 量 参 数 值 说 明AdOpenForwardOnly 0使用前向类型游标,只能在记录集中向前移动(默认值)AdOpenKeySet 1使用键集类型游标,可以在记录集中向前或向后移动。如果其他用户删除或改变了某条记录,记录集中将反映这个变化。但是,如果其他用户添加了一条新记录,新记录将不会出现在记录集中AdOpenDynamic 2使用动态类型游标,可以在记录集中向前或向后移动。对于其他用户造成的任何记录的变化都将在记录集中有所反映AdOpenStatic 3使用静态类型游标,可以在记录集中向前或向后移动。不会对其他用户造成的任何记录的变化有所反 映 RecordSet对 象 的 CursorType参 数 常 量 参 数 值 说 明AdLockReadOnly 0只读。不能改变数据(默认值)。AdLockPessimistic 1保守式锁定(逐个)。指定在编辑一个记录时立即锁定它。AdLockOptimistic 2开放式锁定(逐个)。只在调用Update方法时才锁定记录AdLockBatchOptimistic 3开放式批更新。用于批更新模式。RecordSet对 象 的 LockType参 数 常 量 参 数 值 说 明AdCmdUnknown -1指示Source参数中的命令类型为未知AdCmdText 1指示被执行的字符串包含一个命令文本AdCmdTable 2指示被执行的字符串包含一个表的名字AdCmdStoredProc 3指示被执行的字符串包含一个存储过程名RecordSet对 象 的 Options参 数 注 以 上 常 量 的 说 明 包 含 在 文 件 “ adovbs.inc” 中 , 用 户 需要 将 该 文 件 复 制 到 网 页 文 件 所 在 的 目 录 中 。 该 文 件 的 路 径 是“ C:Program FilesCommon FilesSystemADO” , 并 且 在 用到 该 常 量 的 ASP脚 本 的 最 前 面 需 要 加 上 如 下 语 句 : 用 Command对 象 创 建 记 录 集 对 象创 建 Command对 象 的 语 法 格 式 如 下 :Set Command对 象 名 =Server.CreateObject(ADODB.Command)例 如 :Set ObjCm=Server.CreateObject(ADODB.Command) Command对 象 的 属 性 属 性 说 明ActiveConnection 设 置 与 Command对 象 连 结 的 Connection对 象 。CommandText 指 明 对 数 据 库 的 具 体 操 作 , 可 以 是 SQL语 句 或 存储 过 程 。CommandType 设 置 Command对 象 的 类 型 。CommandTimeout 设 置 Command对 象 的 Execute方 法 运 行 时 的 最 长等 待 时 间 。State 取 得 Command对 象 的 状 态 , 即 打 开 或 关 闭 。 用 Command对 象 创 建 记 录 集 对 象使 用 ActiveConnection属 性 与 Connection对 象 建 立 连 接 。语 法 Command对 象 名 .ActiveConnection=Connection对 象 名例 如 ObjCm.ActiveConnection=Conn Command对 象 的 Execute方 法 用 于 执 行 CommandText属 性 中 设 定 的 SQL语 句 或 存储 过 程 , 并 且 返 回 记 录 集 对 象 。语 法 Set 记 录 集 对 象 名=Command.Execute(CommandText,RecordsAffected,Parameters,Options) 例 如 Set ObjRs=ObjCm.Execute(Select * From teacher Where 职 称 =教 授 )返 回 本 节 操 作 记 录 集 创 建 了 记 录 集 对 象 , 就 可 以 对 记 录 集 进 行操 作 。 对 记 录 集 的 操 作 主 要 通 过 Recordset对象 、 Field对 象 和 Fields集 合 实 现 。 Recordset对 象 的 属 性 和 方 法 Field对 象 和 Fields集 合 的 属 性 和 方 法 返 回 本 节 RecordSet对 象 的 方 法1、 Open方 法 使 用 Open方 法 可 以 打 开 代 表 数 据 表 、 查 询 结 果 或 者 以 前保 存 的 RecordSet中 记 录 的 游 标 即 与 数 据 库 建 立 连 接 。语 法RecordSet.Open Source, ActiveConnection, CursorType, LockType, Options2、 Close方 法 用 来 关 闭 所 指 定 的 RecordSet对 象 。 语 法 RecordSet.Close 这 些 方 法 都 是 用 来 移 动 记 录 指 针 的 , 通 过 使 用 这 些 方 法 可 以 根 据 实 际 情况 方 便 地 将 记 录 指 针 移 动 到 所 要 的 位 置 。 MoveFirst: 将 指 针 移 动 到 RecordSet对 象 的 第 一 条 记 录 。 MoveLast: 将 指 针 移 动 到 最 后 一 条 数 据 记 录 。 MoveNext: 将 指 针 移 动 到 下 一 条 数 据 记 录 。MovePrevious: 将 指 针 移 动 到 上 一 条 数 据 记 录 。 Move: 将 指 针 移 动 到 指 定 位 置 。 3、 MoveFirst, MoveLast, MoveNext, MovePrevious, Move方 法RecordSet对 象 的 方 法Num:指 针 移 动 的 数 目 , 如 为 正 数 表 示 向 后 移 动 , 负 数 表 示 向 前 移 动 。Start:指 针 移 动 的 基 准 点 。 AdBookmarkCurrent或 0表 示 从 当 前 记 录 开 始 ; AdBookmarkFirst或 1表 示 从 首 记 录 开 始 ; AdBookmarkLast或 2表 示 从 尾 记 录 开 始 。 4 Update, CancelUpdate, CancelBatch、 UpdateBatch方 法 用 来 更 新 或 取 消 更 新 的 。 Update: 用 于 将 RecordSet对 象 中 当 前 记 录 的 修 改 保 存 到 数 据 库 中 。CancelUpdate: 取 消 在 调 用 Update方 法 前 所 做 的 修 改 。 UpdateBatch: 进 行 批 次 模 式 的 更 新 数 据 操 作 。 CancelBatch: 允 许 取 消 批 次 模 式 的 更 新 数 据 操 作 。RecordSet对 象 的 方 法AddNew: 用 来 向 数 据 库 中 插 入 一 条 新 记 录 ;Delete: 用 于 从 数 据 库 中 删 除 指 定 的 记 录 。语 法 RecordSet对 象 名 .AddNew RecordSet对 象 名 .Delete5、 AddNew, Delete方 法 RecordSet对 象 的 属 性1 ActiveConnection、 Source、 CursorType、 LockType属 性2 CursorLocation, Bookmark属 性3 RecordCount, MaxRecords属 性4 BOF, EOF属 性5 PageSize, PageCount, AbsolutePage, AbsolutePositionRecordset对 象 名 .Open 数 据 源 ,连 接 名 称 ,游 标 类 型 ,锁 定 方 式 ,数 据 源 类 型 返 回 常 量 参 数值 说 明AdEditNone 0指示当前没有编辑操作AdEditInProgress 1指示当前记录中的数据已被修改但未保存AdEditAdd 2指示AddNew方法已被调用,且复制缓冲区中的当前记录是尚未保存到数据库中的新记录AdEditDelete 3指示当前记录已被删除EditMode属 性 的 取 值 返 回 常 数 参 数 值 说 明AdFilterNone 0删除当前筛选条件并恢复查看的所有记录AdFilterPendingRecords 1允许只查看已更改且尚未发送到服务器的记录。只能应用于批更新模式AdFilterAffectedRecords 2允许只查看上一次Delete,Resync,UpdateBatch或CancelBatch调用所影响的记录AdFilterFetchedRecords 3允许查看当前缓冲区中的记录,即上一次从数据库中检索记录的调用结果AdFilterConflictingRecords 4允许查看在上一次批更新中失败的记录Filter属 性 的 取 值 Fields集 合 就 是 Recordset对 象 中 包 含 的 所 有 Field对 象的 集 合 , 可 以 通 过 Fields集 合 的 Item方 法 获 得 Fields集 合中 的 Field对 象 , 语 法 如 下 : Recordset对 象 .Fields.Item(i)也 可 以 简 写 为 : Recordset对 象 .Fields(i) i表 示 当 前 记 录 的 第 i个 字 段 , i=0,1,字 段 个 数 -1。 还 可 以 使 用 Recordset对 象 (字 段 名 )的 形 式 访 问 当 前记 录 的 某 个 字 段 。Field对 象 的 访 问 使 用 Fields集 合 的 Count属 性 获 得 一 个 Recordset对 象 中每 条 记 录 的 字 段 个 数。 Field对 象 的 属 性Name属 性 表 示 对 象 属 性 的 名 称 。Value属 性 表 示 对 象 属 性 的 属 性 值 。Type属 性 表 示 对 象 属 性 的 数 据 类 型 。 返 回 Field对 象 的 方 法 Field对 象 的 方 法 包 括 AppendChunk,GetChunk等 。 AppendChunk方 法 和 GetChunk方 法是 用 来 专 门 处 理 text, image等 数 据 类 型 的 。AppendChunk方 法 用 于 将 数 据 写 到 数 据 库 中 ;GetChunk方 法 用 于 将 数 据 从 数 据 库 中 取 出 。语 法 Field.AppendChunk data Variant = field.GetChunk(size) 关 闭 数 据 库 在 所 有 数 据 库 操 作 结 束 后 , 需 要 将 记 录 集和 数 据 库 的 连 接 关 闭 。 可 以 通 过 Connection 对象 的 Close方 法 将 已 建 立 并 打 开 的 Connection对象 关 闭 。语 法 连 接 对 象 名 .Close例 如 Conn.Close注 关 闭 以 后 的 Connection对 象 的 定 义 仍 然 存 在 ,只 是 其 中 包 含 的 数 据 被 删 除 。 因 此 , 仍 然 可 以 通过 Open方 法 将 该 Connection对 象 重 新 打 开 。 释 放 ADO对 象 关 闭 了 数 据 库 的 连 接 , 只 是 清 空 了 它 们 的数 据 , 而 定 义 还 在 。 如 果 不 再 使 用 连 接 对 象 ,则 可 以 释 放 连 接 对 象 , 进 而 释 放 所 占 用 的 内 存资 源 。语 法 Set连 接 对 象 名 =Nothing例 如 Set Conn=Nothing 返 回 本 节 综 合 举 例例题13.19例题13.20例题13.21例题13.22 返 回 首 页 例 13_19 显 示 记 录使 用 Command对 象 的 Execute方 法 创 建 记 录 集 对 象 rs 注 使 用 这 种 方 法 创 建 的 记 录 集 对 象 的 游 标 类 型 是 adOpenForwardOnly, 只能 对 该 记 录 集 对 象 进 行 显 示 , 不 能 进 行 修 改 、 添 加 、 删 除 的 操 作 , 也 不 能 使用 RecordCount属 性 。 例 13_19 显 示 记 录在 表 格 的 第 一 行 显 示 字 段 名For i=0 to rs.Fields.count-1Response.Write UID=sa; PWD=;Set rs= Server.CreateObject(ADODB.Recordset)rs.Open teacher,conn,adOpenKeyset,adLockOptimistic,adCmdTable 例 13_20 添 加 记 录使 用 记 录 集 对 象 的 方 法 添 加 新 记 录rs.AddNewrs(教师编号).Value =Trim(Request.QueryString(num)rs(姓名).Value=Trim(Request.QueryString(name)rs(职称).Value=Trim(Request.QueryString(zc)rs(系别).Value=Trim(Request.QueryString(depart)rs(最高学位).Value=Trim(Request.QueryString(xw)rs(性别).Value=(Request.QueryString(sex)rs.Update 返 回 例 13_21 修 改 记 录通 过 Connection对 象 的 Execute方 法 创 建 记 录 集 对 象 rs1 Set conn = server.CreateObject(adodb.connection)conn.Open DSN=kycg; UID=sa; PWD=;strsql=update teacher set 教 师 编 号 = UID=sa; PWD=;strsql=Delete from teacher where 教 师 编 号 = & request(sno) & conn1.Execute(strsql) 返 回
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!