标签: freetds

MS SQL Server上的ODBC查询仅在PHP PDO(FreeTDS)中返回前255个字符

我目前正在尝试从SQL Server数据库视图中提取一些数据,这些数据是我们从Linux Web服务器限制访问的.

我们无需编辑数据,只需将其显示在网页中即可.

在我们尝试输出并且只获取文本字段的前255个字符之前,这一切看起来都很好.

有谁知道这是通过PHP :: PDO使用FreeTDS是否有问题,或者它是否应该正常工作?我见过其他人有类似的问题,但似乎没有很多答案.

我正在使用它作为MS SQL db的连接字符串:

$dbConn = new PDO("odbc:Driver=FreeTDS;DSN=OURDSN;UID=WWWUser;PWD=ourpassword");
Run Code Online (Sandbox Code Playgroud)

php sql-server odbc pdo freetds

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

FreeTDS - tsql连接,isql失败

我正在尝试连接到我的主机上的数据库(windows xp,sql server 05).我的客户机是Ubuntu 10.04.我可以使用tsql连接和执行命令,但是isql失败.以下是我的配置文件和错误消息.

freetds.conf

text size = 64512

[SQLEXPRESS]
host = 192.168.163.1
port = 1433
tds version = 7.0
Run Code Online (Sandbox Code Playgroud)

ODBCINST.INI

[FreeTDS]
Description     = TDS driver (Sybase/MS SQL)
Driver          = /usr/lib/odbc/libtdsodbc.so
Setup           = /usr/lib/odbc/libtdsS.so
CPTimeout       =
CPReuse         =
FileUsage       = 1
Run Code Online (Sandbox Code Playgroud)

ODBC.INI

[SQLEXPRESS]
Driver          = FreeTDS
Description     = ODBC connection via FreeTDS
Trace           = No
Servername  = 192.168.163.1
Database        = SCOPE_Peel
Port        = 1433
UID         = sa
PWD         = test1234
ReadOnly    = No
Run Code Online (Sandbox Code Playgroud)

TSQL:

tsql -S SQLEXPRESS  -U sa …
Run Code Online (Sandbox Code Playgroud)

ruby linux sql-server freetds isql

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

尝试从tsql连接到sql-azure时,从服务器读取失败

我正在尝试从Ubuntu 12.04连接到SQL-Azure.

我用openssl和libiconf编译了freeTds-0.91

tsql -H XXXXXXXX.database.windows.net -U Username -D DatabaseName -p 1433 -P Password
Run Code Online (Sandbox Code Playgroud)

我尝试使用上面的语句连接,我收到此错误:

locale is "en_ZA.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Default database being set to DatabaseName
Error 20004 (severity 9):
    Read from the server failed
    OS error 104, "Connection reset by peer"
Error 20002 (severity 9):
    Adaptive Server connection failed
There was a problem connecting to the server
Run Code Online (Sandbox Code Playgroud)

我的tsql -C输出:

Compile-time settings (established with the "configure" script)
                        Version: freetds v0.91
         freetds.conf directory: /usr/local/etc
 MS …
Run Code Online (Sandbox Code Playgroud)

freetds azure-sql-database

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

freeTDS bash:在Microsoft SQL Server中执行sql查询

我可以通过Mint Linux VM使用freeTSD和命令行连接到Microsoft SQL Server 2008实例,以在其上执行sql语句.现在我想在bash脚本中自动执行此操作.我能够成功登录我的bash脚本:

TDSVER=8.0 tsql -H servername -p 1433 -D dbadmin -U domain\\Administrator -P password
Run Code Online (Sandbox Code Playgroud)

然后我有我的SQL查询:

USE dbname GO delete from schema.tableA where ID > 5 GO delete from schema.tableB where ID > 5 GO delete from schema.tableC where ID > 5 GO exit
Run Code Online (Sandbox Code Playgroud)

这通过freeTSD命令行手动执行时有效,但是当我放入bash文件时则不行.我关注这篇文章:freeTSD&bash.

这是我的bash脚本示例:

echo "USE dbname GO delete from schema.tableA where userid > 5 go delete from schema.tableB where userid > 5 go delete from schema.tableC where ID > 5 GO exit" …
Run Code Online (Sandbox Code Playgroud)

t-sql linux bash shell freetds

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

freetds和pyodbc无法连接

我目前正在设置从Linux机箱到Microsoft SQL服务器的连接.我在Linux机器上安装了FreeTDS和pyodbc.

我已经设置了以下文件:/etc/freetds/freetds.conf

[sqlserver]
    host = <ip address>
    port = 1433
    tds version = 8.0
    client charset = UTF-8
Run Code Online (Sandbox Code Playgroud)

〜/ .odbc.ini的

[sqlserver]
Description     = FreeTDS MSSQL
Driver          = FreeTDS
Servername      = <same ip as above> 
Database        = Reports
TDS_Version     = 8.0
Run Code Online (Sandbox Code Playgroud)

/etc/odbcinst.ini

[FreeTDS]
Description             = FreeTDS MSSQL
Driver                  = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Driver64                = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup                   = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
Setup64                 = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
UsageCount              = 1
CPTimeout               = 
CPTimeToLive            = 
DisableGetFunctions     = 
DontDLCLose             = 
ExFetchMapping          = 
Threading               = 
FakeUnicode             = 
IconvEncoding           = 
Trace                   = …
Run Code Online (Sandbox Code Playgroud)

linux sql-server pyodbc freetds

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

无法使用 FreeTDS 连接到 Docker 容器内的 Microsoft SQL Server

我想使用 Docker for Windows 在我的公司网络上托管 Shiny 应用程序。

如何设置 Docker、odbc.ini、odbcinst.ini、freetds.conf 或其他可能的文件,以便我的 Shiny 应用程序可以从内部 Microsoft SQL Server (2016) 数据库查询数据?数据库服务器不在运行 Docker 容器的同一台机器上运行。

我不知道我是否需要更新版本的 FreeTDS 或者我是否错误配置了其中一个文件。我尝试将 IP 地址用于服务器而不是sql-server.host.com在所有文件中,但在下面收到相同的错误消息。

$tsql -C输出:

Compile-time settings (established with the "configure" script)
                            Version: freetds v1.00.104
             freetds.conf directory: /etc/freetds
     MS db-lib source compatibility: no
        Sybase binary compatibility: yes
                      Thread safety: yes
                      iconv library: yes
                        TDS version: 4.2
                              iODBC: no
                           unixodbc: yes
              SSPI "trusted" logins: no
                           Kerberos: yes
                            OpenSSL: no
                             GnuTLS: yes
                               MARS: no
Run Code Online (Sandbox Code Playgroud)

$odbcinst -j …

sql-server r freetds shiny docker

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

FreeTDS奇怪的日期时间格式

使用更新的软件将应用程序移动到新服务器后(从php 5.2.17 - > 5.3.15移动,FreeTDS 0.64 - > 0.82)

SELECT GETDATE()
Run Code Online (Sandbox Code Playgroud)

和任何其他日期时间函数/列产生类似于:

2012-06-219 51:527:
// proper time: 2012-08-06 09:33:02
Run Code Online (Sandbox Code Playgroud)

我知道我可以convert在select 中使用,但是在DB中有许多存储过程我无法更改.

我试图改变/etc/locales.conf和设置date format = %Y-%m-%d %H:%M:%S,并使用ini_set('mssql.datetimeconvert',1);但freetds似乎忽略它并返回Aug 06 2012 09:33AM

有没有办法以标准格式检索日期时间列,而无需修改每个查询?

php freetds

5
推荐指数
1
解决办法
3012
查看次数

Heroku FreeTDS,如何将Rasil SQL Server与带有Multi Buildpacks的TinyTDS一起使用

我必须使用我的Rails 4.2.3中的"Tiny TDS"宝石,当然还有Heroku的cedar-14,我不能,因为FreeTDS已不再使用了.

如何在Heroku cedar-14上使用FreeTDS?

我正在网上看,我发现了这个:

https://github.com/foraker/heroku-buildpack-freetds

