说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

使 用WISQL32 同 时 访 问SQL SERVER 和SYBASE 数 据 库Delphi资

HTML文档下载 WORD文档下载 PDF文档下载
使 用WISQL32 同 时 访 问SQL SERVER 和SYBASE 数 据 库Delphi资

对 于 一 个 系 统 管 理 员, 要 同 时 管 理 一 个 网 络 中 的 多 个 数 据 库 服 务 器 或 者 是 互 连 网 中 分 属 不 同 网 络 的 多 个 数 据 库 服 务 器, 首 先 要 解 决 同 时 连 通 访 问 这 些 数 据 库 服 务 器 的 问 题。 一 般 来 说, 各 种 数 据 库 必 须 使 用 自 己 相 应 的 客 户 端 工 具 进 行 连 接, 而 不 能 连 接 另 外 的 数 据 库。 微 软 公 司 的SQL SERVER6.0 数 据 库 是 从SYBASE4.2 数 据 库 发 展 而 来, 其 自 身 的 客 户 端 工 具 是 不 能 连 接SYBASE10 或SYBASE11 数 据 库 的。 另 外SYBASE11 客 户 端 所 带 工 具WISQLl32 可 以 分 段 执 行 一 个SQL 文 件 中 的 任 一 选 择 部 分, 这 样 给 管 理 数 据 库 服 务 器, 调 试 存 储 过 程、 触 发 器 带 来 了 很 大 的 方 便。 这 个 功 能 在 微 软 公 司 的SQL SERVER6.0 数 据 库 客 户 端 所 带 工 具ISQL_W 所 不 具 备 的。

在 工 作 实 践 中, 笔 者 发 现 只 要 对SYBASE11 客 户 端 进 行 适 当 的 配 置, 在WISQLl32 的 菜 单 中 断 开 一 个 已 连 通 的 数 据 库 服 务 器 后, 连 接 网 络 中 另 一 个 的 数 据 库 服 务 器, 不 用 重 新 启 动, 就 可 以 达 到 既 访 问 微 软 的SQL SERVER6.0 数 据 库 也 能 同 时 访 问SYBASE11( 或 者10) 数 据 库 的 目 的。 既 给 同 时 管 理 多 个 数 据 库 服 务 器( 尤 其 是SQL SERVER6.0 数 据 库) 带 来 了 很 大 的 方 便, 也 使 得 在SQL SERVER6.0 和SYBASE11 之 间 移 植 存 储 过 程、 触 发 器 提 供 了 可 能 性。 本 文 就 笔 者 自 己 的 实 现 方 法 提 供 给 大 家 参 考。

一 . 系 统 环 境

为 了 简 化 起 见, 假 设 只 在 一 个 网 络 环 境 中, 只 有 一 台 网 络 服 务 器, 在 这 台 网 络 服 务 器 上 同 时 安 装 了MS SQL SERVER6.0、SYBASE11( 或 者SYBASE10, 建 议 不 要 同 时 安 装SYBASE11 和10 两 个 版 本)。 不 考 虑 单 一 网 络 多 台 服 务 器 或 互 联 网 络 多 台 网 络 服 务 器 环 境。 但 是 无 论 什 么 环 境, 应 用 同 样 的 方 法 都 可 以 实 现WISQLl32 对 分 布 在 一 台 或 多 台 网 络 服 务 器 上 数 据 库 服 务 器 的 访 问。

1. 网 络 服 务 器:WINDOWS NT 3.51 或4.0 网 络 操 作 系 统, 内 存64MB 以 上, 奔 腾133 以 上, 网 络 协 议 为TCP/IP, 主 域 控 制 器 名RMYH, 网 络 服 务 器 的 计 算 机 名DBSERVER。

2. 在DBSERVER 网 络 服 务 器 上 同 时 安 装 的MS SQL SERVER6.0 数 据 库 服 务 器 名 为DBSERVER( 与 网 络 服 务 器 同 名),SYBASE 11 数 据 库 服 务 器 包 含SYBASE11(SQL 服 务 器)、SYBASE11-BS(BACKUP 服 务 器)、SYBASE11-MS(MONITOR 服 务 器)、SYBASE11-HS(HISTORY 服 务 器) 四 个 数 据 库 服 务 器(SYBASE 10 数 据 库 服 务 器 只 包 含SYABSE10,SYBASE10-BS、SYBASE10-MS 三 个 数 据 库 服 务 器)。

3. 客 户 机: 中 文WINDOWS95,SYABSE FOR WINDOWS95 客 户 端 工 具

二 . 配 置SYABSE FOR WINDOWS95 客 户 端 工 具

