2011-11-24 35 views
0

我將一個perl腳本從DBlib轉換爲DBI以進行sybase連接。我正在實施Kerberos。 DBLib連接中的第四個參數(perl腳本的名稱)的功能和DBI中的等效功能是什麼? 例如。 DBLIB連接:Sybase-Perl DBLib將第四個參數映射到DBI Connect

$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套program_name列在表sysprocess。這可以用於日誌和監視數據庫。

回答

1

我相信MS SQL Server中的AppName連接字符串屬性基本上以sysprocesses表(並因此sp_who)結束,而SQL Server以Sybase開始其生命。我認爲Sybase :: DBlib中的$ appname等同於DBD :: Sybase中的ScriptName。我現在無法證明它,因爲我不再擁有Sybase。

+0

感謝您的迴應bohica。 Sybase也有sysprocesses表。我今天用sybase測試了它。我能夠查詢sysprocesses表。它的工作原理。現在修改我的問題。 – Mohit

+0

請注意,scriptName字符串不得超過15個字符,其餘部分將被截斷。 (也許這已經在Sybase ASE的最新版本中發生了變化?) – knb

+0

Thanks Knb。這是一個有用的信息。 – Mohit