在Linux下訪問MS SQL Server數(shù)據(jù)庫
Linux 作 為 一 個 免 費 的Unix 類 操 作 系 統(tǒng), 以 其 開 放 性 源 代 碼、 多 任 務(wù)、X window 等 特 點 為 眾 多 的 用 戶 所 采 用, 并 有 很 多 企 業(yè) 采 用Linux 來 作 為 其 內(nèi) 部 網(wǎng) 的 全 功 能 服 務(wù) 器(WWW,F(xiàn)TP,Email、DNS)。 企 業(yè) 的 內(nèi) 部 網(wǎng) 不 僅 要 提 供 文 本 信 息 的 訪 問, 還 要 能 提 供 對 企 業(yè) 關(guān) 系 數(shù) 據(jù) 庫 中 的 信 息 的 訪 問。SQL Server 以 其 低 成 本、 性 能 高 以 及 與NT 的 有 效 集 成 等 特 性 為 許 多 企 業(yè) 所 采 用, 但Microsoft 不 提 供 其Unix 下 的 客 戶 端, 為 這 類 應(yīng) 用 帶 來 了 困 難。 本 文 則 提 出 了 這 一 問 題 的 解 決 方 案。
安 裝Sybase 客 戶 端
---- 首 先 從Microsoft SQL Server 和Sybase SQL Server 的 關(guān) 系 說 起。 兩 公 司 曾 共 同 開 發(fā)OS/2 上 的 數(shù) 據(jù) 庫 SQL Server for OS/2, 此 后 兩 公 司 又 獨 立 開 發(fā) 升 級 系 統(tǒng),Sybase 的 客 戶 端 可 以 訪 問Microsoft SQL Server。
---- 和 其 他 數(shù) 據(jù) 庫 公 司 相 比, 可 以 說Sybase 公 司 對Linux 是 最 有 善 意 的, 它 雖 不 提 供Linux 下 的SQL Server, 但 提 供 了 免 費 的CT -LIB 的 客 戶 端, 這 也 可 能 是 許 多IT 管 理 人 員 在 為 公 司 數(shù) 據(jù) 庫 選 型 時 不 再 考 慮Oracle 或Informix 的 理 由 之 一。 當(dāng) 然 現(xiàn) 在 情 況 有 所 改 變。
----Sybase 公 司 發(fā) 布 的OpenClient for Linux 是a.out 格 式 的, 在 互 聯(lián) 網(wǎng) 上 有 人 將 其 轉(zhuǎn) 化 為ELF 和 動 態(tài) 鏈 接 的ELF 格 式, 可 從 下 列 地 址 上 尋 找 下 載:http://www.mbay.net/ ~mpeppler。 最 好 同 時 下 載 兩 個 版 本, 正 常 使 用 時 采 用 動 態(tài) 鏈 接 的 版 本, 但 有 的 程 序 在 編 譯 時 可 能 需 要 一 個 庫(libblk.a), 只 在ELF 里 面 包 含。
---- 下 載 以 后, 鍵 入 如 下 命 令 展 開( 假 設(shè) 當(dāng) 前 目 錄 是/usr/tmp):
----tar zxvf linux elf dynamic tar.gz
---- 然 后 將 其 移 至/usr/local 目 錄:
----mv sybase /usr/local
---- 編 譯 和 使 用Sybase 客 戶 端 需 要 進(jìn) 行 如 下 的 設(shè) 置:
----1 . Interface 文 件 舉 例 如 下:
----MSSQL
----query tcp ether mysql 1433
---- 其 中:
MSSQL 是 客 戶 端 使 用 的 服 務(wù) 器 名, 以 后 引 用MSSQL 即 可;
mysql 是 服 務(wù) 器 的 地 址 或 名 字, 如 果 是 名 字, 則 系 統(tǒng) 能 夠 查 到 其IP 地 址;
1433 是SQL Server 的 端 口 號,Microsoft SQL Server 的 缺 省 值 是1433,Sybase 是5000。
----2 . SYBASE 環(huán) 境 變 量, 內(nèi) 容 是Sybase 客 戶 端 所 在 的 目 錄:
----Export SYBASE=/usr/local/sybase
----3 . 如 果 編 譯Sybase 客 戶 端 中 的 例 子, 則 還 要 設(shè) 置 環(huán) 境 變 量SYBPLATFORM:
----export SYBPLATFORM=Linux
---- 并 且 修 改 其 頭 文 件 中 關(guān) 于 服 務(wù) 器 名 稱 及 用 戶 名 和 口 令 的 描 述。
使 用SQSH 界 面 訪 問SQL Server
----Sybase 客 戶 端 提 供 了xisql 工 具, 但 更 多 的 人 使 用 的 是SQSH,SQSH 是SQshell 的 縮 寫, 是 改 進(jìn) 了 的isql, 可 從 下 列 地 址 下 載:http://www.voicenet.com/ ~gray/。 當(dāng) 前 的 最 新 版 本 是1.6.0。 假 設(shè) 下 載 后 的 文 件 放 在/usr/tmp 目 錄 下:
----tar zxvf sqsq 1.6.0 tar.gz
----cd sqsh 1.6.0
----./configure
----make;make install
---- 然 后, 將 生 成 的 可 執(zhí) 行 文 件sqsh 安 裝 到/usr/local/bin/ 目 錄 下。
----Sqsh 的 使 用 如 下:
---- # sqsh - -Uusername - -Ppassword - -Sservername
---- 其 中username 和password 是 用 戶 名 和 口 令,servername 是 在interface 文 件 中 定 義 的 服 務(wù) 器 名( 如 例 子 中 的MSSQL)。
----Sqsh 是 交 互 式 的 命 令 行 界 面, 命 令 用 輸 入go 來 執(zhí) 行, 命 令 如 果 較 長 可 直 接 分 成 幾 行 書 寫, 以 回 車 換 行 即 可。
---- 如 下 是 一 個 例 子:
----1> use pubs
----2> go
----1> select * from authors
----2> go 采 用CT -LIB 編 寫 應(yīng) 用 程 序
---- 由 于Sybase 的Linux 客 戶 端 不 提 供DB -Library, 所 以 應(yīng) 采 用CT -Library 來 編 寫 應(yīng) 用 程 序, 采 用CT -Library 編 寫 應(yīng) 用 程 序 可 參 考 例 子, 詳 細(xì) 的 編 程 說 明 可 以 參 考Sybase 的 說 明。 利 用Sybperl 編 寫 應(yīng) 用 程 序
----Sybperl 是Sybase 的Perl 擴 展, 可 利 用Perl 語 言 來 訪 問SQL Server, 或 者 編 寫CGI 程 序。
----Sybperl 可 從 下 列 地 址 取 得http://www.mbay.net/ ~mpeppler。 當(dāng) 前 的 最 新 版 本 是2.9.5。
---- 取 得Sybperl 的 源 代 碼 展 開 以 后, 需 要 修 改 一 下CONFIG 文 件, 以 下 是 幾 個 參 數(shù):
---- 下 一 個 要 修 改 的 文 件 是PWD, 這 是 用 來 進(jìn) 行 測 試 的, 將 其 中 的 服 務(wù) 器 名、 用 戶 名、 用 戶 口 令 設(shè) 置 成 自 己 的 配 置 即 可。 然 后 進(jìn) 行 編 譯:
----perl Makefile.PL
----make; make test; make install
---- 安 裝 成 功 以 后, 即 可 使 用Sybperl 進(jìn) 行 編 程。 下 面 是 一 個 簡 單 的 例 子。
#!/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";
}
}
----可 以 看 出, 短 短 幾 行 語 句, 就 可 以 完 成 對 數(shù) 據(jù) 庫 的 操 作。
----以 上 從 幾 個 方 面 對 在Linux 下 訪 問MS SQL Server 數(shù) 據(jù) 庫 進(jìn) 行 了 說 明, 介 紹 了 基 本 的API 編 程、SQSH 命 令 行 訪 問、Perl 訪 問。 其 實, 在Linux 下 還 可 采 用 其 他 方 式 進(jìn) 行 訪 問, 如 采 用 第 四 級 的JDBC 進(jìn) 行 訪 問, 這 時 除 了Java 和JDBC 外, 并 不 需 要 其 他 軟 件.
關(guān)鍵字: SQL Server、數(shù)據(jù)庫 、服務(wù)器
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動項
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機IP講解
- CentOS7使用hostapd實現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯
- 解決Centos7雙系統(tǒng)后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解