您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页Sybase ASE 15.7 开发文档:脚本化语言-用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序 15.7

Sybase ASE 15.7 开发文档:脚本化语言-用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序 15.7

来源:尚车旅游网
脚本化语言

用于 Perl 的 Adaptive Server®Enterprise 数据库驱动程序 15.7

文档 ID: DC01817-01-1570-02最后修订日期: 2012 年 6 月

版权所有 © 2012 Sybase, Inc. 保留所有权利。

除非新版本或技术声明中另有说明,否则本出版物适用于 Sybase 软件及所有后续版本。本文档中的信息如有更改,恕不另行通知。本出版物中描述的软件按许可证协议提供,其使用或复制必须符合协议条款。

仅在定期安排的软件发布日期提供升级。未经 Sybase, Inc. 事先书面许可,本书的任何部分不得以任何形式、任何手段(电子的、机械的、手动、光学的或其它手段)进行复制、传播或翻译。

可在 http://www.sybase.com/detail?id=1011207 上的 Sybase 商标页中查看 Sybase 商标。Sybase 和列出的标记均是Sybase, Inc. 的商标。® 表示已在美国注册。

SAP 和此处提及的其它 SAP 产品与服务及其各自的徽标是 SAP AG 在德国和世界各地其它几个国家/地区的商标或注册商标。

Java 和所有基于 Java 的标记都是 Oracle 和/或其在美国和其它国家/地区的附属机构的商标或注册商标。Unicode 和 Unicode 徽标是 Unicode, Inc. 的注册商标。

本书中提到的所有其它公司和产品名均可能是与之相关的相应公司的商标。

Use, duplication, or disclosure by the government is subject to the restrictions set forth in subparagraph (c)(1)(ii) of DFARS52.227-7013 for the DOD and as set forth in FAR 52.227-19(a)-(d) for civilian agencies.Sybase, Inc., One Sybase Drive, Dublin, CA 94568.

目录

用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序.............................................................................................1Perl 驱动程序模块...........................................................1安装和配置 Perl 驱动程序...............................................2开发 Perl 应用程序..........................................................2

Perl 支持的数据类型..............................................4组合多个语句.........................................................5支持的字符长度......................................................6数据库参数支持......................................................6动态 SQL 支持.......................................................6缺省日期转换和显示格式.......................................6LONG/BLOB 数据处理...........................................7自动密钥生成.........................................................7参数绑定................................................................8存储过程................................................................8错误处理.........................................................................8配置安全服务..................................................................9其它资源.........................................................................9词汇表....................................................................................11索引....................................................................................13

脚本化语言iii

目录

iv用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

用于 Perl 脚本化语言的 Adaptive Server Enterprise 数据库驱动程序能让 Perl 开发人员连接到 Adaptive Server 数据库以及使用 Perl 脚本查询或更改信息。

®

Perl 驱动程序模块

DBD::SybaseASE 是用于 Perl 脚本化语言的 Adaptive Server 数据库驱动程序。用于 Perl 脚本化语言的 DBD::SybaseASE 数据库驱动程序是通过通用 Perl DBI 接口调用的,并将 Perl DBI API 调用转换成一种可被 Adaptive Server 通过 Open Client SDK使用 CT-Library 理解的形式。

通过使用 DBI 和 DBD::SybaseASE,您的 Perl 脚本可直接访问 Adaptive Server Enterprise数据库服务器。

通用 Perl DBI API 规范定义一组方法,用以提供于实际使用数据库的数据库接口。

有关 Perl DBI 可编程 API 调用,可在 http://search.cpan.org/~timb/DBI-1.616/DBI.pm 中找到说明。

注意: DBD::SybaseASE 驱动程序无法在没有 DBI 的情况下正常工作。DBI 中包含所有用户可见 API。

Perl 驱动程序数据流下图描述数据如何在必需的组件之间移动。

必需组件使用 Perl 编程语言访问 Adaptive Server 数据库需要以下组件:•••••

Perl 安装 – 数据库供应商未知的通用核心数据库 API。

DBD::SybaseASE – 用于 Perl 脚本化语言的数据库驱动程序。