他说使用"heroku-buildpack-multi",这个:https://github.com/ddollar/heroku-buildpack-multi

但我不明白怎么做!

我必须在我的本地电脑上创建".buildpacks"文件?

然后我必须"git push heroku master"?

这个程序今天仍然有效吗?

或者我必须使用它:https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app

请帮帮我,谢谢.

更新:

我发现如何使用以下方法在Heroku上安装FreeTDS:

https://github.com/eltiare/heroku-buildpack-freetds
Run Code Online (Sandbox Code Playgroud)

有了这个:

https://github.com/ddollar/heroku-buildpack-multi
Run Code Online (Sandbox Code Playgroud)

用这个.buildpacks:

https://github.com/eltiare/heroku-buildpack-freetds.git#master
https://github.com/heroku/heroku-buildpack-ruby.git#master
Run Code Online (Sandbox Code Playgroud)

但是现在,在部署之后,我收到了一个错误:

/app/vendor/bundle/ruby/2.1.0/gems/activesupport-4.2.3/lib/active_support/dependencies.rb:274:in `require': libsybdb.so.5: cannot open shared object file: No such file or directory - /app/vendor/bundle/ruby/2.1.0/extensions/x86_64-linux/2.1.0-static/tiny_tds-0.6.2/tiny_tds/tiny_tds.so (LoadError)
Run Code Online (Sandbox Code Playgroud)

和应用程序崩溃.

怎么修?

这些是日志:

部署:

Deleting 2 files matching .slugignore patterns.
Fetching custom git buildpack... done
Multipack app detected
Downloading Buildpack: https://github.com/eltiare/heroku-buildpack-freetds.git
=====> Detected Framework: FreeTDS
Installing freetds into /tmp/build_5e53a70f18da19be7f6defafbfad826b/vendor/freetds
  % Total …
Run Code Online (Sandbox Code Playgroud)

ruby heroku freetds tiny-tds ruby-on-rails-4

5
推荐指数
1
解决办法
493
查看次数

启用FIPS会导致libgcrypt错误

我有两台CentOS 6.7机器(服务器A和B).每个系统上都安装了相同的软件包版本.

上周我在服务器A上启用了openSSH FIPS 140-2模块,该系统完美运行(包括对SQL Server实例的tsql查询).

今天我在服务器B上执行了相同的步骤(在上面的链接中).重新启动后,fips显示已启用并已测试正常 - 但tsql(对于同一SQL Server实例)已停止使用以下错误:

[serverB ~]# tsql -S egServer80 -U myusername
Password: 
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
Run Code Online (Sandbox Code Playgroud)

我查看日志文件并找到:

tsql: Libgcrypt warning: MD5 used - FIPS mode inactivated
Run Code Online (Sandbox Code Playgroud)

在freetds中启用调试会产生以下额外错误:

14:56:46.617196 3577 (net.c:1366):'''handshake failed: GnuTLS internal error.
Run Code Online (Sandbox Code Playgroud)

退出FIPS模块(从grub.conf中删除fips = 1)并重新启动设置回来,我又能够tsql进入我的SQL Server实例.

两个CentOS机器都使用相同的libgcrypt版本(1.4.5).

为什么(或如何)在grub中启用FIPS导致libgcrypt在这台机器上失败? 显然,机器之间的某些配置是关闭的,但我无法发现它,并且已经耗尽了资源以找到下一步的位置.


注意#1:

我可以 …

centos fips freetds libgcrypt

5
推荐指数
0
解决办法
291
查看次数

无法在Windows上安装pymssql

我正在尝试安装pymssql

pip install pymssql
Run Code Online (Sandbox Code Playgroud)

我有Windows 7和python 3.5(来自anaconda)但我得到了

Failed building wheel for pymssql
Run Code Online (Sandbox Code Playgroud)

我相信它与freetdspython-dev.有关.我如何在Windows上安装这些?

我需要安装哪些包?这个pip安装适用于python 2.7.如果点不起作用,还有其他方法可以下载并安装pymssql吗?

python freetds pymssql python-3.5

5
推荐指数
1
解决办法
4782
查看次数