在Linux下访问MS SQL Server数据库

XX小八婆

XX小八婆

2016-01-29 16:17

在Linux下访问MS SQL Server数据库,在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公司发布的OpenClientforLinux是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客户端所在的目录:

  ExportSYBASE=/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_
展开更多 50%)
分享

猜你喜欢

在Linux下访问MS SQL Server数据库

SQLServer
在Linux下访问MS SQL Server数据库

VFP中用SPT访问SQL Server数据库

编程语言 网络编程
VFP中用SPT访问SQL Server数据库

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

通过HTTP访问SQL Server 2000数据库

SQLServer
通过HTTP访问SQL Server 2000数据库

用DELPHI编程访问SQL SERVER数据库

Delphi
用DELPHI编程访问SQL SERVER数据库

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

MS Access 数据库向 MS SQL Server 7.0 的迁移 (简述)

编程语言 网络编程
MS Access 数据库向 MS SQL Server 7.0 的迁移 (简述)

VB访问SQL Server数据库技术全揭密

SQLServer
VB访问SQL Server数据库技术全揭密

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

ADSL相关参数的优化

ADSL相关参数的优化

局域网故障排除网卡是关键

局域网故障排除网卡是关键
下拉加载更多内容 ↓