CT-Library – (CT-Lib API) 是 Open Client 套件的一部分。CT-Library 向 AdaptiveServer 发送命令并处理结果。Adaptive Server EnterprisePerl

脚本化语言1

用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

版本要求有关平台支持的信息,请参见所用平台的 Software Developers Kit and Open ServerInstallation Guide(《软件开发工具包和 Open Server 安装指南》)。••••••

Adaptive Server Enterprise – 15.7 版或更高版本。Open Client 和 Open Server – 15.7 版或更高版本。Perl – 5.14.0 或 5.14.1 版。

DBD::SybaseASE 驱动程序 – 没有特定的版本要求。CT-Library – (CT-Lib API) 15.7 版。Perl DBI – 1.616 版。

®

Sybase 安装程序不检查有无 Perl 安装或目标系统上是否安装了驱动程序依赖性。

注意: 针对您的平台发布的 Perl 驱动程序的建立模式还会决定 Perl 安装的建立模式和DBI。作为示例,对于 Linux,此驱动程序是在启用线程化的情况下在 位模式中发布的。这意味着,必须在启用线程化的情况下在完全 位模式中配置 Perl。建立模式要求也适用于 DBI 接口。

安装和配置 Perl 驱动程序

用于 Perl 的数据库驱动程序是一个可通过 Sybase 安装程序安装的组件。

当您选择“自定义”(Custom) 作为安装类型时,用于 Perl 的数据库驱动程序是可选的安装组件。如果您选择的安装类型是“典型”(Typical) 或“完全”(Full),则会缺省安装此驱动程序。有关安装和配置的说明,请参见针对所用平台的 Software

Developers Kit and Open Server Installation Guide(《软件开发工具包和 Open Server 安装指南》)。

开发 Perl 应用程序

使用 Perl DBI API 开发 Perl 应用程序。

SybaseASE 驱动程序连接语法若要使用 Perl 脚本连接到 Adaptive Server,服务器必须已在运行,而且客户端安装必须完成且所有组件都已安装。

\"dbi:SybaseASE:attr=value;attr=value\%attrib);

属性和方法当连接到服务器时,以下属性当前受到支持:••

server – 指定要连接到的服务器的名称。

database – 指定服务器内在连接时充当缺省数据库的数据库。

2用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

hostname - 指定此进程的 sysprocesses 表中存储的主机名。

属性值可以反复使用,只要驱动程序能识别即可。

以下是使用 DBI->connect 方法的 SybaseASE 驱动程序语法示例:

