Windows和Linux系统下perl连接SQL Server数据库的方法

本文将提供一些perl连接Microsoft SQL Server数据库的实例。perl脚本运行在Windows和Linux平台。

Windows平台

如果在Windows平台下运行perl脚本,建议使用依赖DBI的两个模块包,提供标准的数据库接口模块。

DBD::ODBC
DBD::ADO

使用DBD::ODBC

如果选用DBD::ODBC,下面的实例代码将展示如何连接到SQL Server数据库:

代码如下:

use DBI;
 
# DBD::ODBC
 
my $dsn = 'DBI:ODBC:Driver={SQL Server}';
my $host = '10.0.0.1,1433';
my $database = 'my_database';
my $user = 'sa';
my $auth = ‘s3cr3t';
 
# Connect via DBD::ODBC by specifying the DSN dynamically.
my $dbh = DBI->connect("$dsn;Server=$host;Database=$database",
 $user,
 $auth,
 { RaiseError => 1, AutoCommit => 1}
 ) || die "Database connection not made: $DBI::errstr";
 
#Prepare a SQL statement my $sql = "SELECT id, name, phone_number FROM employees ";
my $sth = $dbh->prepare( $sql );
 
#Execute the statement
$sth->execute();
 
my( $id, $name, $phone_number );
 
# Bind the results to the local variables
$sth->bind_columns( undef, \$id, \$name, \$phone_number );
 
#Retrieve values from the result set
while( $sth->fetch() ) {
 print "$id, $name, $phone_number\n";
}
 
#Close the connection
$sth->finish();
$dbh->disconnect();

你还可以使用预先设置的一个系统DSN来连接。要建立一个系统DSN,可以这样访问控制面板->管理工具->数据源。

使用系统DSN连接,需要更改连接字符串。如下所示:

代码如下:

# Connect via DBD::ODBC using a System DSN
my $dbh = DBI->connect("dbi:ODBC:my_system_dsn",
 $user,
 $auth,
 {
 RaiseError => 1,
 AutoCommit => 1
 }
 ) || die "Database connection not made: $DBI::errstr";

使用DBD::ADO

如果选择DBD::ADO模块,下面的实例展示如何连接到SQL Server数据库。

代码如下:

use DBI;
 
my $host = '10.0.0.1,1433';
my $database = 'my_database';
my $user = 'sa';
my $auth = ‘s3cr3t';
 
# DBD::ADO
$dsn = "Provider=sqloledb;Trusted Connection=yes;";
$dsn .= "Server=$host;Database=$database";
my $dbh = DBI->connect("dbi:ADO:$dsn",
 $user,
 $auth,
 { RaiseError => 1, AutoCommit => 1}
 ) || die "Database connection not made: $DBI::errstr";
 
#Prepare a SQL statement
my $sql = "SELECT id, name, phone_number FROM employees "; my $sth = $dbh->prepare( $sql );
 
#Execute the statement
$sth->execute();
 
my( $id, $name, $phone_number );
 
# Bind the results to the local variables
$sth->bind_columns( undef, \$id, \$name, \$phone_number );
 
#Retrieve values from the result set
while( $sth->fetch() ) {
 print "$id, $name, $phone_number\n";
}
 
#Close the connection
$sth->finish();
$dbh->disconnect();

Linux平台

如果是在Linux平台下运行perl脚本,连接SQL Server数据库需要使用到DBD::Sybase包。

安装SQL Server支持库

Sybase DBD包依赖FreeTDS驱动程序。

FreeTDS下载地址:www.freetds.org

安装FreeTDS驱动的说明文档参见:http://www.freetds.org/userguide/config.htm

该驱动没有使用到ODBC.

配置数据源

修改freetds.conf文件包括SQL Server数据库信息,如下所示:

代码如下:

[SS_MY_DB]
host = 10.0.0.1 # or host name port = 1433
tds version = 7.0

安装Sybase DBD模块

该模块文档参见:http://search.cpan.org/~mewp/DBD-Sybase/Sybase.pm

