问题标签 [unixodbc]
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.
sql-server - 通过 isql 实用程序从 linux 客户端登录 sql server(windows 身份验证帐户)
我正在尝试从 Redhat 机器连接到在 Windows 上运行的 SQL Server。我可以通过“SQL Server”帐户登录服务器,但不能通过“Windows 身份验证”帐户登录。我尝试了各种技巧 - 但没有一个奏效:
我有 unixODBC 驱动程序,但没有 freetds。我应该仍然能够在没有 freetds 的情况下连接。还是无法仅使用 unixODBC 驱动程序连接?
- 我按照 Benny Hill 的建议安装了 freetds 并遵循了配置 - 我仍然无法让它工作。
odbc.ini:
odbcinst.ini (RedHat 安装 freetds 不自带Set Up
文件
现在,当我尝试连接时 - 我收到以下错误消息:
我什至无法SQL Server
通过 freetds 连接到帐户(如果没有 freetds 我可以) - 关于Windows Authentication
帐户我能说什么?
python - 用于猜测安装了哪个 ODBC 驱动程序管理器的 Python 脚本
我正在使用 distutils 分发一个 python C 扩展库,该库需要链接到用户系统中可用的 ODBC 驱动程序管理器(如果有)。对于 Windows,可以假设系统提供的管理器是要使用的管理器。然而,对于其他操作系统,有几个驱动程序管理器可用(主要是 iODBC 或 unixODBC)。
您是否知道一种方法来检测用户操作系统中安装了哪些,以便 setup.py 脚本可以动态选择那个?理想情况下,它适用于 Mac 和主流 Linux 发行版。
linux - RODBC 无法识别我的 odbc 设置
我在 Red Hat Linux 6 服务器上运行 R 2.15.2。我的目标是通过 RODBC 连接到另一台机器上的 MS SQL Server 数据库。我做了研究,从微软支持网站下载并安装了 Linux 版本的 MS SQL ODBC 驱动程序。我必须从源代码构建 unixODBC 版本 2.3.0,因为它是 Windows 驱动程序所必需的,并且不在 RHL 存储库中(存储库版本是 2.2.14)。
总之,经过一番努力,我终于把驱动安装好,配置好了,可以通过isql
命令成功连接到SQL Server数据库:
所以我知道我已经正确设置了我的odbc.ini
和文件。odbcinst.ini
但是,当我尝试从 R 中访问 ODBC 连接时,会发生以下情况:
这是odbcDataSources
R中命令的结果:
我一直在做一些研究,我认为解决方案(尽管我可能错了)可能与正确配置 ODBC 环境变量有关,以便 RODBC 知道去哪里查找odbc.ini
。根据我的研究,我发现了以下可能相关的环境变量:$ODBCINI, $ODBCSYSINI, $ODBC_ROOT $ODBC_INCLUDE, and $ODBC_LIBS.
我对这些应该设置的内容有一个合理的想法,但我不确定如何永久设置它们,以便 RODBC 可以识别在哪里找到相应的文件。
任何人都可以为我阐明这一点吗?我不确定我是否正确理解环境变量在 linux 中的工作原理,尤其是为什么isql
连接没有问题,但RODBC
甚至找不到驱动程序/数据源。
注意:当我安装了 unixODBC 的 repo 版本时,使用 R 中的命令可以很好地安装 RODBC install.packages('RODBC')
。但是,在我从源代码安装 unixODBC 2.3.0 后,由于依赖关系问题,RODBC 安装会失败,我不得不使用此处发布的指南从源代码安装 RODBC 。有没有可能我一开始就没有正确配置 ODBC,这就是我现在遇到麻烦的原因?
sql-server-2008 - 如何配置 pyodbc 以使用 freeTDS 和 unixODBC 正确接受来自 SQL Server 的字符串?
我无法从 MSSQL 服务器获取有效字符串到 python。我相信某处存在编码不匹配。我相信它位于 ODBC 层和 python 之间,因为我能够在 tsql 和 isql 中获得可读的结果。
pyodbc 期望什么字符编码?我需要在链中进行哪些更改才能使其正常工作?
具体例子
这是一个简化的python脚本作为示例:
这个脚本的输出是:
或者,如果脚本的最后一行更改为:
那么结果是:
使用tsql执行相同查询的脚本:
以及在isql中:
所以我早上一直在做这个工作,看起来高高低低,还没有弄清楚有什么问题。
细节
以下是版本详细信息:
- 客户端是 Ubuntu 12.04
- freetds v0.91
- unixodbc 2.2.14
- 蟒蛇2.7.3
pyodbc 2.1.7-1(来自 ubuntu 包)和 3.0.7-beta06(从源代码编译)
服务器是带有 SQL Server Express 2008 R2 的 XP
下面是客户端上几个配置文件的内容。
/etc/freetds/freetds.conf
/etc/odbcinst.ini
/etc/odbc.ini
sql-server - odbc 无法连接到 OS X Lion 上的 MSSQL 数据源
odbcisql
无法连接到数据源:
返回:
虽然tsql
可以:
返回:
$ cat ~/.freetds.conf
:
$ cat ~/.odbc.ini
:
$ cat ~/.odbcinst.ini
:
freetds
并且unixODBC
是在家安装的brew
。
我在 CentOS 上有类似的设置,并且 odbc isql 到 mssqlserver 工作正常。有一个明显的区别,我没有libtdsS.so
在 OS X 上看到安装。
# cat /etc/odbcinst.ini
在 CentOS 上:
这是问题的原因吗?
ps$ odbcinst -j
返回:
$ odbcinst -q -d
返回:
$ odbcinst -q -s
返回:
sql-server - bcp 实用程序不加载表但没有给出错误
我正在尝试使用包提供MSSQL-2008
的实用程序将文件中的一些数据导入数据库表。数据库在 Windows 机器上,我正在 Linux 机器上运行 bcp 命令。bcp
unixODBC-2.3.0
我遇到的问题是我在运行命令后没有得到任何响应,也没有在目标表中导入数据。我不知道出了什么问题,这是我正在使用的命令:
XX.XX.XX.XX
我的机器IP在哪里。指定的日志文件中没有输出,也没有错误。
当我从 Windows cmd 提示符下使用相同的 bcp 命令时,它工作正常。
sql-server - 如何在 unixODBC 中使用连字符指定数据库名称?
我有一个名为 pm-eng 的 SQL Server 数据库,需要从 linux 机器连接到该数据库。我已经设置了 unixODBC 并配置了我的 odbc.ini,如下所示:
当我使用 iSQL 进行测试时,连接时出现错误,提示“pm”数据库不存在。我尝试将数据库名称包装在 [] 和引号中,但没有成功。理想情况下,我只会更改数据库的名称,但在这种环境下这是不可能的。我已经用一个没有连字符的数据库名称验证了我的连接,它工作正常。是否可以使用带连字符的 DB 名称连接到 ODBC DSN?
unix - BASH sh 脚本
我想启动 BASH shell 脚本,但我的计算机在 Windows 7(64 位)上运行。有没有一种无需更改操作系统即可下载 UNIX 的方法。我该如何去下载 UNIX。谢谢
php - 计算 NULL 列时的 FreeTDS 无效游标状态
我在运行COUNT()
对包含 NULL 值的字段使用该函数的查询时遇到问题。
我正在将 FreeTDS v0.91 与 unixODBC、PHP 5.3.10 和 SQL Server 2008 一起使用。我有使用 7.2 协议的连接。我正在尝试运行以下查询:
仅当 Membership 中的每个 ProductCode 为空时,此查询才会引发错误。当我直接在 SQL Server 上运行它时,它会评估它应该如何(到 0)。
当我尝试从 FreeTDS 运行此查询时,我收到此错误:
SQLSTATE[24000]:无效游标状态:0 [FreeTDS][SQL Server]无效游标状态(SQLFetchScroll[0] at /builddir/build/BUILD/php-5.3.10/ext/pdo_odbc/odbc_stmt.c:537)
有谁知道为什么我会收到这个错误?我记得当我尝试一次循环遍历两个结果集时遇到了类似的错误,但这是一个查询。
当ProductCode
. 它似乎只有在结果COUNT()
为零时才会失败。
有谁知道可能导致此问题的原因或我该如何解决?
php - 如何测试空记录集
我正在使用 PHP ODBC 库连接到 MSSQL 2008 服务器 ( http://php.net/manual/en/ref.uodbc.php )。
我的一些存储过程不返回记录集(例如,它们只是进行插入或更新)。我希望能够在这种情况下优雅地处理输出。在进行数据库调用后,输出被注入到一个数组中,该数组返回给应用程序进行处理。以下是代码的关键部分(不包括错误处理等):
如果$sql_result
已成功执行,但不包含记录集(因为它会在插入或更新之后)然后odbc_fetch_array
触发此警告:
警告:odbc_fetch_row():此结果索引处没有可用的元组
理想情况下,我想先测试$sql_result
一下它是否包含空记录集,但我尝试过的每一次明显尝试总是会导致相同的警告消息。
任何人都有一种检查是否$sql_result
为空的简洁方法?