my $dbh = DBI->connect(“dbi:SybaseASE:server=mumbles;database=prod”, \"john_doe\

当前支持的数据库句柄属性:

表 1. 数据库句柄属性

属性dbh->{AutoCom-mit} = (0|1);dbh->{LongTrun-cOK} = (0|1);dbh->{LongRea-dLen}=(int);dbh->{syb_show_sql} =(0|1);dbh->{syb_show_eed} = (0|1);dbh->{syb_chained_txn} = (0|1);说明禁用或启用 AutoCommit。禁用或启用截断文本和图像类型功能。设置 TEXT 和 IMAGE 数据的缺省读取块大小。示例: dbh->{LongReadLen} = 000.设置后,当前语句会包含在 $dbh->errstr 返回的错误字符串中。设置后,扩展错误信息会包含在 $dbh->errstr 返回的错误字符串中。设置后,AutoCommit 关闭时将使用 CHAINED 事务。仅在调用 connect() 时使用此属性: $dbh = DBI->connect('dbi:SybaseASE:', $user, $pwd, {syb_chained_txn => 1});在关闭 AutoCommit 的情况下,任何时候使用syb_chained_txn 都将在当前句柄上执行强制提交。设置为 0 时,会根据需要发出显式 BEGIN TRAN。Default0032767000dbh->{syb_use_bin_0x} = (0|1);dbh->{syb_binary_images} = (0|1);设置后,结果字符串中的 BINARY 和 VARBINARY 值会带有“0x”前缀。0设置后,以原始二进制格式返回 IMAGE 数据。否则,IMAGE0数据会转换为十六进制字符串。脚本化语言3

用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

属性dbh->{syb_quoted_identifier}=(0|1);dbh->{syb_row-count}=(int);说明Default在使用“标识符”进行引用时,允许使用与 Sybase 保留字冲0突的标识符。如果设置为非零值,则 SELECT 返回的行数,或 UPDATE 或0DELETE 语句影响的行数将为 rowcount 值。将其重新设置为 0 会清除此。强制 $sth->execute() 读取在 SQL 流中执行的存储过程的返回0proc_status} = (0|1);状态。sth->{syb_do_如果返回状态非零,则 $sth->execute() 会返回 undef(即失败)。设置此属性不会影响现有的语句句柄;仅会影响在设置后创建的语句句柄。要恢复现有 $sth 句柄的行为,请执行: $sth->{syb_do_proc_status} = 0;dbh->{syb_flush_finish}设置后,$dbh->finish 会通过实际读取当前命令的所有剩余结果来清除它们。这可以用在发出 ct_cancel() 命令的驱动程序中使用。此私有方法设置缺省日期转换和显示格式。当前只有locale = “C” 是受支持的选项,此选项必须设置,否则转换会失败。_date_fmtPerl 支持的数据类型

Perl 驱动程序支持字符串、数值以及日期和时间数据类型。

字符串类型••••••••

charvarcharbinaryvarbinary文本图像unicharunivarchar

数值类型•integer

4用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

•••••••••••

smallinttinyintmoney

smallmoneyfloatrealdoublenumericdecimalbitbigint

注意: Perl 将 numeric 和 decimal 以字符串形式返回。其它数据类型按各自的格式返回。

日期和时间数据类型•••••

datetime日期时间bigtimebigdatetime

Sybase ASE 驱动程序使用的缺省时间/日期格式是简写格式。例如:“Aug 7 201103:05PM”。

此格式基于“C”区域设置,必须在使用此驱动程序之前将 LC_ALL 或 LANG 设置为“C”。

有关数据类型的信息,请参见 Open Client Client-Library/C Programmers Guide(《OpenClient Client-Library/C 程序员指南》)中的“Using Open Client and Server Datatypes”(使用 Open Client 和 Server 数据类型)。

组合多个语句

Perl 驱动程序允许通过一次调用准备多个语句,然后通过一次调用执行。

用于 Perl 的 Sybase ASE 数据库驱动程序当前允许与任何数据库建立 25 个并发数据库连接。通过一次调用准备的多个语句的结果将作为单个数据流发送回客户端。每个不同的结果集都当作是一般的单个结果集,这意味着,读取方法在每个集合的结尾返回“undef”。CT-Lib API ct_fetch() 返回 \"CS_END_RESULTS\",在检索到最后一个数据后驱动程序会将其转换为“undef”。

可以使用 syb_more_results 语句句柄属性检查管道中有无结果集。示例:

do {

while($a = $sth->fetch) {

脚本化语言5

用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

..for example, display data.. }

} while($sth->{syb_more_results});

如果您需要多个结果集,Sybase 建议您使用它。

支持的字符长度

不同类型标识符支持的字符长度。

Sybase 标识符(如表和列)的名称可以在长度上超过 255 个字符。登录名、应用程序名和口令的长度不能超过 30 个字符。

数据库参数支持

配置数据库参数 locale 和 charset。

数据库参数 locale 和 charset 可以通过驱动程序配置并设置如下:••

在环境级别,将 LC_ALL 或 LANG 设置为 “C”。

使用适合您的平台的缺省字符集。最常用的缺省字符集是 iso_1(对于 HP/UX,为roman8)。

当前 DSN 不支持在连接时更改区域设置或字符集。

有关字符集的详细信息,请参见 Open Client and Open Server International DevelopersGuide(《Open Client 和 Open Server 国际开发人员指南》)。

动态 SQL 支持

用于 Perl 的驱动程序支持动态 SQL,包括参数的使用。使用“?”样式标记表示参数。

缺省日期转换和显示格式

可以使用 _data_fmt 私有方法设置缺省日期转换和显示格式。

Sybase 日期格式取决于客户端的区域设置。缺省日期格式基于“C”区域设置:Feb 16 2012 12:07PM

在此相同缺省区域设置下,Sybase 可识别其它几种输入格式:••••

2/16/2012 12:07PM2012/02/16 12:072012-02-16 12:0720120216 12:07

使用 _date_fmt()(可使用 $dbh->func() 访问)更改日期输入和输出格式。

6用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

表 2. 支持日期格式

日期格式LONGSHORT示例Nov 15 2011 11:30:11:496AMNov 15 2011 11:30AMDMY4_YYYYNov 15 2011MDY1_YYYY11/15/2011DMY1_YYYY15/11/2011DMY2_YYYY15.11.2011DMY3_YYYY15-11-2011DMY4_YYYY15 November 2011HMSLONGMS11:30:11Nov 15 2011 11:30:33.532315PM用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序支持 15.7 及之前版本所支持的所有日期和时间值。

LONG/BLOB 数据处理

用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序支持 LONG/BLOB 数据的 IMAGE和 TEXT 类型。每种类型均最多可容纳 2GB 的二进制数据。

TEXT/IMAGE 数据的缺省大小为 32KB。使用 LongReadLen 属性可更改此。绑定参数无法用于插入 TEXT 或 IMAGE 数据。

自动密钥生成

用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序支持用于自动密钥生成的IDENTITY 功能。

声明带有 IDENTITY 列的表会针对每项插入生成一个新值。这些值单调递增,但不能保证连续递增。

要读取上次插入生成及使用的值:SELECT @@IDENTITY

不支持序列发生器;请使用存储过程生成顺序标识值。

脚本化语言7

用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

参数绑定Sybase 直接支持参数绑定。

仅支持 ? 样式的参数,不支持 :1 占位符类型的参数。尝试绑定 TEXT 或 IMAGE 数据类型会导致失败。

存储过程用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序支持带有输入和输出参数的存储过程。

如果存储过程使用输出参数返回数据,则必须先对其进行声明:

$sth = $dbh->prepare(qq[ declare \\

@name varchar(50) exec getname abcd, \\ @name output]);

存储过程无法使用绑定的参数进行调用:非法:

$sth = $dbh->prepare(\"exec my_proc ?\");$sth->execute('foo');

正确:

$sth = $dbh->prepare(\"exec my_proc 'foo'\");$sth->execute('foo');

由于 Sybse 存储过程通常会返回多个结果集,因此请确保使用循环,直到syb_more_results 为 0 为止。

do {

while($data = $sth->fetch) { do something useful... }

} while($sth->{syb_more_results});

错误处理

所有来自 Perl 和 CT-Lib 数据库驱动程序的错误都会传播到 DBI 层。

但有一个例外,即尚无可用环境时必须在驱动程序启动期间进行报告的错误或警告。当启用 PrintError 属性时,DBI 执行基本错误报告。

若要跟踪程序中的问题或系统级别的问题,请使用 DBI trace 方法在 DBI 操作上启用跟踪。

8用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

配置安全服务

使用 ocs.cfg 和 libtcl.cfg 文件配置安全选项。

对于连接,使用 ocs.cfg 设置目录和安全属性。编辑 libtcl.cfg 以装载安全性和目录服务器驱动程序。

注意: 当使用 ocs.cfg 文件时,应当会添加应用程序名条目,以便能设置特定于驱动程序的选项。SybaseASE 驱动程序的内部应用程序名是“SybaseASE”。此名称在此时是无法配置或更改的。

DBD::SybaseASE 驱动程序当前没有 API 可从 Perl 应用程序脚本内支持安全性和目录服务器。当前无法通过 DSN 启用安全选项。

有关详细信息,请参见《适用于 UNIX 的 Open Client 和 Open Server 配置指南》中的“配置文件”。

其它资源

有关使用 Perl 驱动程序的其它信息。••••

DBI 驱动程序的构建、测试和安装:http://dbi.perl.org/

Perl DBI 用户可编程 API 调用:

http://search.cpan.org/~timb/DBI-1.616/DBI.pm

有关配置信息的 Open Client 和 Open Server 文档:

《适用于 UNIX 的 Open Client 和 Open Server 配置指南》>“配置文件”

初始化应用程序,以使它从系统配置的角度是使用特定语言和相关文化习惯执行的:

《适用于 UNIX 的 Open Client 和 Open Server 的配置指南》>“本地化”适用于所有 Open Client 和 Open Server 产品的平台相关问题:《适用于 UNIX 的 Open Client 和 Open Server 的程序员补充说明》使用 Open Client 和 Open Server 运行时配置文件:

《Open Client Client-Library/C 参考手册》>“Using the runtime configuration file”(使用运行时配置文件)>“Open Client and Open Server runtime configuration filesyntax”(Open Client 和 Open Server 运行时配置文件语法)使应用程序能够支持多种语言和文化习惯:

Open Client and Open Server International Developers Guide for UNIX(《适用于UNIX 的 Open Client 和 Open Server 国际开发人员指南》)>“UnderstandingInternationalization and Localization”(了解国际化和本地化)平台支持:

••

脚本化语言9

用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

针对所用平台的 Software Developer Kit and Open Server Installation Guide(《软件开发工具包和 Open Server 安装指南》)。

10用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

词汇表

词汇表

特定于脚本化语言的术语词汇表。•••••••••

Client-Library – Open Client 的一部分,一组用于编写客户端应用程序的例程。Client-Library 专用于容纳游标和 Sybase 产品系列中的其它高级功能。

CPAN – 综合 Perl 存档网络。用于存储大量 Perl 软件和文档的 Web 站点。请访问http://www.cpan.org。

CS-Library – 在 Open Client 和 Open Server 产品中附带提供,一组对 Client-Library和 Server-Library 应用程序都可用的实用程序例程。

CT-Library – (CT-Lib API) 是 Open Client 套件的一部分,是让脚本化应用程序连接到 Adaptive Server 所必需的。

DBD – 特定于数据库供应商的驱动程序,将 DBI 数据库 API 调用转换为可被目标数据库 SDK 理解的形式。

DBI – 通用核心数据库 API,数据库供应商未知,是 Perl 应用程序中的数据库访问的最新标准。请访问 http://dbi.perl.org。

驱动程序 – 用于构建 DBD::SybaseASE 的 Perl 和 C 代码集合。

扩展或模块 – 可以通过用 Perl 或者 Perl 与 C 组合编写的模块来扩展 Perl 语言。在本文档中,扩展和模块是同一个意思。Perl 目录树 – 为以下各项之一:•

完整 Perl 安装,当系统经过配置并装有操作系统时,它安装为二进制模块。完整Perl 安装有时叫做系统 (Perl) 树,由系统帐户(root、admin)拥有。

•私有 Perl(目录)树,由系统帐户以外的用户根据源构建,通常安装在系统 Perl树以外的目录中。这允许在不破坏系统树的情况下使用新功能和错误修复测试。私有目录树通常由构建该树的帐户拥有。

Perl 脚本 – Perl 是一种脚本化语言,广泛用于系统和数据库管理中。请访问 http://www.perl.org。

线程 – 是通过 Open Server 应用程序和库代码完成的执行的路径,以及路径的关联堆栈空间、状态信息和事件处理程序。

Transact-SQL – 数据库语言 SQL 的增强版。应用程序可以使用 Transact-SQL 与Adaptive Server Enterprise 通信。

•••

脚本化语言11

词汇表

12用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

索引

索引

A

Adaptive Server Enterprise

用于 Perl 的数据库驱动程序 1安全服务

配置 9安装选项 2

P

配置

安全服务 9

Q

其它资源 9缺省

日期转换 6显示格式 6

B

版本要求 1

C

参数

区域设置 6字符集 6参数绑定 8词汇表 11存储过程 8错误处理

PrintError 8报告 8

S

属性

方法 2

数据库句柄 2属性和方法 2数据类型

日期和时间 4数值 4字符串 4数据流框图 1

D

DBI 层 8动态 SQL 6多个语句 5

X

线程化 1

L

LONG/BLOB 数据

IMAGE 类型 7TEXT 类型 7连接语法 2

Z

支持日期格式 6字符长度 6自动密钥生成 7组件

必需 1说明 1

M

密钥生成 7

脚本化语言13

索引

14用于 Perl 的 Adaptive Server Enterprise 数据库驱动程序

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务