此外,需要将sybase环境变量应设置为FreeTDS安装路径,export SYBASE=/usr/local/freetds

使用Sybase DBI和SQL Server DSN实例

代码如下:

# load the DBI module
use DBI;
use DBD::Sybase;
 
my $database="my_database";
my $user="sa";
my $auth="s3cr3t";
 
BEGIN
{
 $ENV{SYBASE} = "/usr/local";
}
 
# Connect to the SQL Server Database
my $dbh = DBI->connect("dbi:Sybase:server=ss_my_db;database=$database",
 $user,
 $auth
 {RaiseError => 1, AutoCommit => 1}
 ) || die "Database connection not made: $DBI::errstr";
 
#Prepare a SQL statement
my $sql = "SELECT id, name, phone_number FROM employees";
my $sth = $dbh->prepare( $sql );
 
#Execute the statement
$sth->execute();
 
my( $id, $name, $phone_number );
 
# Bind the results to the local variables
$sth->bind_columns( undef, \$id, \$name, \$phone_number );
 
#Retrieve values from the result set
while( $sth->fetch() ) {  print "$name, $title, $phone\n";
}
 
#Close the connection
$sth->finish();
undef $sth; # This fixes a segfault bug with certain versions of DBD::Sybase
$dbh->disconnect();

(0)

