【问题标题】:how to connect sql server with linux?如何连接sql server和linux?
【发布时间】:2013-03-30 10:59:53
【问题描述】:

每当我运行 Perl 代码时,都会出现以下错误:

DBI connect('SQLSERVER','rti_dbuser',...) failed: [unixODBC][Driver Manager]Data source name not found, and no default driver specified (SQL-IM002) at /usr/WINAST/RTI/AGI/M_TEST.pl line 14
Coudn't Connect SQL at /usr/WINAST/RTI/AGI/M_TEST.pl line 14.

配置文件如下:

odbc.ini

[SQLSERVER]
description = Asterisk ODBC for SQL SERVER
;driver = FreeTDS 
Driver = /usr/local/lib/libtdsodbc.so
server = 10.2.20.42\APSHCL
Database = RTI
port = 1433
tds_version = 9.0
try domain login = yes
try server login = yes
nt domain = DOMAIN
language = us_english

odbcinst.ini

[FreeTDS]
Description = FreeTDS ODBC driver for MSSQL
Driver = /usr/local/lib/libtdsodbc.so
Setup = /usr/local/lib/libtdsS.so
FileUsage = 1

我的代码

use DBI;
use Data::Dumper;
use Asterisk::AGI;
my $agi = new Asterisk::AGI;
$first_param  = $ARGV[0];

my $DSN = q/dbi:ODBC:SQLSERVER/;
my $uid = q/username/;
my $pwd = q/password/;

my $DRIVER = "Freetds";
my $dbh = DBI->connect($DSN,$uid,$pwd) or die "Coudn't Connect SQL";
my $servernumber = 2;


my $sql = "EXEC usp_check_black_list '".$first_param."'" ;

my $sth = $dbh->prepare($sql);
$sth->execute();

$return = $sth->fetchrow();
$agi->set_variable('result',$return);
print Dumper($return);
$sth->finish;
$dbh->disconnect;

每当我执行我的 perl 代码时,都找不到驱动程序。我已经定义了驱动程序,但它没有使用该驱动程序....

请帮帮我...

【问题讨论】:

  • 你检查过像connectionstrings.com这样的网站吗?
  • 基本上我已经在 odbcinst.ini 文件中定义了 freetds 的默认驱动程序,但是每当我执行 Perl 程序时它都不会启动驱动程序。它抛出以下错误:“数据源名称不是已找到,但未指定默认驱动程序”
  • 我已经直接在 odbc.ini 文件中定义了 freetds 驱动程序,但是我得到了以下错误:“找不到数据源名称,并且没有指定默认驱动程序”请帮助我...
  • 看到你的问题,我想你试过了:unixodbc.org/doc/FreeTDS.html
  • 您可能应该包含实际产生错误的 perl 代码。

标签: perl freetds


【解决方案1】:

尝试使用 DBD::Sybase。 MSSQL 是 Sybase 代码的一个分支,尽管 YMMV,但 DBD::Sybase 仍然运行良好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多