perl 之于ODBC 又或者ADO?

本文分享了使用 Perl 的 Win32::ODBC 模块成功连接并操作 Access 数据库的经验,包括基本的 SQL 查询、插入、更新及删除操作。同时也提到了 ADO 连接方式存在的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

对于Perl连接数据库而言,事情有了进展。有一个好消息,一个坏消息。好消息是ODBC连接测试通过,(才发现代码网上大把);坏消息是ADO依旧用不了....无论官方的Demo还是江湖上的偏方。这样的话,移植性还是有问题但是顾不得了。其实对于ADO而言Perl还有DBI包,但是昨儿个硬是用不了。。。

 

#ODBC的连接方式在于移植性不好每次新建数据库得配制本地数据源
# Display a table in a database using PERL ODBC module

use Win32::ODBC;

$dsn = "testDB";
$DBase = "F://pl//testDB.mdb";
$table = "DATASTORE";

# ====== Check if the database can be opened correctly
if (!($db = new Win32::ODBC($dsn))) {
 print "Error in opening DSN /"$dsn/"!/n";
 print "Error: " . Win32::ODBC::Error(). "/n";
 exit;
}

# ====== Select all fields from the given table
$sql = "select * from $table;";
#$sql = "select * from $table order by Category;";

# ====== Check if the SQL query is correct
if ($db->Sql($sql)) {
 print "Error in SQL query: /"$sql/"!/n";
 print "Error: " . $db->Error() . "/n";
 $db->Close();
 exit;
}

# ====== Print field data
print "Content-type: text/html/n/n";
print "<html><body><pre>/n";
$count = 1;
@FieldNames = $db->FieldNames();
while ($db->FetchRow()) {
 print "Record $count/n";
# ($HASHCODE, $URL) = $db->Data("HASHCODE", "URL");
# undef %Data;
 %Data = $db->DataHash();
 foreach $x (@FieldNames) {
  print "$x: $Data{$x}/n";
 }
 print "/n";
 $count++;
}

$sqlinsert = "INSERT INTO DATASTORE VALUES (2, '458473957345', 'www.google.com', '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();
print "</pre></body></html>/n";

 

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值