宁 波 保 税 区 官 委 会 计 算 中 心 董 保 华
---- linux 作 为 一 个 免 费 的unix 类 操 作 系 统, 以 其 开 放 性 源 代 码、 多 任 务、x window 等 特 点 为 众 多 的 用 户 所 采 用, 并 有 很 多 企 业 采 用linux 来 作 为 其 内 部 网 的 全 功 能 服 务 器(www,ftp,email、dns)。 企 业 的 内 部 网 不 仅 要 提 供 文 本 信 息 的 访 问, 还 要 能 提 供 对 企 业 关 系 数 据 库 中 的 信 息 的 访 问。sql server 以 其 低 成 本、 性 能 高 以 及 与nt 的 有 效 集 成 等 特 性 为 许 多 企 业 所 采 用, 但microsoft 不 提 供 其unix 下 的 客 户 端, 为 这 类 应 用 带 来 了 困 难。 本 文 则 提 出 了 这 一 问 题 的 解 决 方 案。
安 装sybase 客 户 端
---- 首 先 从microsoft sql server 和sybase sql server 的 关 系 说 起。 两 公 司 曾 共 同 开 发os/2 上 的 数 据 库 sql server for os/2, 此 后 两 公 司 又 独 立 开 发 升 级 系 统,sybase 的 客 户 端 可 以 访 问microsoft sql server。
---- 和 其 他 数 据 库 公 司 相 比, 可 以 说sybase 公 司 对linux 是 最 有 善 意 的, 它 虽 不 提 供linux 下 的sql server, 但 提 供 了 免 费 的ct -lib 的 客 户 端, 这 也 可 能 是 许 多it 管 理 人 员 在 为 公 司 数 据 库 选 型 时 不 再 考 虑oracle 或informix 的 理 由 之 一。 当 然 现 在 情 况 有 所 改 变。
----sybase 公 司 发 布 的openclient for linux 是a.out 格 式 的, 在 互 联 网 上 有 人 将 其 转 化 为elf 和 动 态 链 接 的elf 格 式, 可 从 下 列 地 址 上 寻 找 下 载:http://www.mbay.net/ ~mpeppler。 最 好 同 时 下 载 两 个 版 本, 正 常 使 用 时 采 用 动 态 链 接 的 版 本, 但 有 的 程 序 在 编 译 时 可 能 需 要 一 个 库(libblk.a), 只 在elf 里 面 包 含。
---- 下 载 以 后, 键 入 如 下 命 令 展 开( 假 设 当 前 目 录 是/usr/tmp):
----tar zxvf linux elf dynamic tar.gz
---- 然 后 将 其 移 至/usr/local 目 录:
----mv sybase /usr/local
---- 编 译 和 使 用sybase 客 户 端 需 要 进 行 如 下 的 设 置:
----1 . interface 文 件 举 例 如 下:
----mssql
----query tcp ether mysql 1433
---- 其 中:
mssql 是 客 户 端 使 用 的 服 务 器 名, 以 后 引 用mssql 即 可;
mysql 是 服 务 器 的 地 址 或 名 字, 如 果 是 名 字, 则 系 统 能 够 查 到 其ip 地 址;
1433 是sql server 的 端 口 号,microsoft sql server 的 缺 省 值 是1433,sybase 是5000。
----2 . sybase 环 境 变 量, 内 容 是sybase 客 户 端 所 在 的 目 录:
----export sybase=/usr/local/sybase
----3 . 如 果 编 译sybase 客 户 端 中 的 例 子, 则 还 要 设 置 环 境 变 量sybplatform:
----export sybplatform=linux
---- 并 且 修 改 其 头 文 件 中 关 于 服 务 器 名 称 及 用 户 名 和 口 令 的 描 述。
使 用sqsh 界 面 访 问sql server
----sybase 客 户 端 提 供 了xisql 工 具, 但 更 多 的 人 使 用 的 是sqsh,sqsh 是sqshell 的 缩 写, 是 改 进 了 的isql, 可 从 下 列 地 址 下 载:http://www.voic.net.com/ ~gray/。 当 前 的 最 新 版 本 是1.6.0。 假 设 下 载 后 的 文 件 放 在/usr/tmp 目 录 下:
----tar zxvf sqsq 1.6.0 tar.gz
----cd sqsh 1.6.0
----./configure
----make;make install
---- 然 后, 将 生 成 的 可 执 行 文 件sqsh 安 装 到/usr/local/bin/ 目 录 下。
----sqsh 的 使 用 如 下:
---- # sqsh - -uusername - -ppassword - -sservername
---- 其 中username 和password 是 用 户 名 和 口 令,servername 是 在interface 文 件 中 定 义 的 服 务 器 名( 如 例 子 中 的mssql)。
----sqsh 是 交 互 式 的 命 令 行 界 面, 命 令 用 输 入go 来 执 行, 命 令 如 果 较 长 可 直 接 分 成 几 行 书 写, 以 回 车 换 行 即 可。
---- 如 下 是 一 个 例 子:
----1> use pubs
----2> go
----1> select * from authors
----2> go 采 用ct -lib 编 写 应 用 程 序
---- 由 于sybase 的linux 客 户 端 不 提 供db -library, 所 以 应 采 用ct -library 来 编 写 应 用 程 序, 采 用ct -library 编 写 应 用 程 序 可 参 考 例 子, 详 细 的 编 程 说 明 可 以 参 考sybase 的 说 明。 利 用sybperl 编 写 应 用 程 序
----sybperl 是sybase 的perl 扩 展, 可 利 用perl 语 言 来 访 问sql server, 或 者 编 写cgi 程 序。
----sybperl 可 从 下 列 地 址 取 得http://www.mbay.net/ ~mpeppler。 当 前 的 最 新 版 本 是2.9.5。
---- 取 得sybperl 的 源 代 码 展 开 以 后, 需 要 修 改 一 下config 文 件, 以 下 是 几 个 参 数:
---- 下 一 个 要 修 改 的 文 件 是pwd, 这 是 用 来 进 行 测 试 的, 将 其 中 的 服 务 器 名、 用 户 名、 用 户 口 令 设 置 成 自 己 的 配 置 即 可。 然 后 进 行 编 译:
----perl makefile.pl
----make; make test; make install
---- 安 装 成 功 以 后, 即 可 使 用sybperl 进 行 编 程。 下 面 是 一 个 简 单 的 例 子。
#!/usr/bin/perl
use sybase::ctlib;
$dbh=new sybase::ctlib 'sa','','mssql';
$dbh ->ct_execute("select au_id, au_lname,
au_fname from pubs.dbo.authors");
while( $dbh ->ct_results( $restype) == cs_succeed) {
next unless $dbh ->ct_fetchable( $restype);
while(( $au_id, $au_lname, $au_fname) = $dbh ->ct_fetch){
print " $au_id - $au_lname au_fname\n";
}
}
----可 以 看 出, 短 短 几 行 语 句, 就 可 以 完 成 对 数 据 库 的 操 作。
----以 上 从 几 个 方 面 对 在linux 下 访 问ms sql server 数 据 库 进 行 了 说 明, 介 绍 了 基 本 的api 编 程、sqsh 命 令 行 访 问、perl 访 问。 其 实, 在linux 下 还 可 采 用 其 他 方 式 进 行 访 问, 如 采 用 第 四 级 的jdbc 进 行 访 问, 这 时 除 了java 和jdbc 外, 并 不 需 要 其 他 软 件( 具 体 信 息 可 访 问http://www.connectsw.com)。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器