数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
在Linux下访问MS SQL Server数据库(转)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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




相关文章

相关软件