奇趣技术网 收藏本站
设为主页
商务合作
首页 新闻中心 行业动态 软件新闻 安全资讯 病毒预警 漏洞发布 操作系统 Dos Win9x Win2000 WinXP Win2003 WinVista Linux Unix
数据库 DB2 Access MSSQL MySQL Oracle Sybase 编程技术 ASP PHP JSP CGI/Perl XML .Net C/C++/C# VB VC Delphi Java 汇编
安全技术 安全教学 工具介绍 漏洞利用 病毒防范 入侵检测 防火墙 安全防范 汉化破解 攻击实例 加密解密 技术论坛
中华网络安全联盟 >> 程序开发 >> Perl >> 在Linux下访问MS SQL Server数据库
程序开发
Asp
PHP
JSP
CGI/Perl
XML
.Net
C/C++/C#
Visual Basic
Visual C++
Delphi
Java
汇编语言
  • LB5000XP论坛配合SERV

  • 获取随机的由大小写字

  • Perl操作Mysql数据库

  • Perl在NT下的快速简便

  • 用Perl制作页面计数器

  • 用Perl语句来代替常用

  • 用 perl 实现文件上传

  • perl 域名查询程序

  • 在Linux下访问MS SQL Server数据库
    字体:

    中华网络安全联盟    作者:佚名    来源:网络转载    时间:2006-3-21


      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_lname au_fname\n";
        }
        }
       可以看出,短短几行语句,就可以完成对数据库的操作。

    字体:
     
    设为主页 收藏本站 联系我们 友情连接 商务合作 网友留言
    Copyright©2006-2008 中华网络安全联盟 All rights reserved.