分享
 
 
 

在Linux下访问MS SQL Server数据库(转)

王朝mssql·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在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)。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有