“vivi1202”通过精心收集,向本站投稿了3篇Perl下应当如何连接Access数据库数据库教程,以下是小编收集整理后的Perl下应当如何连接Access数据库数据库教程,仅供参考,希望对大家有所帮助。

Perl下应当如何连接Access数据库数据库教程

篇1:Perl下应当如何连接Access数据库数据库教程

首先需要安装Win32-ODBC模块,具体的步骤如下:

1:从TOOLS栏目中下载Win32-ODBC.zip,下载完后用winzip解开到一个temp目录,共有三个文件:

Readme

Win32-ODBC.ppd

Win32-ODBC.tar.gz

2:在DOS窗口下,temp目录中运行下面的DOS命令:ppm install Win32-ODBC.ppd,

然后准备测试用数据库(Access)

1:启动MS ACCESS,建立一个新空数据库,命名为odbctest.mdb,保存在某一目录中(记住路径)。

2:然后新建一个表,建立三个字段:

字段名称 数据类型 长度

Name 字符, 长度50

Email 字符, 长度50

Age 数字、长整型

将这个表保存为address(注意这个例子中,没有用自动增加的ID。输入若干记录:

以下为引用的内容:

Nighthawk nighthawk@163.net 20 1234567

John jt@163.net 24 0284393293

kit kit@21cn.com 18 3948932

保存后,关闭数据库文件。

3:打开控制面板中的 ODBC数据源(32位),在用户DSN栏中,找到用户数据源列表,选中名称为“MS Access 97 Database”的一行,然后按“配置”键。

在Database框中按“Select..”,选择步骤1.2中建立的数据库文件odbctest.mdb,按OK即可。ODBC设置中的其它项目全部采用缺省设置,然后就是OK,确定,关闭对话窗口。

最后进行测试:

以下为引用的内容:

#!/usr/bin/perl

use Win32::ODBC;

$DSN = “MS Access 97 Database”;

$DBase = “access.mdb”;

#连接数据库

if (!($db = new Win32::ODBC($DSN))){

print “连接数据库失败.n”;

exit;

}

else{

print “连接数据库成功 (连接号:”, $db->Connection(), “)nn”;

}

#数据库中的表

print “数据库中的表:”;

@tables = $db->TableList;

print @tables;

print “n”;

#选择数据表

if (! $db->Sql(“SELECT * FROM [address] WHERE age>=20”) ){

@FieldNames = $db->FieldNames();

$Cols = $#FieldNames + 1;

#表中字段数

print “表address字段数:$Colsn”;

#字段列表

for ($i = 0; $i < $Cols; $i++){

print “$FieldNames[$i]t”;

}

print “n”;

#列出年龄大于20的记录

while($db->FetchRow()) {

@values = $db->Data();

print @values;

print “n”;

}

}

##### sql #########

#添加记录

$sqlinsert = “INSERT INTO address

VALUES ('Euler', 'euler@21cn.com', 28, '021-345689')”;

#更新记录

$sqlupdate = “UPDATE address SET age = age+10 ”;

#删除记录

$sqldelete = “DELETE FROM address WHERE name='jimtyan'”;

$rc = $db->Sql($sqlinsert);

die qq(SQL 失败 “$sqlinsert”: ), $db->Error(), qq(n) if $rc;

$rc = $db->Sql($sqlupdate);

die qq(SQL 失败 “$sqlupdate”: ), $db->Error(), qq(n) if $rc;

$rc = $db->Sql($sqldelete);

die qq(SQL 失败 “$sqldelete”: ), $db->Error(), qq(n) if $rc;

#关闭链接

$db->Close();

篇2:perl连接access数据库自动测试脚本语言

前题是必须安装好activeperl (505以上),以及MS Access 97 一. 安装Win32-ODBC模块 步骤1: 从TOOLS栏目中下载Win32-ODBC.zip,下载完后用winzip解开到一个temp目录,共有三个文件: Readme Win32-ODBC.ppd Win32-ODBC.tar.gz 步骤2: 在DOS窗口下,temp目录

前题是必须安装好activeperl (505以上),以及MS Aclearcase/“ target=”_blank“ >ccess 97

一. 安装Win32-ODBC模块

步骤1:

从TOOLS栏目中下载Win32-ODBC.zip,下载完后用winzip解开到一个temp目录,共有三个文件:

Readme

Win32-ODBC.ppd

Win32-ODBC.tar.gz

步骤2:

在DOS窗口下,temp目录中运行下面的DOS命令:

ppm install Win32-ODBC.ppd

二. 准备测试用数据库(ACCESS)

步骤1:

启动MS ACCESS,建立一个新空数据库,命名为odbctest.mdb,保存在某一目录中(记住路径),

步骤2:

然后新建一个表,建立三个字段:

Perl下应当如何连接Access数据库数据库教程字段名称 数据类型

Name 字符,长度50

Email 字符,长度50

Age 数字,长整型

将这个表保存为address(注意这个例子中,没有用自动增加的ID).输入若干记录:

Nighthawk nighthawk@163.net 20 1234567

John jt@163.net 24 0284393293

kit kit@21cn.com 18 3948932

保存后,关闭数据库文件。

步骤3:

打开控制面板中的 ODBC数据源(32位),在用户DSN栏中,找到用户数据源列表,选中名称为“MS Access 97 Database”的一行,然后按“配置”键。

在Database框中按”Select..“,选择步骤1.2中建立的数据库文件odbctest.mdb,按OK即可。ODBC设置中的其它项目全部采用缺省设置,然后就是OK,确定,关闭对话窗口。

三. 这时候,数据库已经可以用了,我们来测试一下:

#!/usr/bin/perl

use Win32::ODBC;

$DSN = ”MS Access 97 Database“;

$DBase = ”access.mdb“;

#连接数据库

if (!($db = new Win32::ODBC($DSN))){

print ”连接数据库失败.n“;

exit();

}

else{

print ”连接数据库成功 (连接号:“, $db->Connection(), ”)nn“;

}

#数据库中的表

print ”数据库中的表:“;

@tables = $db->TableList;

print @tables;

print ”n“;

#选择数据表

if (! $db->Sql(”SELECT * FROM [address] WHERE age>=20“) ){

@FieldNames = $db->FieldNames();

$Cols = $#FieldNames + 1;

#表中字段数

print ”表address字段数:$Colsn“;

#字段列表

for ($i = 0; $i < $Cols; $i++){

print ”$FieldNames[$i]t“;

}

print ”n“;

#列出年龄大于20的记录

while($db->FetchRow()) {

@values = $db->Data();

print @values;

print ”n“;

}

}

##### sql #########

#添加记录

$sqlinsert = ”INSERT INTO address VALUES ('Euler', 'euler@21cn.com', 28, '021-345689')“;

#更新记录

$sqlupdate = ”UPDATE address SET age = age+10 “;

#删除记录

$sqldelete = ”DELETE FROM address WHERE name='jimtyan'“;

$rc = $db->Sql($sqlinsert);

die qq(SQL 失败 ”$sqlinsert“: ), $db->Error(), qq(n) if $rc;

$rc = $db->Sql($sqlupdate);

die qq(SQL 失败 ”$sqlupdate“: ), $db->Error(), qq(n) if $rc;

$rc = $db->Sql($sqldelete);

die qq(SQL 失败 ”$sqldelete“: ), $db->Error(), qq(n) if $rc;

#关闭链接

$db->Close();

进一步学习请访问Win32-ODBC模块作者主页:www.roth.net/perl/odbc/ Nighthawk 版权所有, 署名

原文转自:www.ltesting.net

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

这篇文章主要介绍了Windows和Linux系统下perl连接SQL Server数据库的方法,本文详细的讲解了Windows和Linux系统中perl如何连接Microsoft 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驱动的说明文档参见: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模块

该模块文档参见: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%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。