相关推荐

  • windows下Apache+MySql+PHP3+PHP4+PERL安装配置

    OS : Microsoft Windows 2000 Professional简体中文版 WEB SERVER: Apache 1.3.12 for WIN32 MYSQL : MySQL Shareware 3.22.34 for WIN32 PHP3 : PHP 3.0.15 for WIN32 PHP4 : PHP 4.0.0 for WIN32 ZEND : Zend Optimizer beta4 for PHP 4.0.0 for WIN32 [★★★ Apache快速安装 ★★★

  • Windows Server 2016 上配置 APACHE+SSL+PHP+perl的教程详解

    <strong><span style="color:#FF0000;">安装环境</span></strong> 谷歌云实例 Windows Server 2016 Apache Apache/2.4.25 (win64-VC14) PHP php-5.6.30 (VC11 x64 Thread Safe) PERL ActivePerl-5.24 (Win64) OpenSSL openssl-1.0.2j-win64 VC14 Mi

  • Win2000+Apache+MySql+PHP4+PERL安装使用小结

    Windows 2000+Apache+MySql+PHP3+PHP4+PERL安装使用小结 www.1000script.com 2002-9-3 1000script专业脚本 Windows 2000+Apache+MySql+PHP3+PHP4+PERL安装使用小结(一) 这里一定有许多和我一样喜欢尝试新鲜事物的朋友,尤其是当听说 某某软件有了新的版本时一定也会迫不及待的去下载一份回来用用再说. 这里我想和大家探讨一下以下流行软件的应用,意在抛砖引玉. OS : Microsoft Win

  • 让apache2以cgi方式运行perl cgi程序的实现方法

    1.linux系统一般自带perl可运行程序在:/usr/bin/perl 2.perl测试程序 复制代码 代码如下: #!/usr/bin/perl -wuse warnings;print "Hello, Perl works!  "; 命名为test.pl 在终端下,定位到该目录,输入perl test.pl,perl正常工作的话,会显示输出Hello, Perl works! 3.让apache2以cgi方式支持perla. apache2安装完成之后,配置文件位于/etc/a

  • Windows和Linux系统下perl连接SQL Server数据库的方法

    本文将提供一些perl连接Microsoft SQL Server数据库的实例.perl脚本运行在Windows和Linux平台. Windows平台 如果在Windows平台下运行perl脚本,建议使用依赖DBI的两个模块包,提供标准的数据库接口模块. DBD::ODBC DBD::ADO 使用DBD::ODBC 如果选用DBD::ODBC,下面的实例代码将展示如何连接到SQL Server数据库: 复制代码 代码如下: use DBI;   # DBD::ODBC   my $dsn = '

  • Linux系统通过Docker安装SQL Server数据库

    目录 一.前言 二.安装SQL Server 1.拉取SQL Server镜像 2.创建目录 3.运行容器 4.使用命令进入SQL Server 5.使用SSMS登录SQL Server数据库 三.总结 一.前言 现在.NET Core已经跨平台了,支持Windows.Linux.Mac系统,而我们也已经在Linux上面使用了Docker.使用.NET开发的人使用最多的就是SQL Server数据,以前是只能在Windows系统上使用,但是从SQL Server 2017开始支持运行在docke

  • Python基于Pymssql模块实现连接SQL Server数据库的方法详解

    本文实例讲述了Python基于Pymssql模块实现连接SQL Server数据库的方法.分享给大家供大家参考,具体如下: 数据库版本:SQL Server 2012. 按照Python版本来选择下载pymssql模块,这样才能连接上sql server. 我安装的python版本是3.5 ,64位的,所以下载的pymssql模块是:pymssql-2.1.3-cp35-cp35m-win_amd64.whl 我把文件下载后放到E盘,安装pymssql模块: C:\Users\Administr

  • C#实现异步连接Sql Server数据库的方法

    本文实例讲述了C#实现异步连接Sql Server数据库的方法.分享给大家供大家参考.具体分析如下: .net最新版提供了await方法,可以使我们可以很容易实现到数据库的异步连接 复制代码 代码如下: readonly string ConnectionString = "Data Source=database_server_name;Initial Catalog=Store;Integrated Security=True"; protected async void Exec

  • python连接sql server数据库的方法实战

    目录 一.安装第三方模块 二.连接数据库 三.遇到的问题 总结 一.安装第三方模块 首先要下载名为"pymssql"的模块,然后import该模块 安装方法 :1.第一种方法:按win+r----> 输入cmd—>输入以下命令即可 pip install pymssql 2.第二种方法:打开pycharm,点击File,再点击settings,点击settings之后再点击project下面的project Interpreter,在界面中点击+号,直接搜索pymssql模

  • java连接SQL Server数据库的方法

    本文实例为大家分享了java连接SQL Server数据库的具体代码,供大家参考,具体内容如下 操作系统:windows 10 64位 java开发环境:MyEclipse 数据库:SQL Server 2012 JDBC驱动包 下载sqljdbc4.jar 导入到项目中 JAVA代码 package com.cl.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedSt

  • Windows系统下Java连接SQL Server的方法简介

    使用JDBC连接SQL Server 设置SQL Server服务器 我使用的是SQL Server 2005标准版SP2,这些都默认即可,一般不用配置.如果需要配置端口请看下面. 1."开始"→"程序"→"Microsoft SQL Server 2005"→"配置工具"→"SQL Server 配置管理器"→"SQL Server 2005 网络配置"→"MSSQLSERV

  • Django 连接sql server数据库的方法

    *在此注明,本人使用的是python3.5和Django2.0.4 sql server是微软出的一款闭源的可运行于windows和linux平台上的 关系型数据库 .由于其闭源的特性,所以较少有公司使用,但是比较神奇的是,我所在的公司和我几个朋友所在的公司业务都是以爬虫为主,都是以sql server作为主要的数据库在使用. 一.打包 如果你是使用Django的老手应该知道Django默认不支持sql server:如果你刚开始接触Django,那么你应该知道Django默认支持四种数据库:p

  • Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法

    本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: unixODBC FreeTDS pyodbc cx_Oracle 欢迎转载,请注明作者.出处. 作者:张正 QQ:176036317 如有疑问,欢迎联系. 本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQ

  • 在linux系统下安装两个nginx的简单方法

    在linux下安装nginx的时候,一般在./configure的阶段会要求通过prefix设置安装路径.因此,在./configure的时候指定不同的prefix就可以安装多个nginx啦. 值得注意的是,安装完之后,两个nginx的监听端口要设置成不同的监听端口.否则,会有一个nginx无法启动. ./configure --prefix=/home/work/nginx1 .....//第一个nginx的安装配置 make && make install ./configure --

随机推荐