欢迎光临
我们一直在努力

在Linux下访问MS SQL Server数据库(转)-数据库专栏,SQL Server

建站超值云服务器,限时71元/月

在linux下访问ms sql server数据库
—- 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.voicenet.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)。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 在Linux下访问MS SQL Server数据库(转)-数据库专栏,SQL Server
分享到: 更多 (0)