如果对任何trace( ) 调用指定一个文件名参数,则无论对DBI 作为整体还是单独的句柄,所有的跟踪输出都要到那个文件中。
要想对运行的所有DBI 脚本全部都打开跟踪,则从命令解释程序中设置DBI_TRACE 环境变量。它的语法取决于使用的命令解释程序:
value 的模式和所有命令解释程序的模式一样:数字n表示在级别n打开跟踪到S T D E R R中;文件名打开级别2 跟踪到这个命名的文件,或n=file_name 打开级别n跟踪到这个命名的文件中。下面的样例使用了csh 语法:
如果打开跟踪到命令解释程序中的文件,则确保一旦解决了这个问题,就将它关闭。将调试输出增加到这个跟踪文件中,而不用重写它,所以如果不小心,则这个文件可能变得非常大。极其不好的想法是在命令解释程序的启动文件(如.cshrc、.lonin 或. p r o f i l e)中定义DBI _ T R A C E!在UNIX 下,可以使用下面两个命令( csh 语法)之一关闭跟踪:
% setenv DBI_TRACE 0
% unsetenv DBI_TRACE
对于s h、ksh 或b a s h,这样做:
$ DBI_TRACE=0
$export DBI_TRACE
在Windows 操作系统中,可以使用下面两个命令之一关闭跟踪:
c:\>unset DBI_TRACE
c:\>set DBI_TRACE=0
使用结果集元数据
可以使用DBI 来获得访问结果集元数据——也就是有关由查询选择行的描述信息。访问与结果集生成的查询所相关的语句句柄的属性来获得这个信息。提供这些属性中有一些是作为可用于横跨所有数据库驱动程序的标准DBI 属性(如N U M _ O F _ F I E L D S,结果集中列的数量)。另外一些是MySQL特定的,由DBD::mysql所提供的DBI 的MySQL驱动程序。这些属性,如mysql_max_length 告知了每列值的最大宽度,不能用于其他数据库引擎。要想使用任何MySQL特定的属性,都必须冒着使脚本不可移植到其他数据库的危险。另一方面,它们可以使它更容易地获得想要的信息。
必须在适当时候请求元数据。一般来说,直到调用prepare( ) 和execute( ) 之后,结果集属性才能用于SELECT 语句。除此之外,在调用finish( ) 之后,属性可能变为无效。
让我们来看看如何使用MySQL的一个元数据属性mysql_ m a x _ l e n g t h,与保留查询列名的DBI 级别的NAME 属性一起使用。我们可以将这些属性提供的信息合并起来,编写一个脚本b o x _ o ut,它以交互模式运行mysql客户机程序时获得的相同边框风格,从SELECT 查询产生输出。box_out 的主体如下(可以用任何其他的语句替换SELECT 语句;编写输出的例程独立于特定的查询):
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] 下一页
Tag:数据库教程,sql数据库教程,access数据库教程,电脑教学 - 数据库教程