---- SQLEDIT 是SYBASE 与 平 台 无 关 的 程 序, 用 来 配 置 客 户 连 接,SQLEDIT 用 于 编 辑SYBASE 根 目 录 下INI 子 目 录 中 名 为SQL.INI 的 文 件, 也 可 以 人 工 地 编 辑SQL.INI 文 件, 但 是 借 助SQLEDIT 的 图 形 工 具 要 容 易 一 些, 并 且 可 以 把 错 误 推 给SYBASE。SQLEDIT 的 使 用 方 法 请 参 考 有 关SYBASE 的 说 明 书。 本 文 主 要 讨 论 在SQL.INI 如 何 选 择 参 数 来 使WISQL 同 时 访 问MS SQL SERVER 和SYBASE11 数 据 库 服 务 器。

WINDOWS NT 可 以 选 择NetBEUI、IPX/SPX、TCP/IP 三 种 网 络 协 议 来 组 建 网 络,SYBASE11( 或 者SYBASE10) 数 据 库 服 务 器 安 装 时, 会 根 据 网 络 协 议 来 生 成NET-LIBRARY 驱 动 程 序, 三 种 网 络 协 议 都 能 生 成 名 为NLMSNMP( 命 名 管 道) 的NET-LIBRARY 驱 动 程 序, 其 中 对 于TCP/IP 网 络 协 议, 还 多 生 成 一 个 名 为NLWNSCK( 软 插 口) 的NET-LIBRARY 驱 动 程 序, 所 以 笔 者 选 择 使 用TCP/IP 构 成 的WINDOWS NT 网 络 作 为 分 析 的 环 境。

使 用SQLEDIT 或 编 辑 软 件 配 置 好 的SQL.INI 文 件 内 容 如 下(SQL.INI 文 件 在c:\sybase\ini 目 录 中):

[MSSQL6.0]

$BASE$00=NLMSNMP

\\ dbserver \pipe\sql\ query

$BASE$01=NLWNSCK

dbserver

1433

query=$BASE$00;$BASE$01;

$BASE$02=NLMSNMP

\\dbserver\pipe\sql\query

$BASE$03=NLWNSCK

dbserver

1433

master=$BASE$02;$BASE$03;

[SYBASE11]

$BASE$00=NLWNSCK

dbserver

5000

$BASE$01=NLMSNMP

\\dbserver\pipe\sybase\query

master=$BASE$00;$BASE$01;

$BASE$02=NLWNSCK

dbserver

5000

$BASE$03=NLMSNMP

\\dbserver\pipe\sybase\query

query=$BASE$02;$BASE$03;

[SYBASE11_BS]

$BASE$00=NLWNSCK

dbserver

5001

$BASE$01=NLMSNMP

\\dbserver\pipe\sybase\ backup

query=$BASE$00;$BASE$01;

$BASE$02=NLWNSCK

dbserver

5001

$BASE$03=NLMSNMP

\\dbserver\pipe\sybase\backup

master=$BASE$02;$BASE$03;

[SYBASE11_MS]

$BASE$00=NLWNSCK

dbserver

5002

$BASE$01=NLMSNMP

\\dbserver\pipe\sybase\monitor

master=$BASE$00;$BASE$01;

$BASE$02=NLWNSCK

dbserver

5002

$BASE$03=NLMSNMP

\\dbserver\pipe\sybase\monitor

query=$BASE$02;$BASE$03;

[SYBASE11_HS]

$BASE$00=NLWNSCK

dbserver

5003

$BASE$01=NLMSNMP

\\dbserver\pipe\sybase\hist

master=$BASE$00;$BASE$01;

$BASE$02=NLWNSCK

dbserver

5003

$BASE$03=NLMSNMP

\\dbserver\pipe\sybase\ hist

query=$BASE$02;$BASE$03;

[SYBASE10]

$BASE$00=NLMSNMP

\\dbserver\pipe\sql10\query

$BASE$01=NLWNSCK

dbserver

5000

master=$BASE$00;$BASE$01

$BASE$02=NLMSNMP

\\dbserver\pipe\sql10\query

$BASE$03=NLWNSCK

dbserver

5000

query=$BASE$02;$BASE$03

[SYBASE10_BS]

$BASE$00=NLMSNMP

\\dbserver\pipe\sql10\backup

$BASE$01=NLWNSCK

dbserver

5001

query=$BASE$00;$BASE$01;

$BASE$02=NLMSNMP

\\dbserver\pipe\sql10\backup

$BASE$03=NLWNSCK

dbserver

5001

