Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 编程 » SQL Anywhere 数据访问 API » SQL Anywhere Perl DBD::SQLAnywhere DBI 模块 » 编写使用 DBD::SQLAnywhere 的 Perl 脚本

 

打开和关闭连接

通常,打开一个到数据库的连接,然后通过该连接运行一系列 SQL 语句来执行所有需要的操作。要打开连接,请使用 connect 方法。返回值是一个到数据库连接的句柄,使用该句柄可以在连接上执行后继操作。

connect 方法的参数如下所示:

  1. "DBI:SQLAnywhere:"和其它连接参数以分号分隔。

  2. 用户名。除非该字符串为空,否则 ";UID=value" 将附加到连接字符串。

  3. 口令值。除非该字符串为空,否则 ";PWD=value" 将附加到连接字符串。

  4. 指向散列缺省值的指针。诸如 AutoCommit、RaiseError 和 PrintError 的设置可用该方法设置。

以下代码示例打开然后关闭到 SQL Anywhere 示例数据库的连接。必须先启动数据库服务器和示例数据库然后才能运行此脚本。

#!/usr/local/bin/perl -w
#
use DBI;
use strict;
my $database = "demo";
my $data_src = "DBI:SQLAnywhere:ENG=$database;DBN=$database";
my $uid      = "DBA";
my $pwd      = "sql";
my %defaults = (
     AutoCommit => 1, # Autocommit enabled.
     PrintError => 0  # Errors not automatically printed.
   );
my $dbh = DBI->connect($data_src, $uid, $pwd, \%defaults)
  or die "Cannot connect to $data_src: $DBI::errstr\n";
$dbh->disconnect;
exit(0);
__END__

或者,您可以选择将用户名或口令值附加到数据源字符串,而不是将它们作为独立参数提供。如果要这样做,请为相应参数提供空白字符串。例如,使用下面的语句替换打开连接的语句可修改上面的脚本:

$data_src .= ";UID=$uid";
$data_src .= ";PWD=$pwd";
my $dbh = DBI->connect($data_src, '', '', \%defaults)
  or die "Cannot connect to $data_src: $DBI::errstr\n";