问题标签 [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.

0 投票
1 回答
3365 浏览

sqlite - 如何使用 pyodbc 和 unixODBC 连接到 sqlite3 db?

我不知道如何使用 pyodbc 连接到 sqlite 数据库。我设置了 DSN,可以通过 isql 连接到它而不会出现问题。

像魅力一样工作,但是

给出以下错误消息:

我还在https://code.google.com/p/pyodbc/wiki/GettingStarted的示例中尝试了大量的连接字符串排列,但无济于事。

是否列出了我尝试连接的 dsn 以及保存 libsqlite3odbc.so 路径的值

我想我错过了一些明显的东西,但我不知道是什么......

编辑:使用 unixODBC 2.3.0、python 2.7.1、sqliteodbc 0.88 和 pyodbc 2.1.8 编辑:我想使用 pyodbc 的原因是为了移植到 Windows 和 MS Access

0 投票
1 回答
452 浏览

php - 使用 odbc_exec 成功下载 PHP 页面而不是渲染是

我有一个非常奇怪的问题。我正在使用 unixODBC 和 FreeTDS 连接到 MSSQL 服务器。

如果我使用导致有效查询的 odbc_exec 执行 SQL 命令,而不是呈现 PHP,我会收到下载我的 php 文件的提示,如果我接受该文件,最终会下载一个空文件。

如果我故意用格式不正确的语句破坏我的 SQL,页面会成功呈现并显示错误语句。

如果我使用命令行 isql 连接到我的数据库并运行查询,我能够在命令行级别获得结果。

CentOS 5.5 64位

微软 SQL 2005 SP3

unixODBC 2.3.0

免费TDS 0.82

PHP 5.3.5

0 投票
2 回答
7076 浏览

python - pyodbc 如何确定编码?

到目前为止,我正在与 Python(和 Twisted)一起使用 Sybase SQL Anywhere 12 数周,我什至让我的东西正常工作。

只剩下一个烦恼:如果我在 CentOS 5 上使用自定义 Python 2.7.1(这是部署平台)运行我的脚本,我得到的结果是UTF-8

如果我在我的 Ubuntu 机器(Natty Narwhal)上运行它,我会在latin1中得到它们。

不用说,我更愿意以 Unicode 格式获取我的所有数据,但这不是这个问题的重点。:)

两者都是 64 位的盒子,都有自定义的 Python 2.7.1。使用 UCS4 和自定义构建的 unixODBC 2.3.0。

我在这里不知所措。我找不到任何文档。是什么让 pyodbc 或 unixODBC 在这两个盒子上表现不同?

确凿的事实:

  • 蟒蛇:2.7.1
  • 数据库:SQL 无处不在 12
  • unixODBC:2.3.0(2.2.14 的行为相同),使用相同的标志自编译
  • ODBC 驱动程序:来自 Sybase。
  • CentOS 5 给了我 UTF-8,Ubuntu Natty Narwhal 给了我 latin1。

我的 odbc.ini 看起来像这样:

我只使用 DNS='sybase' 进行连接。

蒂亚!

0 投票
1 回答
1326 浏览

c++ - unixODBC C++ 文档...?

我找不到任何东西。

我发现的只是:http: //libodbcxx.sourceforge.net/但这对我来说不是正确的文档。我有一个用于 C++ 的 UnixODBC 库,但找不到任何文档

我在标题中有这个:

但是 sourceforge 中的文档完全不同 - 宏(或类似的东西SQL_SUCCEEDED)是相同的,但类的名称不同,例如,ODBCStatement.his ODBCStatement, not odbc::Statement, also odbc::ErrorHandlerisODBCHandle等中的类。我有一些类中奇怪的成员函数,ODBCStatement如:doBindParameter、、、等doPreparedoExecute而谷歌对它们一无所知............

有任何想法吗?

PS我正在维护一个产品,其中代码不是我编写的。

0 投票
5 回答
14294 浏览

php - 从 linux 上的 php 连接到 MS Access 远程 .mdb 文件

我已经在互联网上挖掘了几天,阅读了非常古老的信息,这导致了非常古老且不存在的站点,但我仍然明白,实现我的目标需要什么。

  1. 我们在运行 WindowsXP 的服务器上有一个 file.mdb,所以我需要将它添加到 ODBC 数据源。我通过简单的步骤来做到这一点,最后是“系统 DSN”,它允许访问那个 .mdb 文件
  2. 我需要在同一台服务器上安装某种 ODBC 桥,这将允许我创建到该服务器的远程连接,使该桥连接到服务器 ODBC DSN,并查询我的东西(找不到任何免费的 ODBC 桥)
  3. 在 UNIX (FreeBSD) 机器上,我需要安装 unixODBC 和 php5-odbc 包,启用与 ODBC 的连接(已安装)
  4. 要连接到远程 ODBC 并使用 MS Access db 驱动程序,我需要有一个用于 unixODBC 的驱动程序,在 .so 文件中,它位于 UNIX 机器内(找不到任何免费的 MS Access 驱动程序)
  5. 使用 PHP odbc_connect(DSN,user,password) 连接到该服务器,在 DSN 中我需要提供一些我需要使用的连接信息和驱动程序(MS Access 驱动程序)。