master=$BASE$02;$BASE$03;

[SYBASE10_MS]

$BASE$00=NLMSNMP

\\dbserver\pipe\sql10\ monitor

$BASE$01=NLWNSCK

dbserver

5002

master=$BASE$00;$BASE$01;

$BASE$02= NLMSNMP

\\dbserver\pipe\sql10\monitor

$BASE$03= NLWNSCK

dbserver

5002

query=$BASE$02;$BASE$03;

从 以 上sql.ini 文 件 内 容 可 以 看 出:

① 使 用TCP/IP 软 插 口 的 格 式 为

NLWNSCK

网 络 服 务 器 名 称

软 插 口 地 址

② 使 用 命 名 管 道 的 格 式 为

NLMSNMP

\\ 网 络 服 务 器 名 称\pipe\ 数 据 库 类 型\ 数 据 库 服 务 器 简 称

注 意: 网 络 服 务 器 名 称 是 指 网 络 服 务 器 本 身 的 计 算 机 名 称。 如 果 在 互 联 网 络 具 有 多 台 网 络 服 务 器 环 境 中, 网 络 服 务 器 名 称 应 该 包 含 域 名, 这 样 就 可 以 访 问 不 同 网 络 中 的 数 据 库 服 务 器。 在 单 一 网 络 中 可 以 省 略 域 名, 如 果 单 一 网 络 中 各 个 数 据 库 服 务 器 安 装 在 不 同 的 机 器 上, 应 注 意 将 网 络 服 务 器 名 称 改 成 相 应 的 计 算 机 名 称。

③ 软 插 口 地 址、 数 据 库 类 型、 数 据 库 服 务 器 简 称 等 参 数 的 变 化 见 下 表1

数 据 库 服 务 器 名 称 简 称 数 据 库 类 型 软 插 口 地 址

MSSQL6.0 SQL Query Sql 1433

SYBASE11 SQL Query Sybase 5000

SYBASE11_ BS Backup Sybase 5001

SYBASE11_MS Monitor Sybase 5002

SYBASE11_HS Hist Sybase 5003

SYBASE10 SQL Query Sql10 5000

SYBASE10 BS Backup Sql10 5001

SYBASE10_MS Monitor Sql10 5002

表1.SQL.INI 文 件 中 参 数 变 化 表

三 . 连 通 测 试 及 分 析

连 通 测 试 使 用SYBPING, 连 通 成 功 会 出 现 提 示:

① 使 用 命 名 管 道:

connection to server联接通道 was sucessful

loaded netlibrary driver‘NLMSNMP Named pipes driver驱动程序名

②使用软插口:

connection to server联接通道 was sucessful

loaded netlibrary driver‘NLWNSCK.DLL driver驱动程序名

连通不成功时出现提示:

①使用命名管道:

connection to server联接通道 was failed

loaded netlibrary driver‘NLMSNMP Named pipes driver驱动程序名

②使用软插口

connection to server联接通道 was failed

loaded netlibrary driver‘NLWNSCK.DLL driver驱动程序名

使 用SYPING, 选 择 相 应 的 数 据 库 服 务 器, 提 示 中 可 能 出 现 的 参 数 见 表2:

数据库服务器名称 联接通道驱动程序

MSSQL6.0 SQL \pipe\sql\query NLMSNMP.DLL

Dbserver

1433 NLWNSCK.DLL

SYBASE11 SQL \pipe\sybase\ query NLMSNMP.DLL

Dbserver

5000 NLWNSCK.DLL

SYBASE11_ BS \pipe\sybase\ backup NLMSNMP.DLL

Dbserver

5001 NLWNSCK.DLL

SYBASE11_MS \pipe\sybase\ monitor NLMSNMP.DLL

Dbserver

5002 NLWNSCK.DLL

SYBASE11_HS \pipe\sybase\ hist NLMSNMP.DLL

Dbserver

5003 NLWNSCK.DLL

SYBASE10 SQL \pipe\sql10\query NLMSNMP.DLL

Dbserver

5000 NLWNSCK.DLL

SYBASE10 BS \pipe\sql10\ backup NLMSNMP.DLL

Dbserver

5001 NLWNSCK.DLL

SYBASE10_MS \pipe\sql10\ monitor NLMSNMP.DLL

Dbserver

5002 NLWNSCK.DLL

表2. 提 示 中 可 能 出 现 的 联 接 通 道 和 驱 动 程 序 一 览 表

注 意: 驱 动 程 序 名 应 该 是 包 含 有 路 径 的 全 名。 表 格2 中 省 略 了 路 径“c:\sybase\dll\”。

备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