视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
perl连接access数据库
2020-11-09 08:06:47 责编:小采
文档


前题是必须安装好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 Access 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:

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

字段名称 数据类型

Name 字符,长度50

Email 字符,长度50

Age 数字,长整型

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

Nighthawk nighthawk@163.net 20 1234567

John jt@163.net 24 0284393293

kit kit@21cn.com 18 39432

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

步骤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-3456')";

#更新记录

$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模块作者主页:http://www.roth.net/perl/odbc/

Nighthawk 版权所有,转载请保留署名

下载本文
显示全文
专题