问题标签 [freetds]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1115 浏览

perl - FreeTDS 用完 DBD::Sybase 的内存

当我添加

在我的 freetds.conf 文件中,我的 DBD::Sybase 程序发出:

并终止。当我在返回任何 ntext 字段的 SQL 查询语句上调用 execute() 时,就会发生这种情况。我可以很好地返回数字数据、日期时间和 nvarchars,但是只要输出字段之一是 ntext,我就会收到此错误。

如果没有 UTF-8 设置,所有这些查询都可以正常工作,但我确实需要处理一些在默认字符集下引发警告的字符。(见相关问题。)

错误消息的格式与其他 DBD::Sybase 错误消息的格式不同。不过,我确实收到一条消息,指出正在发出 rollback()。(我的错误 AutoCommit 标志受到尊重。)我想我在某处读到 FreeTDS 使用 iconv 程序在字符集之间进行转换;是否有可能从 iconv 发出此消息?

如果我在 tsql(FreeTDS 的命令行 SQL shell)中使用相同的 freetds.conf 设置执行相同的查询,我不会收到错误消息。

我正在连接到 SQL Server。

我需要做什么才能让这些查询成功返回?

0 投票
2 回答
2925 浏览

sql-server - linux上的Django-pyodbc SQL Server/freetds服务器连接问题

错误: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnectW)')

我正在从 Windows 开发机器上的开发迁移到生产中的 Linux 机器,并且我遇到了 freetds 驱动程序的问题。据我所知,错误消息意味着它找不到驱动程序。我可以通过 cli 通过 sqsh 和 tsql 进行连接。我已经设置了我的 settings.py 。

有人对 django 有任何 SQL Server 经验吗?我必须使用dns吗?(我将如何格式化?)

0 投票
3 回答
4563 浏览

python - Python - Linux - 使用 Windows 凭据连接到 MS SQL - FreeTDS+UnixODBC + pyodbc 或 pymssql

似乎没有任何很好的设置说明。有没有人有什么好的指示?我是一个 linux 菜鸟,所以要温柔。我确实看到了另一篇类似的帖子,但没有真正的答案。

我有几个问题。

  1. FreeTDS“似乎”没有工作。我正在尝试连接,并使用“tsql”命令收到以下消息:“默认数据库被设置为 databaseName 连接到服务器时出现问题”,但没有提及问题所在。

    1. 尝试使用 pyodbc 连接时出现的错误是:“pyodbc.Error: ('08S01', '[08S01] [unixODBC][FreeTDS][SQL Server]Unable to connect: Adaptive Server 不可用或不存在 ( 20009) (SQLDriverConnectW)')"

    2. 我尝试使用 pymssql 进行类似的操作,但遇到了类似的问题。我不断收到无法连接的错误,但它没有告诉我原因。

0 投票
2 回答
7721 浏览

sql-server - FREETDS 和 UNIXODBC 字符转换

我有一个错误要修复。它的:

当我使用土耳其语字符插入时,出现此错误。我的问题是如何禁用转换的东西?我通过 freetds 和 unixodbc 连接到 sql server。

谢谢..

0 投票
3 回答
983 浏览

python - 使用 mssql 进行 0.6 迁移中的 sqlalchemy 日期类型

我在 linux ubuntu 10.04 上通过 pyodbc,通过 FreeTDS odbc 驱动程序连接到 mssql 服务器。

Sqlalchemy 0.5DATETIME用于sqlalchemy.Date()字段。

现在 Sqlalchemy 0.6 使用DATE,但 sql server 2000 没有DATE类型。我怎样才能成为sqlalchemy 0.6方言DATETIME的默认设置?sqlalchemy.Date()mssql+pyodbc

我想尽可能保持清洁。

这是重现该问题的代码:

这是我得到的回溯:

0 投票
1 回答
1380 浏览

python - sql server 函数原生参数绑定错误

我在 Ubuntu 10.04 Lucid LTS 上使用以下软件堆栈连接到数据库:

  1. python 2.6.5 (ubuntu 包)
  2. pyodbc git 主干提交eb545758079a743b2e809e2e219c8848bc6256b2
  3. unixodbc 2.2.11 (ubuntu 包)
  4. freetds 0.82 (ubuntu 包)
  5. 带有 Microsoft SQL Server 2000 (8.0) 的 Windows

尝试在 SQL SERVER 函数的参数中执行本机参数绑定时出现此错误:

这是复制代码:

现在该函数已创建。如果我尝试在查询中直接使用值调用它(没有值的本机绑定),它可以正常工作:

但是,当我尝试进行本机绑定时(通过使用参数占位符并分别传递值),我得到了上面的错误:

进一步的调查揭示了一些我想联系的奇怪的东西:

  • 如果我将 TDS 版本更改为 4.2,一切正常(但是,来自 sql server 的版本报告是错误的——使用4.2我得到 的 TDS 版本'95.08.0255'而不是真实版本'08.00.0760')。
  • 其他两种类型的函数一切正常 -> 返回值的函数和只是 SELECT 查询(如视图)的函数都可以正常工作。您甚至可以定义一个新函数,该函数返回对另一个(损坏的)函数的查询结果,这样一切都会正常工作,即使在对参数进行本机绑定时也是如此。例如:CREATE FUNCTION fn_tempFunc(@testparam varchar(4)) RETURNS TABLE AS RETURN (SELECT * FROM fn_FuncTest(@testparam))
  • 此错误后连接变得非常不稳定,您无法恢复。
  • 尝试绑定任何类型的数据时都会发生错误。

我怎样才能进一步追求这个?我想对函数参数进行本机绑定。

0 投票
2 回答
2924 浏览

python - 用 Python 做会计的最佳实践

我正在编写一个 web2py 应用程序,该应用程序需要对美元金额求和而不会丢失精度。我意识到我需要为此使用小数,但我发现自己必须将我从数据库中获得的每个数字包装起来:

Decimal(str(myval))

在我疯狂地将它添加到我的所有代码之前,有没有更好的方法?我是 Python 新手,所以我很可能忽略了一些明显的东西。

编辑:我的数据库是 MS SQL Server,我将金额存储在 SQL Servermoney字段中(我相信实现类似于 Decimal,即整数数学,而不是浮点数)。

我通过 web2py 框架(pyodbc用于 SQL Server 连接)连接到数据库。我相信 web2py 对十进制类型有一些支持。例如,我的 web2py 字段定义如下所示:Field('Amount','decimal(19,4)') 但是,当我使用 web2py 的.executesql方法从数据库返回一个值时,它返回的值是 afloat而不是 a Decimal

编辑:这似乎是 FreeTDS 和 MS SQL Server 的问题。正如 Massimo 在评论中所说,web2py 正确支持这一点并返回一个 Decimal (如果可以的话)。事实证明,这只是我的生产环境(Linux)中的一个问题。我正在使用 FreeTDS 驱动程序连接到 MS SQL,它似乎正在将 MS SQL 货币类型转换为 python 浮点数。

我认为 Alex Martelli 的回答指向了正确的方向。有人对 FreeTDS、MS SQL 和 python 有任何经验吗?我认为这可能需要它自己的问题,所以我会移动这个讨论......(这里发布的新问题:FreeTDS translate MS SQL money type to python float, not Decimal

更新:实际上 FreeTDS 中存在一个错误。截至 2010 年 8 月 4 日, 此问题已在 FreeTDS 的 CVS 负责人中修复。

0 投票
2 回答
1187 浏览

python - FreeTDS 将 MS SQL 货币类型转换为 python 浮点数,而不是十进制

我正在 Linux 中从 Python 连接到 MS SQL Server 数据库。我正在使用 FreeTDS 驱动程序通过 pyodbc 进行连接。当我从 MSSQL 返回一个货币字段时,它以浮点数的形式出现,而不是 Python 十进制。

问题在于 FreeTDS。如果我从 Windows(我不需要使用 FreeTDS)运行完全相同的 Python 代码,pyodbc 返回一个 Python 十进制。

在 Linux 中运行代码时,如何取回 Python Decimal?

0 投票
2 回答
2220 浏览

php - PHP MS SQL Unix 驱动程序 - Microsoft 或 FreeTDS

我正在运行 LAMP 服务器,但现在需要连接到 MS SQL(客户端请求)。我听说微软有驱动程序,但无法验证是否

有谁知道微软驱动程序是否可用于 Unix?如果没有,我应该坚持使用 FreeTDS 吗?这似乎是PHP推荐的,但是似乎缺少安装文档。任何一个方向都将不胜感激。

对于一般性问题,我很抱歉,我不熟悉设置 PHP 驱动程序。

更新

只是为了一些背景故事,我正在从 LAMP 服务器运行一个 Intranet,但需要连接到外部 MS SQL DB 服务器(当然是 Windows)上的数据源。我正在运行 PHP5。

0 投票
1 回答
655 浏览

zend-framework - 停止 Zend_Db 引用 Sybase BIT 数据类型字段值

我正在对 Sybase 数据库使用 Pdo_Mssql 适配器并解决遇到的问题。剩下的一个令人讨厌的问题是 Zend_Db 引用 BIT 字段值的实例。为插入运行以下命令时:

$row = $this->createRow(); ... $row->MyBitField = $data['MyBitField']; ... $行->保存();

FreeTDS 日志输出显示:

dbutil.c:87:msgno 257:“不允许从数据类型 'VARCHAR' 到 'BIT' 的隐式转换。使用 CONVERT 函数运行此查询。

我尝试将值转换为 int 和 bool,但这似乎是表元数据问题,而不是输入的数据类型问题。

幸运的是,Zend_Db_Expr 运行良好。以下工作,但我想成为数据库服务器不可知论者。

$row->MyBitField = new Zend_Db_Expr("CONVERT(BIT, {$data['MyBitField']})");

我已经验证 describeTable() 正在为该字段返回 BIT。关于如何让 ZF 停止引用 MS SQL/Sybase BIT 字段的任何想法?