当前位置:学学看123知识中心电脑教学数据库教程Perl DBI 基础» 正文

Perl DBI 基础

[06-11 18:16:12]   来源:http://www.xxk123.com  数据库教程   阅读:8749

导读: 下面的脚本dump_members2 举例说明了当要自己检查错误并显示自己的消息时,如何编写脚本。dump_member2 处理和dump_members 一样的查询,但是明确地禁用PrintError 和R a i s e E r r o r,然后测试每个DBI 调用的结果。如果出现错误,在退出以前,脚本调用了子例程bail_out( ) 显示消息及$DBI::err 和$DBI::errstr 的内容: 除了bail_out( ) 是退出而不是返回到调用者以外, bail_out( ) 类似于我们在第6章中为编写C 程序使用的print_error( ) 函数。每次想显示错误消息时, bail_out( ) 解除了写出$DBI::err 和$DBI::errstr 名称的麻烦。同样,通过封装显示到子例程的错误消息,可更改子例程使整个脚本中错误消息的格式一致。 dump_member2 脚本在提取行循环的后面有一个测试,这是dump_members 所没有的。因为如果在fetchrow_array( ) 中出现错误,dump_members2

Perl DBI 基础,标签:sql数据库教程,access数据库教程,http://www.xxk123.com

    下面的脚本dump_members2 举例说明了当要自己检查错误并显示自己的消息时,如何编写脚本。dump_member2 处理和dump_members 一样的查询,但是明确地禁用PrintError 和R a i s e E r r o r,然后测试每个DBI 调用的结果。如果出现错误,在退出以前,脚本调用了子例程bail_out( ) 显示消息及$DBI::err 和$DBI::errstr 的内容:


    除了bail_out( ) 是退出而不是返回到调用者以外, bail_out( ) 类似于我们在第6章中为编写C 程序使用的print_error( ) 函数。每次想显示错误消息时, bail_out( ) 解除了写出$DBI::err 和$DBI::errstr 名称的麻烦。同样,通过封装显示到子例程的错误消息,可更改子例程使整个脚本中错误消息的格式一致。
    dump_member2 脚本在提取行循环的后面有一个测试,这是dump_members 所没有的。因为如果在fetchrow_array( ) 中出现错误,dump_members2 不会自动地退出,所以人们判断循环是因为结果集读取完成而终止(正常终止),还是因为出现错误而终止做出确定是很困难的。当然,任何一种方式,循环都将终止,但是如果出现错误,则将删截脚本的输出。如果没有错误检查,运行该脚本的人将无法知道是否有错!如果自己检查错误,应该检查提取循环的结果。

处理不返回结果集的查询

    D E L E T E、INSERT、REPLACE和UPDATE等执行后不返回行的语句比S E L E C T、DESCRIB、EXPLAIN 和SHOW 等执行后返回行的语句的处理相对要容易一些。为处理一条非SELECT 语句,利用数据库句柄,将它传递给do( )。do( ) 方法在一个步骤内准备和执行该查询。例如,开始输入一个新的成员, Marcis Brown,终止日期为2002 年6 月3 日,可以这样做:

    do( ) 方法返回涉及行的计数,如果出现错误,则返回un d e f。因为各种原因,可能出现错误(例如,这个查询可能是畸形的,或可能没有访问这个表的权力)。对于非undef 的返回,注意那些没有受到影响的行的情况。当这种情况发生时, do( ) 不返回数字0;而是返回字符串“0 E 0”(0的Perl科学计数法形式)。“0 E 0”在数值上等价于0,但是,在条件测试中将其视为真,以便可以将其与早期的undef 区别。如果do( ) 返回0,则区分是出现了错误( un d e f)还是“没有受到影响的行”这两种情况将更困难。使用下面的两个测试之一可以检查错误:
    if (!defined ($rows)){#error}
    if (!$rows) {#error}
    在数值环境中,“0 E 0”与0 等价。下面的代码将正确地显示$rows 的任何非undef 值的行数:

    也可以用printf( ) 使用‘% d’格式显示$row 来强制进行隐含的数字转换:

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]  下一页


Tag:数据库教程sql数据库教程,access数据库教程电脑教学 - 数据库教程
前一篇:ORACLE函数大全
《Perl DBI 基础》相关文章

Copyright 学学看123 All Right Reserved.

1 2 3 4 5 6 7 8 9 10