纠正我,如果我弄错了,请给我更多建议,如何实现这种连接。

0 投票
1 回答
1378 浏览

php - ODBC 列长度限制

我正在通过 ODBC 和 PHP 使用 InterSystems Cache 数据库。

我遇到了关于列名长度和列名文本中返回的无效字符的问题。

如果列(字段)名称的长度超过 31 个字符,则返回的列名称包含无效字符。

截图 1

如果我明确定义最多 31 个字符的字段名称:

无效字符不再出现

截图 2

有没有其他人遇到过这个问题或类似的问题。

任何帮助是极大的赞赏。

提前致谢!

麦克风

0 投票
2 回答
2305 浏览

mysql - 使用unixodbc驱动连接mysql,默认数据库不工作

我有我的 unixodbc odbc.ini 配置文件,如下所示:

问题是它不会使用上面指定的数据库,即“测试”。

我要做的是手动执行直接sql来更改数据库并运行我的查询:

关于我应该如何摆脱 mysql 命令的“使用测试”的任何想法。为什么 unixodbc 没有将 'test' 设置为默认数据库,因为它已经在 conf 文件中指定?

0 投票
1 回答
424 浏览

c - 与 unixODBC C API 等效的 RaiseError(PERL、DBI)?

我在 INFORMIX DB 中执行一些存储过程/函数时遇到问题。我尝试了不同的客户端,它们都是相同的——没有人在执行时检测到错误,而不是这个——返回空响应。这对我不起作用。

最后,我发现可以PERL DBI选择 set RaiseError,例如:

这很完美。unixODBC C API但是对于lib ,是否有这样的等价物(不幸的是,我找不到任何东西) ?


另外:我尝试了相同的查询,isql结果是一样的!没有错误,只是空结果:\也许它可能是一些选项,应该配置(在odbc.ini,我猜..)?


编辑:好的,这里有更多细节:
版本:unixODBC 2.3.0

isql和的结果ODBC C API是一样的。以下是有关的更多信息C API

一切呼唤SQLMoreResults归来SQL_NO_DATA,一切SQLFetch归来SQL_ERROR

摘要 - 对错误过程的所有调用都很好 - 返回错误。但如果此错误在存储函数中- 未检测到错误;而不是这个 - 返回 EMPTY 字符串。出局!

SQL_SUCCESS_WITH_INFO不返回任何地方许多其他错误也是如此(当然,这只是一个示例)


甚至更多!过程或功能如:

不返回任何错误,而 Aqua DB 工作室返回


回答:

我会接受 bohica 的回答,因为它是正确的,并且它对这部分的回答是正确的PERL DBI。此外,他真的帮助了我(命中strace)。

无论如何,真正的解决方案不在这里。我已将其发布在相关问题中,该问题对特定情况更为具体和孤立:在存储的**过程**中检测到相同的错误,但在存储的**函数**中未检测到

0 投票
3 回答
1363 浏览

c - 在存储的**过程**中检测到相同的错误,但在存储的**函数**中未检测到

这个问题与我之前的问题有关:RaiseError (PERL, DBI) equivalent for unixODBC C API?

当我稍后隔离问题时,我将发布新问题,即更具体、更孤立且没有不必要的信息。


版本:unixODBC 2.3.0
库:unixODBC - C API

假设我有一个存储的 FUNCTION

相同的主体,但在存储的 PROCEDURE中:

正如你所看到的,它们是完全一样的。调试文件的路径错误,因此预计会出错。当我call func()Aqua Data Studio错误中执行时检测到:

对于call proc(1).

但是SQLExecute当我通过 unixODBC(使用)执行这两个调用时

返回SQL_ERROR(这是预期的并且很好),而

返回SQL_SUCCESS.. 'result is set here'不返回,返回空字符串( ),而不是''..

执行call func()给出相同的结果,如execute function func();

调用SQLMoreResults返回SQL_NO_DATASQLFetch返回SQL_ERROR

有任何想法吗?

0 投票
5 回答
4013 浏览

php - 无法让 odbc 在 apache 中工作

我使用 apt-get install 安装了 unixODBC,现在当我尝试使用 odbc_connect() 时仍然出现此错误。

我需要做些什么来配置它以使用 php?我一直在网上寻找,但我无法弄清楚。