|
网站首页
|
JAVA文章
|
AppServers
|
Web开发
|
应用开发
|
资源下载
|
论坛
想学好编程,学好外语很重要 [enadd 2006年12月25日]
设为首页
加入收藏
联系站长
您现在的位置:
编程笔记网
>>
应用开发
>>
vb
>>
数据库
>> 文章正文
直接使用ODBC API访问数据库的VB程序
【字体:
小
大
】
直接使用ODBC API访问数据库的VB程序
作者:吴 斌 文章来源:- 点击数: 更新时间:2006-6-10
Dim rc As Integer 'ODBC函数的返回码
Dim henv As Long 'ODBC环境句柄
rc = SQLAllocEnv(henv) '获取ODBC环境句柄
---- 二、 与ODBC 数 据 源 建 立 连 接
---- 这 个 过 程 由 下 列 两 个 步 骤 组 成:
---- 1、 调 用SQLAllocConnect 函 数 获 取 连 接 句 柄。 例 如:
Dim hdbc As Long '连接句柄
rc = SQLAllocConnect(henv, hdbc) '获取连接句柄
---- 2、 建 立 连 接。 这 个 步 骤 可 以 通 过 多 种 方 法 实 现, 最 简 单 直 观 的 方 法 是 调 用SQLConnect 函 数。 例 如:
Dim DSN As String, UID As String, PWD As String
DSN = "DataSourceName" 'ODBC数据源名称
UID = "UserID" '用户帐号
PWD = "Password" '用户口令
rc = SQLConnect(hdbc, DSN, Len(DSN), UID,
Len(UID), PWD, Len(PWD)) '建立连接
---- 三、 存 取 数 据
---- 用 户 对ODBC 数 据 源 的 存 取 操 作, 都 是 通 过SQL 语 句 实 现 的。 在 这 个 过 程 中, 应 用 程 序 将 通 过 连 接 向ODBC 数 据 库 提 交SQL 语 句, 以 完 成 用 户 请 求 的 操 作。 具 体 步 骤 如 下:
---- 1、 调 用SQLAllocStmt 函 数 获 取 语 句 句 柄。 例 如:
Dim hstmt As Long
rc = SQLAllocStmt(hdbc, hstmt)
---- 2、 执 行SQL 语 句。 执 行SQL 语 句 的 方 法 比 较 多, 最 简 单 明 了 的 方 法 是 调 用SQLAllocStmt 函 数, 例 如:
Dim SQLstmt As String
SQLstmt = "SELECT * FROM authors"
rc = SQLExecDirect(hstmt, SQLstmt, Len(SQLstmt))
---- 四、 检 索 结 果 集
---- 如 果SQL 语 句 被 顺 利 提 交 并 正 确 执 行, 那 么 就 会 产 生 一 个 结 果 集。 检 索 结 果 集 的 方 法 有 很 多, 最 简 单 最 直 接 的 方 法 是 调 用SQLFetch 和SQLGetData 函 数。SQLFetch 函 数 的 功 能 是 将 结 果 集 的 当 前 记 录 指 针 移 至 下 一 个 记 录,SQLGetData 函 数 的 功 能 是 提 取 结 果 集 中 当 前 记 录 的 某 个 字 段 值。 通 常 可 以 采 用 一 个 循 环 以 提 取 结 果 集 中 所 有 记 录 的 所 有 字 段 值, 该 循 环 重 复 执 行SQLFetch 和SQLGetData 函 数, 直 至SQLFetch 函 数 返 回SQL_NO_DATA_FOUND, 这 表 示 已 经 到 达 结 果 集 的 末 尾。
Dim ColVal As String * 225
ColVal = String(255, 0)
Do Until SQLFetch(hstmt) = SQL_NO_DATA_FOUND
rc = SQLGetData(hstmt, i, SQL_C_CHAR, ColVal,
Len(ColVal), SQL_NULL_DATA)
Loop
---- 五、 结 束 应 用 程 序
---- 在 应 用 程 序 完 成 数 据 库 操 作, 退 出 运 行 之 前, 必 须 释 放 程 序 中 使 用 的 系 统 资 源。 这 些 系 统 资 源 包 括: 语 句 句 柄、 连 接 句 柄 和ODBC 环 境 句 柄。 完 成 这 个 过 程 的 步 骤 如 下:
---- 1、 调 用SQLFreeStmt 函 数 释 放 语 句 句 柄 及 其 相 关 的 系 统 资 源。 例 如:
rc = SQLFreeStmt(hstmt, SQL_DROP)
---- 2、 调 用SQLDisconnect 函 数 关 闭 连 接。 例 如:
rc = SQLDisconnect(hdbc)
---- 3、 调 用SQLFreeConnect 函 数 释 放 连 接 句 柄 及 其 相 关 的 系 统 资 源。 例 如:
rc = SQLFreeConnect(hdbc)
---- 4、 调 用SQLFreeEnv 函 数 释 放 环 境 句 柄 及 其 相 关 的 系 统 资 源, 停 止ODBC 操 作。 例 如:
rc = SQLFreeEnv(henv)
---- 此 外, 在 编 制 程 序 时 还 有 一 个 需 要 重 点 考 虑 的 问 题, 这 就 是 错 误 处 理。 所 有ODBC API 函 数, 若 在 执 行 期 间 发 生 错 误, 都 将 返 回 一 个 标 准 错 误 代 码SQL_ERROR。 一 般 来 讲, 在 每 次 调 用ODBC API 函 数 之 后, 都 应 该 检 查 该 函 数 返 回 值, 确 定 该 函 数 是 否 成 功 地 执 行, 再 决 定 是 否 继 续 后 续 过 程。 而 详 细 的 错 误 信 息, 可 以 调 用SQLError 函 数 获 得。SQLError 函 数 将 返 回 下 列 信 息: 标 准 的ODBC 错 误 状 态 码
ODBC 数 据 源 提 供 的 内 部 错 误 编 码
错 误 信 息 串
---- 简 单 应 用 实 例
---- 本 实 例 将 编 制 一 个 客 户 机 端VB 应 用 程 序, 通 过Windows NT 局 域 网 查 询 服 务 器 端MS SQL Server 6.5 样 板 数 据 库PUBS 中 的AUTHORS 数 据 表, 并 在 一 个Grid 控 件 中 显 示 查 询 结 果。 首 先, 使 用Windows 控 制 面 板 中 的ODBC 驱 动 管 理 器 新 建 一 个ODBC 数 据 源, 定 义 数 据 源 名 称 为ODBC_API_DEMO, 定 义 登 录 数 据 库 为PUBS, 其 它 信 息 应 根 据 用 户 的 环 境 正 确 设 置。 然 后, 启 动VB, 新 建 一 个 项 目Project1, 在 缺 省 窗 体Form1 中 加 入 一 个Grid 控 件Grid1、 两 个CommandButton 控 件cmdQuery 和cmdClose, 在Project1 中 插 入 一 个 模 块Module1, 将 前 面 列 举 的 声 明 语 句 加 入 其 中。 程 序 代 码 如 下:
上一页
[1]
[2]
[3]
下一页
文章录入:enadd 责任编辑:enadd
上一篇文章:
远程数据库的访问
下一篇文章:
文档数据库与关系数据库的比较
【
发表评论
】【
加入收藏
】【
告诉好友
】【
打印此文
】【
关闭窗口
】
最新热点
最新推荐
相关文章
用VB编写DirectX7.0游戏(下…
用VB编写DirectX7.0游戏(上…
使用OLE DB和ADO调用返回记录…
使用VB调用Oracle程序包内的…
VB中用ADO对象动态创建数据库…
fffff
如何用MSComm Control传Bina…
MultiLink的WinSock Server程…
用VB制作浏览器
用VB编写网络寻呼机
网友评论:
(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
|
设为首页
|
加入收藏
|
联系站长
|
友情链接
|
版权申明
|
管理登录
|
Copyright ©2000 - 2005
Enadd
.com
备案序号:辽ICP备06005595号
QQ:1656107
站长:
enadd