【问题标题】:Sybase-Perl DBLib mapping of fourth argument to DBI ConnectSybase-Perl DBLib 将第四个参数映射到 DBI Connect
【发布时间】:2012-01-05 14:08:37
【问题描述】:

我正在将一个 perl 脚本从 DBlib 转换为 DBI 以用于 sybase 连接。我正在实施kerberos。 DBLib 连接中的第四个参数(perl 脚本的名称)和 DBI 中的等价物的功能是什么? 例如。 DBLib 连接:

$dbh     = new Sybase::DBlib $USER, $PASS, $SRV, "file.pl";

这等于 -

$dsn = "dbi:sybase:server=$SRV;kerberos=$kerbprincipal;scriptName=file.pl";    
$dbh = DBI->connect($dsn,"","");

我从cpan.org 发现了有关 DBI scriptName 的以下信息。

脚本名称

指定将在 sp_who 中显示的此连接的名称(即在 sysprocesses 表中的 program_name 列中)。


答案:dblib 中的第四个参数和dbi 中的scriptName 设置sysprocess 表中的program_name 列。这可以用于日志和监控数据库。

【问题讨论】:

    标签: perl sybase kerberos dbi


    【解决方案1】:

    我相信 MS SQL Server 中的 AppName 连接字符串属性基本上以 sysprocesses 表(因此 sp_who)和 SQL Server 开始它的生命作为 Sybase。我认为 Sybase::DBlib 中的 $appname 等同于 DBD::Sybase 中的 ScriptName。我现在无法证明这一点,因为我不再拥有 Sybase。

    【讨论】:

    • 感谢 bohica 的回复。 Sybase 也有 sysprocesses 表。我今天用sybase测试了它。我能够查询 sysprocesses 表。它有效。现在修改我的问题。
    • 注意scriptName字符串不能超过15个字符左右,剩下的会被截断。 (也许这在 Sybase ASE 的最新版本中有所改变?)
    • 感谢 Knb。这是一个有用的信息。
    猜你喜欢
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 2011-04-02
    • 2017-10-14
    相关资源
    最近更新 更多