您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

Linux下访问MS SQL Server数据库

添加时间:2011-1-27  添加: admin 

在Linux下访问MS SQL Server数据库
 
  Linux作为一个免费的Unix类操作系统,以其开放性源代码、多任务、X-window等特点为众多的用户所采用,并有很多企业采用Linux来作为其内部网的全功能服务器(WWW,FTP,Email、DNS)。企业的内部网不仅要提供文本信息的访问,还要能提供对企业关系数据库中的信息的访问。SQLServer以其低成本、性能高以及与NT的有效集成等特性为许多企业所采用,但Microsoft不提供其Unix下的客户端,为这类应用带来了困难。本文则提出了这一问题的解决方案。
  
  安装Sybase客户端

  首先从Microsoft SQLServer和Sybase SQLServer的关系说起。两公司曾共同开发OS/2上的数据库SQLServerforOS/2,此后两公司又独立开发升级系统,Sybase的客户端可以访问MicrosoftSQLServer。

  和其他数据库公司相比,可以说Sybase公司对Linux是最有善意的,它虽不提供Linux下的SQLServer,但提供了免费的CT-LIB的客户端,这也可能是许多IT管理人员在为公司数据库选型时不再考虑Oracle或Informix的理由之一。当然现在情况有所改变。

  Sybase公司发布的OpenClientforLinux是a.out格式的,在互联网上有人将其转化为ELF和动态链接的ELF格式,可从下列地址上寻找下载:http://www.mbay.net/~mpeppler。最好同时下载两个版本,正常使用时采用动态链接的版本,但有的程序在编译时可能需要一个库(libblk.a),只在ELF里面包含。

  下载以后,键入如下命令展开(假设当前目录是/usr/tmp):

  tar zxvf linuxelfdynamic.tar.gz

  然后将其移至/usr/local目录:

  mvsybase/usr/local

  编译和使用Sybase客户端需要进行如下的设置:

  1.Interface文件举例如下:

  MSSQL

  querytcpethermysql1433

  其中:

  MSSQL是客户端使用的服务器名,以后引用MSSQL即可;

  mysql是服务器的地址或名字,如果是名字,则系统能够查到其IP地址;

  1433是SQLServer的端口号,MicrosoftSQLServer的缺省值是1433,Sybase是5000。

  2.SYBASE环境变量,内容是Sybase客户端所在的目录:

  ExportSYBASE=/usr/local/sybase

  3.如果编译Sybase客户端中的例子,则还要设置环境变量SYBPLATFORM:

  exportSYBPLATFORM=Linux

  并且修改其头文件中关于服务器名称及用户名和口令的描述。
 
使用SQSH界面访问SQLServer

  Sybase客户端提供了xisql工具,但更多的人使用的是SQSH,SQSH是SQshell的缩写,是改进了的isql,可从下列地址下载:http://www.voicenet.com/~gray/。当前的最新版本是1.6.0。假设下载后的文件放在/usr/tmp目录下:

  tar zxvf sqsq1.6.0.tar.gz

  cdsqsh1.6.0

  . /configure

  make;makeinstall

  然后,将生成的可执行文件sqsh安装到/usr/local/bin/目录下。

  Sqsh的使用如下:

  #sqsh--Uusername--Ppassword--Sservername

  其中username和password是用户名和口令,servername是在interface文件中定义的服务器名(如例子中的MSSQL)。

  Sqsh是交互式的命令行界面,命令用输入go来执行,命令如果较长可直接分成几行书写,以回车换行即可。

  如下是一个例子:

  1>usepubs

  2>go

  1>select*fromauthors

  2>go采用CT-LIB编写应用程序

  由于Sybase的Linux客户端不提供DB-Library,所以应采用CT-Library来编写应用程序,采用CT-Library编写应用程序可参考例子,详细的编程说明可以参考Sybase的说明。利用Sybperl编写应用程序

  Sybperl是Sybase的Perl扩展,可利用Perl语言来访问SQLServer,或者编写CGI程序。

  Sybperl可从下列地址取得http://www.mbay.net/~mpeppler。当前的最新版本是2.9.5。

  取得Sybperl的源代码展开以后,需要修改一下CONFIG文件,以下是几个参数:

  下一个要修改的文件是PWD,这是用来进行测试的,将其中的服务器名、用户名、用户口令设置成自己的配置即可。然后进行编译:

  perlMakefile.PL

  make;maketest;makeinstall

  安装成功以后,即可使用Sybperl进行编程。下面是一个简单的例子。

#!/usr/bin/perl
    useSybase::CTlib;
    $dbh=newSybase::CTlib'sa',','MSSQL';
    $dbh->ct_execute("selectau_id,au_lname,
  au_fnamefrompubs.dbo.authors");
    while($dbh->ct_results($restype)==CS_SUCCEED){
    nextunless$dbh->ct_fetchable($restype);
  while(($au_id,$au_lname,$au_fname)=$dbh->ct_fetch){
    print"$au_id-$au_lnameau_fname";
    }
    }

  可以看出,短短几行语句,就可以完成对数据库的操作。

  以上从几个方面对在Linux下访问MSSQLServer数据库进行了说明,介绍了基本的API编程、SQSH命令行访问、Perl访问。其实,在Linux下还可采用其他方式进行访问,如采用第四级的JDBC进行访问,这时除了Java和JDBC外,并不需要其他软件(具体信息可访问http://www.connectsw.com)。

  Linux作为一个免费的Unix类操作系统,以其开放性源代码、多任务、X-window等特点为众多的用户所采用,并有很多企业采用Linux来作为其内部网的全功能服务器(WWW,FTP,Email、DNS)。企业的内部网不仅要提供文本信息的访问,还要能提供对企业关系数据库中的信息的访问。SQLServer以其低成本、性能高以及与NT的有效集成等特性为许多企业所采用,但Microsoft不提供其Unix下的客户端,为这类应用带来了困难。本文则提出了这一问题的解决方案。

关键词:数据库   应用程序
 

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站