问题标签 [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.
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。
我需要做什么才能让这些查询成功返回?
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吗?(我将如何格式化?)
python - Python - Linux - 使用 Windows 凭据连接到 MS SQL - FreeTDS+UnixODBC + pyodbc 或 pymssql
似乎没有任何很好的设置说明。有没有人有什么好的指示?我是一个 linux 菜鸟,所以要温柔。我确实看到了另一篇类似的帖子,但没有真正的答案。
我有几个问题。
FreeTDS“似乎”没有工作。我正在尝试连接,并使用“tsql”命令收到以下消息:“默认数据库被设置为 databaseName 连接到服务器时出现问题”,但没有提及问题所在。
尝试使用 pyodbc 连接时出现的错误是:“pyodbc.Error: ('08S01', '[08S01] [unixODBC][FreeTDS][SQL Server]Unable to connect: Adaptive Server 不可用或不存在 ( 20009) (SQLDriverConnectW)')"
我尝试使用 pymssql 进行类似的操作,但遇到了类似的问题。我不断收到无法连接的错误,但它没有告诉我原因。
sql-server - FREETDS 和 UNIXODBC 字符转换
我有一个错误要修复。它的:
当我使用土耳其语字符插入时,出现此错误。我的问题是如何禁用转换的东西?我通过 freetds 和 unixodbc 连接到 sql server。
谢谢..
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
我想尽可能保持清洁。
这是重现该问题的代码:
这是我得到的回溯:
python - sql server 函数原生参数绑定错误
我在 Ubuntu 10.04 Lucid LTS 上使用以下软件堆栈连接到数据库:
- python 2.6.5 (ubuntu 包)
- pyodbc git 主干提交
eb545758079a743b2e809e2e219c8848bc6256b2
- unixodbc 2.2.11 (ubuntu 包)
- freetds 0.82 (ubuntu 包)
- 带有 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))
- 此错误后连接变得非常不稳定,您无法恢复。
- 尝试绑定任何类型的数据时都会发生错误。
我怎样才能进一步追求这个?我想对函数参数进行本机绑定。
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 负责人中修复。
python - FreeTDS 将 MS SQL 货币类型转换为 python 浮点数,而不是十进制
我正在 Linux 中从 Python 连接到 MS SQL Server 数据库。我正在使用 FreeTDS 驱动程序通过 pyodbc 进行连接。当我从 MSSQL 返回一个货币字段时,它以浮点数的形式出现,而不是 Python 十进制。
问题在于 FreeTDS。如果我从 Windows(我不需要使用 FreeTDS)运行完全相同的 Python 代码,pyodbc 返回一个 Python 十进制。
在 Linux 中运行代码时,如何取回 Python Decimal?
php - PHP MS SQL Unix 驱动程序 - Microsoft 或 FreeTDS
我正在运行 LAMP 服务器,但现在需要连接到 MS SQL(客户端请求)。我听说微软有驱动程序,但无法验证是否
有谁知道微软驱动程序是否可用于 Unix?如果没有,我应该坚持使用 FreeTDS 吗?这似乎是PHP推荐的,但是似乎缺少安装文档。任何一个方向都将不胜感激。
对于一般性问题,我很抱歉,我不熟悉设置 PHP 驱动程序。
更新
只是为了一些背景故事,我正在从 LAMP 服务器运行一个 Intranet,但需要连接到外部 MS SQL DB 服务器(当然是 Windows)上的数据源。我正在运行 PHP5。
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 字段的任何想法?