KingbaseES客户端编程接口指南-Perl_DBI.pdf
KingbaseES 客户端编程接口指南-Perl-DBI 金仓数据库管理系统 KingbaseES 文档版本:V9(V009R001C001B0024) 发布日期:2023 年 10 月 12 日 北京人大金仓信息技术股份有限公司 目 目 录 录 第 1 章 前言 1 1.1 适用读者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 相关文档 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 术语 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.4 手册约定 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 2 章 概述 3 2.1 Perl DBI 简述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 KingbaseES 的兼容情况 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 第 3 章 DBI 类 5 3.1 DBI 类方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 句柄的通用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 第 4 章 DBI 数据库句柄对象 9 4.1 数据库句柄方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.2 数据库句柄属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 第 5 章 DBI 语句句柄对象 15 5.1 语句句柄方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.2 语句句柄属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 第 6 章 KingbaseES Perl DBI 访问 KingbaseES 数据库示例 22 版权声明 23 服务周期承诺 24 I 第 1 章 前言 1 第 章 前言 本文档描述了 KingbaseES Perl DBI 的使用,以及连接数据库示例。 前言部分包含以下主题: • 适用读者 • 相关文档 • 术语 • 手册约定 1.1 适用读者 KingbaseES Perl DBI 指南面向所有使用 KingbaseES 数据库的用户,主要是使用 Perl DBI 的应用程序开发人 员。 1.2 相关文档 有关 Perl DBI 的更多信息,请参阅以下资源: • A Short Guide to DBI 1.3 术语 1.4 手册约定 本文档中可能出现“注意、提示、警告、另请参阅”等标志,它们所代表的含义如下: 1 第 1 章 前言 注意: 用于突出重要/关键信息、最佳实践等。 提示: 用于突出小窍门、捷径等。 警告: 用于传递设备或环境安全警示信息,若不避免,可能会导致设备损坏、数据丢失、设备性能降低或其 它不可预知的结果。 另请参阅: 用于突出参考、参阅等。 以下程序代码书写约定适用于本文档: 符号 说明 [] 表示包含一个或多个可选项。不需要输入中括号本身。 {} 表示包含两个以上(含两个)的候选,必须在其中选取一个。不需要输入花括号本身。 | 分割中括号或者花括号中的两个或两个以上选项。不需要输入“|”本身。 ... 表示其之前的元素可以被重复。 斜体 表示占位符或者需要提供特定值的变量。 大写 表示系统提供的元素,以便与用户定义的元素相互区分。除出现在方括号中的元素外,应当按 照顺序逐字输入。当然,部分元素在系统中是大小写不敏感的,因此用户可以根据系统说明以 小写形式输入。 小写 表示由用户提供的元素。 2 第 2 章 概述 2 第 章 概述 本章节为 Perl DBI 的相关简介,并介绍了 KingbaseES 对 Perl DBI 的兼容情况。 • Perl DBI 简述 • KingbaseES 的兼容情况 2.1 Perl DBI 简述 DBI(数据库独立接口)作为 Perl 语言中和数据库进行通讯的标准接口,它定义了一系列的方法、变量和常量, 提供了一个和具体数据库平台无关的数据库持久层。因此,DBI 可以应用在 Oracle、MySQL 或者 KingbaseES 等各 种数据库中。 如下图所示,DBI 获取所有 API 发送来的 SQL 数据,然后分发到对应的驱动上执行,获取数据后再返回。 3 第 2 章 概述 2.2 KingbaseES 的兼容情况 KingbaseES database driver for the DBI module 是向用户提供的使用 Perl 语言访问数据库的接口,使用户可以 在使用 Perl 语言开发时使用 KingbaseES 数据库。 本手册详细说明了 DBD::KB 中提供的接口和方法,以及使用时应该注意的情况和使用示例。 4 第3章 3 第 章 DBI 类 DBI 类 DBI 定义了一系列的方法、变量和常量,本章节介绍了这些方法。 • DBI 类方法 _ • 句柄的通用方法 3.1 DBI 类方法 a. connect 语法格式: $dbh = DBI->connect($data_source, $username, $password, \%attr); 功能: 该方法可建立与所查询的数据库 $data_source 相连的数据库连接或者会话。如果连接成功,返回一个数据库句 柄对象。可以使用 $dbh->disconnect 来终止这个连接。如果连接失败,将返回 undef 并且设置 $DBI::err 和 $DBI::errstr。 参数说明: $data_source 包含了连接到数据库的参数,应当以 dbi::KB 开头。如果没有定义或是定义为空,将用环境变量 DBI_DSN 代替这个值。连接参数如下表所示: 5 第3章 DBI 类 表 3.1.1: 连接参数 parameter hard coded default host local domain socket hostaddr local domain socket port 54321 dbname* current userid username current userid password (none) options (none) service (none) sslmode (none) \%attr 参数用来改变 PrintError,RaiseError,AutoCommit 及其他属性的缺省设置。 b. connect_cached 语法格式: $dbh = DBI->connect_cached("dbi:KB:dbname=$dbname", $username, $password, \\%options); 功能: 作用与 connect 相似,返回相应缓存的数据库句柄。 c. data_sources 语法格式: @data_sources = DBI->data_sources('KB'); @data_sources = $dbh->data_sources(); 功能: 使用给定的驱动程序名,返回所有可用的数据源的列表。 6 第3章 3.2 DBI 类 句柄的通用方法 这些方法对所有的 DBI 句柄都是通用的。 a. err 语法格式: $rv = $h->err; 功能: 返回最后一次调用的错误代码。 b. errstr 语法格式: $str = $h->errstr; 功能: 返回错误信息。 c. state 语法格式: $str = $h->state; 功能: 返回一个五个字符表示的”SQLSTATE” 代码。 d. trace 语法格式: $h->trace($trace_settings); $h->trace($trace_settings, $trace_filename); $trace_settings = $h->trace; 功能: 修改数据库句柄或者语句句柄上的 trace 设置。 e. trace_msg 语法格式: $h->trace_msg($message_text); $h->trace_msg($message_text, $min_level); 功能: 把输出信息写到文件中。$min_level 表示日志级别。 7 第3章 DBI 类 f. private_attribute_info 语法格式: $hashref = $dbh->private_attribute_info(); $hashref = $sth->private_attribute_info(); 功能: 返回所有的 DBD::KB 的私有属性的哈希引用。 8 第4章 4 第 章 DBI 数据库句柄对象 DBI 数据库句柄对象 本部分将列出与 DBI 数据库句柄相关的方法和属性。更详细的信息可参考 DBI 的规范,本文不详细说明各方法 和属性的相关信息。对于私有方法和属性,本文将详细说明。 • 数据库句柄方法 • 数据库句柄属性 4.1 数据库句柄方法 1. selectall_arrayref 语法格式: $ary_ref = $dbh->selectall_arrayref($sql); $ary_ref = $dbh->selectall_arrayref($sql, \\%attr); $ary_ref = $dbh->selectall_arrayref($sql, \\%attr, @bind_values); 功能: 返回一个数组引用。数组中的元素是指向取回的每一行数据的引用。 2. selectall_hashref 语法格式: $hash_ref = $dbh->selectall_hashref($sql, $key_field); 功能: 作用与 selectall_arrayref 相似,返回一个哈希引用。 3. selectcol_arrayref 语法格式: $ary_ref = $dbh->selectcol_arrayref($sql, \\%attr, @bind_values); 功能: 9 第4章 DBI 数据库句柄对象 返回一个含有每一行第一列值的数组的引用。 4. prepare 语法格式: $sth = $dbh->prepare($statement, \\%attr); 功能: 对语句做预处理,并且返回一个语句句柄对象的引用。 5. prepare_cached 语法格式: $sth = $dbh->prepare_cached($statement, \\%attr); 功能: 与 prepare 类似。返回的语句句柄存储在一个与 $dbh 有关的哈希列表中。如果使用同一组 $statement 和%attr 值调用另外一个 prepare_cached ,那么不与数据库服务器交互就可以返回相应的 $sth。 6. do 语法格式: $rv = $dbh->do($statement); $rv = $dbh->do($statement, \\%attr); $rv = $dbh->do($statement, \\%attr, @bind_values); 功能: 预处理并执行单个 SQL 语句。返回所影响的行数,或者出错时返回 undef。如果返回 -1 表示不知道这个行数 或者不能得到行数。该方法适用于不需预处理或者不需重复执行的非 SELECT 语句。如果使用该方法执行 SELECT 语句,将不返回任何数据。 7. last_insert_id 语法格式: $rv = $dbh->last_insert_id(undef, $schema, $table, undef); $rv = $dbh->last_insert_id(undef, $schema, $table, undef, {sequence => $seqname}); 功能: 返回最后插入的一行数据的序列值。 8. commit 语法格式: $rv = $dbh->commit; 功能: 10 第4章 DBI 数据库句柄对象 如果 AutoCommit 处于 off 状态,该方法将提交最近的数据库修改。如果 AutoCommit 处于 on 状态,该方法 将产生一个提交无效的警告。 9. rollback 语法格式: $rv = $dbh->rollback; 功能: 如果 AutoCommit 处于 off 状态,该方法将最近未提交的数据库修改进行回滚操作。如果 AutoCommit 处于 on 状态,该方法将产生一个回滚无效的警告。 10. begin_work 语法格式: $rv = $dbh->begin_work; 功能: 该方法将开始一个事务,直到调用 commit 或者 rollback。如果 AutoCommit 处于 on 状态,该方法无效。 11. disconnect 语法格式: $rv = $dbh->disconnect; 功能: 断开数据库连接。数据库句柄在断开连接后就无效了。 12. quote 语法格式: $rv = $dbh->quote($value, $data_type); 功能: 将数据按照该驱动程序的标准转换成可识别的格式。例如:将单个单引号或反斜线转换成两个。 13. quote_identifier 语法格式: $string = $dbh->quote_identifier( $name ); $string = $dbh->quote_identifier( undef, $schema, $table); 功能: 返回给定的字符串的标识符的形式。这些字符串为表名,列名或者模式名。 14. ping 语法格式: 11 第4章 DBI 数据库句柄对象 $rv = $dbh->ping; 功能: 检查数据库句柄是否有效。 15. table_info 语法格式: $sth = $dbh->table_info(undef, $schema, $table, $type); 功能: 返回数据库中所有的表和视图的信息。 16. column_info 语法格式: $sth = $dbh->column_info( undef, $schema, $table, $column ); 功能: 返回数据库中所有的列信息。 17. primary_key_info 语法格式: $sth = $dbh->primary_key_info( undef, $schema, $table, \\%attr ); 功能: 返回表的主键信息。如果没有指定模式名,使用 search path 中的第一个模式名 18. primary_key 语法格式: @key_column_names = $dbh->primary_key(undef, $schema, $table); 功能: 返回表的主键包含的所有列名。如果没有主键,返回空值。 19. foreign_key_info 语法格式: $sth = $dbh->foreign_key_info( $pk_catalog, $pk_schema, $pk_table, $fk_catalog, $fk_schema, $fk_table ); 功能: 返回表的外键信息。 20. statistics_info 语法格式: 12 第4章 DBI 数据库句柄对象 $sth = $dbh->statistics_info( undef, $schema, $table, $unique_only, $quick ); 功能: 返回一个能取到表的所有统计信息的语句句柄。 21. tables 语法格式: @names = $dbh->tables( undef, $schema, $table, $type, \\%attr ); 功能: 返回当前用户可见的所有表的信息。 22. type_info_all 语法格式: $type_info_all = $dbh->type_info_all; 功能: 返回常用的 SQL 数据类型的信息。 23. type_info 语法格式: @type_info = $dbh->type_info($data_type); 功能: 返回包含该数据类型所有信息的哈希列表。 24. selectrow_array 语法格式: @row_ary = $dbh->selectrow_array($sql); @row_ary = $dbh->selectrow_array($sql, \\%attr); @row_ary = $dbh->selectrow_array($sql, \\%attr, @bind_values); 功能: 返回一个包含所有行信息的数组。 25. selectrow_arrayref 语法格式: $ary_ref = $dbh->selectrow_arrayref($statement); $ary_ref = $dbh->selectrow_arrayref($statement, \\%attr); $ary_ref = $dbh->selectrow_arrayref($statement, \\%attr, @bind_values); 功能: 13 第4章 DBI 数据库句柄对象 与 selectrow_array 类似。返回一个包含所有行信息的数组的引用。 26. selectrow_hashref 语法格式: $hash_ref = $dbh->selectrow_hashref($sql); $hash_ref = $dbh->selectrow_hashref($sql, \\%attr); $hash_ref = $dbh->selectrow_hashref($sql, \\%attr, @bind_values); 功能: 与 selectrow_array 类似。返回一个包含所有行信息的数组的哈希引用。 27. clone 语法格式: $other_dbh = $dbh->clone(); 功能: 克隆一个语句句柄。 4.2 数据库句柄属性 本部分介绍数据库句柄的属性。这些属性的改变不会影响其他已经存在的数据库句柄。 a. AutoCommit (boolean) 事务是否自动提交。为 true 时,表示数据库的改变不可回滚。为 false 时,在事务中对数据库的修改必须使用 commit 或 rollback 进行提交或者回滚。缺省值为 true,即自动提交模式。 b. ReadOnly (boolean) 表示当前的数据库连接是否为只读模式的。如果为只读模式,对数据库的任何修改都是无效的。当 AutoCommit 为 true 时,该设置无效。 c. Name (string, read-only) 返回当前连接的数据库名。 d. Username (string, read-only) 返回当前连接使用的用户名。 e. Driver (handle, read-only) 返回其驱动程序句柄。 14 第 5 章 DBI 语句句柄对象 5 第 章 DBI 语句句柄对象 本部分将列出与 DBI 语句句柄相关的方法和属性。更详细的信息可参考 DBI 的规范,本文不详细说明各方法和 属性的相关信息。对于私有方法和属性,本文将详细说明。 • 语句句柄方法 • 语句句柄属性 5.1 语句句柄方法 a. bind_param 语法格式: $rv = $sth->bind_param($param_num, $bind_value); $rv = $sth->bind_param($param_num, $bind_value, $bind_type); $rv = $sth->bind_param($param_num, $bind_value, \\%attr); 功能: 绑定值,可使用完成了预处理的语句中的占位符,占位符用? 表示。 参数说明: $param_num 表示占位符的序号,例如:1,2,3。 $bind_value 表示绑定的值。undef 表示绑定到占位符的是一个空值 null。 \%attr 指定绑定的数据类型,缺省的数据类型是 varchar。如果需要使用其他的数据类型,可使用 DBI 或者是 DBD::KB 提供的数据类型。 如果使用 SQL 数据类型,将”use DBI” 修改为 use DBI qw(:sql_types) 。可将类似于 SQL_INTEGER 这样一 些常量导入自己的脚本中,可直接调用。 示例: 15 第 5 章 DBI 语句句柄对象 use DBI qw(:sql_types); $SQL = "SELECT id FROM ptable WHERE size > ? AND title = ?"; $sth = $dbh->prepare($SQL); ## Both arguments below are bound to placeholders as "varchar" $sth->execute(123, "Merk"); ## Reset the datatype for the first placeholder to an integer $sth->bind_param(1, undef, SQL_INTEGER); ## The "undef" bound above is not used, since we supply params to execute $sth->execute(123, "Merk"); b. bind_param_inout 语法格式: $rv = $sth->bind_param_inout($param_num, \\$scalar, 0); 功能: 作用与 bind_param 相似,可进行语句中值的更新。 参数说明: $param_num 表示占位符的序号,例如:1,2,3。 $bind_value 表示绑定的值。undef 表示绑定到占位符的是一个空值 null。 第三个参数可以简单的设置为 0。注意:这是指定返回列的变量。 示例: my $foo = 123; $sth = $dbh->prepare("SELECT 1+?::int"); $sth->bind_param_inout(1, \$foo, 0); $foo = 222; $sth->execute(444); $sth->fetch; c. bind_param_array 语法格式: $rv = $sth->bind_param_array($param_num, $array_ref_or_value); $rv = $sth->bind_param_array($param_num, $array_ref_or_value, $bind_type); $rv = $sth->bind_param_array($param_num, $array_ref_or_value, \\%attr); 16 第 5 章 DBI 语句句柄对象 功能: 绑定一组参数值。 d. execute 语法格式: $rv = $sth->execute(@bind_values); 功能: 执行已经预处理的语句。对于 UPDATE, DELETE, INSERT 语句,返回影响的行数。如果影响的行数不知道, 返回 -1。对于 SELECT 语句,只返回一个真值,不返回行数,在调用 select 后使用取数据的方法来获取数据。 参数说明: @bind_values 设置为”undef” 等同于设置的值为 null,将 bind_values 设置为 $DBDKB_DEFAULT 表示使用 缺省值。 示例: $dbh->do(q{CREATE TABLE abc (id SERIAL, country TEXT)}); $SQL = q{INSERT INTO abc (country) VALUES (?) RETURNING id}; $sth = $dbh->prepare($SQL); $sth->execute('France'); $countryid = $sth->fetch()->[0]; $sth->execute('New Zealand'); $countryid = $sth->fetch()->[0]; e. execute_array 语法格式: $tuples = $sth->execute_array() or die $sth->errstr; $tuples = $sth->execute_array(\%attr) or die $sth->errstr; $tuples = $sth->execute_array(\%attr, @bind_values) or die $sth->errstr; ($tuples, $rows) = $sth->execute_array(\%attr) or die $sth->errstr; ($tuples, $rows) = $sth->execute_array(\%attr, @bind_values) or die $sth->errstr; 功能: 对于通过 bind_param_array 方法传入的每组参数,执行已经预处理的 SQL 语句。 f. execute_for_fetch 语法格式: $tuples = $sth->execute_for_fetch($fetch_tuple_sub); $tuples = $sth->execute_for_fetch($fetch_tuple_sub, \\@tuple_status); ($tuples, $rows) = $sth->execute_for_fetch($fetch_tuple_sub); 17 第 5 章 DBI 语句句柄对象 ($tuples, $rows) = $sth->execute_for_fetch($fetch_tuple_sub, \\@tuple_status); 功能: 被 execute_array 内部调用,很少直接调用。 g. fetchrow_arrayref 语法格式: $ary_ref = $sth->fetchrow_arrayref; 功能: 返回下一行数据并返回一个指向存有各个字段值的数组的引用。如果在数组中有 undef 值的话,将不返回该字 段。如果没有更多的行或者出错,该方法的返回值为 undef。用户需检查 $sth->err 或者使用 RaiseError 属性 来检测返回的 undef 是否是由于发生错误导致的。 h. fetchrow_array 语法格式: @ary = $sth->fetchrow_array; 功能: 与 fetchrow_arrayref 方法类似。将下一行数据取回,并将其以含有字段值列表的形式返回。如果这个列表中有 undef 值,表示没有返回字段。如果没有更多的行或者出错,该方法的返回值为属性来检测返回的 undef 是否是 由于发生错误导致的。 i. fetchrow_hashref 语法格式: $hash_ref = $sth->fetchrow_hashref; $hash_ref = $sth->fetchrow_hashref($name); 功能: 功能与 fetchrow_array 类似。将下一行数据取回并同时返回指向含有字段名和字段值的散列的引用。散列中有 undef 表示没有返回字段。如果没有更多的行或者出错,该方法的返回值为 undef。用户需检查 $sth->err 或者 使用 RaiseError 属性来检测返回的 undef 是否是由于发生错误导致的。 j. fetchall_arrayref 语法格式: $tbl_ary_ref = $sth->fetchall_arrayref(); $tbl_ary_ref = $sth->fetchall_arrayref( $slice ); $tbl_ary_ref = $sth->fetchall_arrayref( $slice, $max_rows ); 功能: 18 第 5 章 DBI 语句句柄对象 使用一个已经预处理的语句句柄,取回所有数据。该方法将返回数组引用,每一行在这个数组中有一个引用。 如果没有要返回的行或者出错,该方法将返回迄今已取回的数据,可能是没有任何数据。用户需检查 $sth->err 或者使用 RaiseError 属性来检测数据是否已经完成还是由于发生错误导致中断。 k. fetchall_hashref 语法格式: $hash_ref = $sth->fetchall_hashref( $key_field ); 功能: 取回所有数据,返回哈希引用,包含所有数据并同时返回指向含有字段名和字段值的哈希的引用。如果没有更 多的行或者出错,该方法的返回值为 undef。用户需检查 $sth->err 或者使用 RaiseError 属性来检测返回的 undef 是否是由于发生错误导致的。 l. finish 语法格式: $rv = $sth->finish; 功能: 指示该句柄在再次被执行或销毁之前,从该句柄无数据可取。可以使服务器释放资源。 m. rows 语法格式: $rv = $sth->rows; 功能: 返回最后一个影响行的语句所影响的行数。如果该行数不知道或者无法得到,返回 -1。 n. bind_col 语法格式: $rv = $sth->bind_col($column_number, \\$var_to_bind); $rv = $sth->bind_col($column_number, \\$var_to_bind, \\%attr); $rv = $sth->bind_col($column_number, \\$var_to_bind, $bind_type ); 功能: 将一个 SELECT 语句的输出字段绑定到一个 Perl 变量。 o. bind_columns 语法格式: $rv = $sth->bind_columns(@list_of_refs_to_vars_to_bind); 功能: 对 SELECT 语句的每一列调用 bind_col。 19 第 5 章 DBI 语句句柄对象 p. dump_results 语法格式: $rows = $sth->dump_results($maxlen, $lsep, $fsep, $fh); 功能: 从语句句柄中取回所有的行,并对每一行调用 DBI::neat_list 将结果打印到 $fh。 5.2 语句句柄属性 本部分介绍语句句柄的属性。这些属性多数是只读的。这些属性的改变不会影响其他已经存在的语句句柄。 a. NUM_OF_FIELDS (integer, read-only) 已经预处理的语句的列数。对于非 SELECT 语句将设置 NUM_OF_FIELDS = 0。 b. NUM_OF_PARAMS (integer, read-only) 已经预处理的语句的参数个数。 c. NAME (arrayref, read-only) 返回列名数组的引用。名字中可以包含空格,但不允许进行截断或有尾部空格。区分大小写,与数据库服务器 返回一致。 d. NAME_lc (arrayref, read-only) 与 NAME 相同,返回小写列名。 e. NAME_uc (arrayref, read-only) 与 NAME 相同,返回大写列名。 f. NAME_hash (hashref, read-only) 与 NAME 相同,返回哈希引用。 g. NAME_lc_hash (hashref, read-only) 与 NAME_lc 相同,返回哈希引用。 h. NAME_uc_hash (hashref, read-only) 与 NAME_uc 相同,返回哈希引用。 i. TYPE (arrayref, read-only) 为每一列返回一个整数数组的引用,该数值与列的数据类型一致。 j. PRECISION (arrayref, read-only) 为每一列返回一个指向一个整数数组的引用。对于非数值型列,该值为该列的最大长度或者定义的长度。对于 数值型列,是该数据类型的最大数字个数。 20 第 5 章 DBI 语句句柄对象 k. SCALE (arrayref, read-only) 为每一列返回一个指向一个整数数组的引用。undef 表示这一列不适合用 SCALE。 l. NULLABLE (arrayref, read-only) 返回一个数组引用,表示每一列是否可为空。0 表示不能为空,1 表示可以为空,2 表示未知。 m. Database (dbh, read-only) 返回该语句句柄的数据库句柄。 n. ParamValues (hash ref, read-only) 返回一个指向当前已绑定的参数值的哈希引用。 o. ParamTypes (hash ref, read-only) 返回一个指向当前已绑定的参数的数据类型的哈希引用。 p. Statement (string, read-only) 返回传给 prepare 方法的 SQL 语句字符串。 21 第 6 章 KINGBASEES PERL DBI 访问 KINGBASEES 数据库示例 6 第 章 KingbaseES Perl DBI 访问 KingbaseES 数据库示例 您可前往 人大金仓官网 下载 Perl 测试用例 。 下例为如何使用 KingbaseES Perl DBI 建立与 KingbaseES 数据库的连接以及获取结果集: #!/usr/bin/perl use DBI; use DBD::KB; printf("before connect\n"); $dbh = DBI->connect("DBI:KB:dbname=TEST;host=192.168.4.8", 'SYSTEM', 'MANAGER'); printf("after connect\n"); $sth = $dbh->prepare("select 123 as a, 456 as b"); $sth->execute(); while(@row = $sth->fetchrow_array()) { print "row = @row\n"; } 22 版权声明 版权声明 北京人大金仓信息技术股份有限公司(简称:人大金仓)版权所有,并保留对本手册及本声明的一切权利。 未得到人大金仓的书面许可,任何人不得以任何方式或形式对本手册内的任何部分进行复制、摘录、备份、修 改、传播、翻译成其他语言、将其全部或部分用于商业用途。 免责声明 本手册内容依据现有信息制作,由于产品版本升级或其他原因,其内容有可能变更。人大金仓保留在没有任何通 知或者提示的情况下对手册内容进行修改的权利。 本手册仅作为使用指导,人大金仓在编写本手册时已尽力保证其内容准确可靠,但并不确保手册内容完全没有错 误或遗漏,本手册中的所有信息也不构成任何明示或暗示的担保。 技术支持 • 人大金仓官方网站:http://www.kingbase.com.cn/ • 人大金仓文档中心:http://help.kingbase.com.cn/ • 全国服务热线:400-601-1188 • 人大金仓技术支持与反馈信箱:support@kingbase.com.cn 23 服务周期承诺 服务周期承诺 由于市场需求在不断变化,技术创新和发展的进程不断加剧,产品的版本更迭不可避免。人大金仓对于产品版本 生命周期的有效管理,有助于您提前规划项目,更好地从产品服务终止上过渡。 表 1: KingbaseES 产品生命周期里程碑 关键里程碑点 定义 产品发布日期 产品正式发布版本,即 GA(general availability)版本的发布日期。 停止销售日期 正式停止销售的日期,版本停止接受订单日。该日之后,产品将不再销售。 停止功能升级日期 在该日期之后,不再提供新特性和新硬件支持。但依旧提供错误修复、安全修复、功 能维护等服务。 停止功能维护日期 在该日期之后,不再维护功能,修复问题。但依旧提供安全修复等服务 停止安全维护日期 在该日期之后,不再发布补丁版本修复中高风险漏洞,仅提供有限的支持。 产品服务终止日期 停止提供产品服务和支持的日期。包括软件维护版本,缺陷修复,以及针对该产品的 所有服务支持(包括服务热线和远程/现场支持)。 服务周期策略 金仓数据库管理系统 KingbaseES 产品确保以下的服务周期: 1)产品自发布之日起至产品停止功能升级(包含新特性、新硬件支持)之日不少于 5 年。 2)产品停止功能升级之日起至产品停止功能维护(主要包括问题修复)之日不少于 4 年。 3)产品功能维护停止之日起至产品停止安全维护(包括中高风险漏洞修复)之日不少于 2 年。 服务终止策略 金仓数据库管理系统 KingbaseES 产品确保在销售后,至少提供 6 年的服务支持。 注意: 人大金仓将会综合各方因素来确定产品服务终止日期。并将在实际产品服务终止日期之前至少 90 天,通过公 24 服务周期承诺 开方式宣布产品服务终止日期。 25