标签: freetds

Perl TDS 字符集

我将 FreeTDS 驱动程序与 DBD::Sybase 一起使用,连接到 MS SQL Server。当我查询某些记录的某些值时,出现此错误:

DBD::Sybase::st fetchrow_arrayref failed: OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (9) NUMBER = (99)
Server , database 
Message String: WARNING! Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?').
Run Code Online (Sandbox Code Playgroud)

这似乎发生在包含特殊 Windows 字符集字符的记录中,例如从人们的 Outlook 和 Word 消息中复制和粘贴的卷曲引号。

不幸的是,我对这个数据库没有任何控制权;清理输入的方式显然是要走的路,但对我来说不可用。

我需要更改哪些 FreeTDS 设置才能成功查询这些记录?

附加信息:

查询在 tsql 中运行良好。我只通过 Perl 的 DBD::Sybase 接口得到这个错误。(我应该通过其他方式进行测试吗?我还没有安装 PHP 或 Python 的专业知识。我有 jTDS 并且可以使用它,但我认为这是一个完全不同的实现,而不是 FreeTDS 的接口。)

添加

client charset = …
Run Code Online (Sandbox Code Playgroud)

perl sql-server freetds dbi

7
推荐指数
1
解决办法
4393
查看次数

Php pdo_dblib - 找不到/无法加载 freetds

自托管盒子,
RHEL 6
PHP 5.3.3

PDO 安装了
freetds 安装了
pdo_dblib - 到目前为止没有运气安装

我的目标是在 sybase 中使用 PDO。试图从适当版本的 php 源代码安装 pdo_dblib。我尝试了多种方法并搜索了很多有关此主题的帮助,但尚未成功。

方法一

安装 freetds

$ ./configure
$ make
$ su root
Password: 
$ make install
Run Code Online (Sandbox Code Playgroud)

这是成功的

安装 pdo_dblib

在 /ext/pdo_dblib 文件夹中:

$ phpize
$ ./configure
$ make
$ make test
Run Code Online (Sandbox Code Playgroud)

错误输出:

PHP Warning:  PHP Startup: Unable to load dynamic library '/home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so' - /home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so: undefined symbol: php_pdo_register_driver in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so' - /home/sybase/Install_items/php_533_src/php-5.3.3/ext/pdo_dblib/modules/pdo_dblib.so: …
Run Code Online (Sandbox Code Playgroud)

php sybase pdo freetds rhel6

7
推荐指数
1
解决办法
7241
查看次数

FreeTDS:更改 freetds.conf 文件后是否需要重新启动任何内容?

freetds.log 文件使系统过载,因此我更改了 /etc/freetds.conf 中的调试标志:

    ;       dump file = /tmp/freetds.log
    #;      debug flags = 0xffff
    ;       debug flags = 0x80
Run Code Online (Sandbox Code Playgroud)

如何重新启动 freetds 或 unixodbc?即使我注释掉该dump file = /tmp/freetds.log行,也没有任何效果。

freetds

6
推荐指数
1
解决办法
1万
查看次数

使用 FreeTDS 连接到 MS SQL Server:错误 20002:“Adaptive Server 连接失败”

我正在尝试使用 FreeTDS 从 Linux 服务器 (RHEL v7) 连接到运行 MS SQL Server 2014 的单独服务器。但是,当尝试使用 tsql 连接时,我收到以下错误(错误消息取决于我是否包含用户名和密码):

$ tsql -S MYSERVER
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Error 20002 (severity 9):
        Adaptive Server connection failed
There was a problem connecting to the server
$ tsql -S MYSERVER -U myusername -P mypassword
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Error 20017 (severity 9):
        Unexpected EOF from the server
Error 20002 (severity 9):
        Adaptive Server …
Run Code Online (Sandbox Code Playgroud)

sql-server freetds

6
推荐指数
1
解决办法
2万
查看次数

连接到 MSSQL 数据库(PDO、FreeTDS、ODBC)

我有一台 Ubuntu 12.04 服务器,我正在尝试建立与 MSSQL 数据库的连接。

我已经成功使用tsqland连接isql,但osql不起作用,并且使用 PDO 与 PHP 连接也不起作用。我会尽力提供尽可能多的信息,如果您需要更多信息,请告诉我,我会的编辑。

freetds.conf

[MSSQL]
  host = TPSACC
  port = 54488
  tds version = 8.0
Run Code Online (Sandbox Code Playgroud)

odbc.ini

[MSSQL]
Description     = MS SQL connection to PRODUCTION database
Driver          = FreeTDS
Database        = PRODUCTION
Server          = TPSACC
UserName        = sa
Password        = pass
Trace           = No
TDS_Version     = 8.0
Port            = 54488
Run Code Online (Sandbox Code Playgroud)

odbcinst.ini

[FreeTDS]
Description = ODBC for Microsoft SQL
Driver      = /usr/local/lib/libtdsodbc.so
UsageCount  = 1 …
Run Code Online (Sandbox Code Playgroud)

php odbc pdo sql-server freetds

1
推荐指数
1
解决办法
2万
查看次数

标签 统计

freetds ×5

sql-server ×3

pdo ×2

php ×2

dbi ×1

odbc ×1

perl ×1

rhel6 ×1

sybase ×1