问题标签 [pypyodbc]

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 投票
0 回答
71 浏览

python - 与数据库的打开连接数

我想算数。当前使用 ms-access 数据库打开的连接数。

例如,两个应用程序正在使用同一个数据库。那我怎么才能得到这个计数?pypyodbc 中是否有 ms-access 功能或任何设施?

使用 pypyobdc,我怎么能得到不。与数据库的开放连接?

0 投票
1 回答
162 浏览

python - unix odbc 和 pypyodbc 返回的奇怪结果

我已设置 odbc 来查询 Microsoft SQL 服务器实例。我的 SQL 语句可以从命令行运行isql;但是,当我在pypyodbc结果中使用相同的查询时是不正确的。我的查询的独特之处在于我有一个嵌套的左连接。

数据集基本上是一些用户登录信息;所以我有一个设备表(硬件)、一个节点表(软件)和一个用户表(谁登录到节点)。

我的嵌套左连接所做的是为每个登录到设备/节点的用户创建一个新结果,当然,如果没有人登录,则不返回任何用户信息。正如我所提到的,SQL 语句在命令行上工作。只是不在我的 python 脚本中-它从 python 脚本中附加了一个用户,而命令行中没有。有人可以帮我解释一下吗?

我的 SQL 查询:

我的 Python 代码:

0 投票
0 回答
1420 浏览

python - SQLAchemy 永远无法在行中找到指定的列

我是 SQLAlchemy 的新手(但不是一般的 ORM)并且遇到了一个问题,我实际上无法做任何有用的事情。我所能做的就是对我的查询进行硬编码,这就是我想要做的。

这正是我正在尝试做的事情(请参阅 Python 评论以了解哪些工作/不工作 -

我得到的错误是sqlalchemy.exc.NoSuchColumnError: "Could not locate column in row for column 'Items.Id'".

生成的 SQL 是正确的 -

我知道我指向正确的数据库,因为如果我更改__tablename为不存在的东西,我会收到无效的对象名称错误。为什么 SQLAlchemy 找不到我的列?

0 投票
1 回答
37159 浏览

python - 如何将 .accdb 文件导入 Python 并使用数据?

我正在尝试找出一种方法来创建一个程序,该程序允许我根据几个不同的因素找到最佳的数据组合。

我有一个包含生物数据的 Microsoft Access 文件。攻击,防御,健康,使用所需的战斗技能和其他一些信息。

我正在尝试导入此 .accdb (Access 2013) 文件并能够访问存储的数据。

我将尝试编写一个程序,扫描所有数据并运行所有可能的组合(5 个生物组),以找到不同所需战斗技能的最强生物组合(例如:100 个战斗技能将使用生物 1、2、 3、4和5,其中125战斗技能将使用生物3、5、6、8和10)

我首先需要帮助的主要事情是能够导入数据库以便于访问,因此我不必在 python 中重新创建数据,因此我可以在未来将相同的程序用于新的访问数据库。

我已经安装了https://code.google.com/p/pypyodbc/但似乎无法弄清楚如何让它加载现有文件。

编辑

我尝试使用 Gord 答案中的代码,并根据我的信息进行了修改。

打印行出现错误,因此在其周围添加了 ()。

我现在收到此错误,类似于我过去遇到的错误。

我在错误代码中提到的行中查看了 pypyodbc.py 文件,但无法弄清楚。我试图从 r"Driver={Microsoft Access Driver (*.mdb, *.accdb)};" 的开头删除“r” 并在 r 和“Driver”之间尝试了一个空格,因为我不知道它是做什么用的,但是得到了一个不同的错误。

编辑

我按照建议检查了我的文件。我相信我正在运行 64 位。我检查了 32 位和 64 位版本。我有 64 位的 Microsoft Access 驱动程序(*.mdb、*.accdb),但没有 32 位的。我正在使用 2013 版的 Microsoft Visual Studios。

编辑

现在工作!

我的最终工作代码以防将来对任何人有所帮助。

0 投票
1 回答
517 浏览

python - 当 isql 连接时,pypyodbc 不连接?

pypyodbc 过去曾为我工作,但由于某种原因它不起作用。我在 ~/.odbc.ini 中定义了这个

并且可以与$ isql as400.

但是使用以下程序:

我收到此错误:

我尝试在 pypyodbc 源中寻找某种方式来反映这种isql -v能力,但VERBOSE = True不是这样。我还发现了一个错误,显然它过去只是发送第一封信,我想也许不知何故我遇到了这个问题,但我不知道在哪里可以找到它。

我怎样才能让它再次工作?

0 投票
1 回答
1301 浏览

python - 如何让 Python 3.4 c_char_array 将字符串读取为两个字节?

我在 Ubuntu 12.04 上使用 pypyodbc 和 Python 3.4。

我正在尝试获取列名,但有些不稳定。返回的只是作为字节的第一个字符,如下所示:

幕后的东西是一个 ctypes char 数组:

但是,如果我查看原始值:

您可以看到该值由 .TYPE_NAME分隔\x00

所以在我看来,正在发生的事情是(ctypes?)首先将其读取\x00为字符串的空终止符,而不是部分字符。

我可以做些什么来修改 ctypes 的使用方式,以便它可以读取整个字符串?其他一切似乎都可以正常工作,只是描述不可靠。

0 投票
2 回答
12127 浏览

python - 使用 SQLAlchemy 从 Pandas 数据框创建 Python MS Access 数据库表

我正在尝试从 Python 创建一个 MS Access 数据库,并且想知道是否可以直接从 pandas 数据框创建一个表。我知道我可以使用 pandasdataframe.to_sql()函数成功地将数据帧写入 SQLite 数据库,或者通过使用 sqlalchemy 引擎将其他数据库格式(但不幸的是不是 Access),但我无法将所有部分组合在一起。这是我一直在测试的代码片段:

我不确定我正在尝试做的事情是否可以使用我正在使用的当前包,但我想在我将自己的 hacky 数据框写入 MS Access 表函数之前检查这里。也许我的 sqlalchemy 引擎设置错误?

mssql+pyodbc这是我在引擎中的错误的结尾:

mysql+pyodbc以及引擎中的结束错误:

需要注意的是,我不在乎我使用的是 sqlalchemy 还是 pandas to_sql(),我只是在寻找一些简单的方法来轻松地将数据框放入我的 MS Access 数据库中。如果那是转储到 JSON,那么一个循环函数可以手动使用 SQL 插入行,无论如何,如果它运行良好,我会接受它。

0 投票
1 回答
1241 浏览

python - 带有游标的嵌套 for 循环仅在 python 上获得第一个期望的结果

我有以下一段我一直在处理的代码,我只能为“输入”表的第一行做这个技巧。我知道嵌套循环上的两个游标之间显然没有关系,但是我尝试了嵌套的 while-for 循环并获得了相同的结果。我正在使用 python 3.4。

这个想法是将表输入中的行与表可比较表中的行进行比较,如果公式给出的结果小于 5,则打印给定表的对应 ID(行 [0] 和行 x [0])和结果新的不同表中的公式称为输出。问题是它只适用于输入表的第一条记录。

有任何想法吗?希望是一件愚蠢的事情。我已经检查了这篇文章,但我仍然不知道如何解决它。

0 投票
0 回答
480 浏览

python - win7上从pypyodbc访问IBM netezza SQL server的错误

我需要在 win 7 上从 python 访问 IBM netezza SQL 数据库。我已经安装了 Eclipse 和 python 3.2、pydev 和 pypyodbc ( https://pypi.python.org/pypi/pypyodbc/1.3.3 )。它适用于 MS SQL 服务器。

但是,IBM netezza 出错了。

我可以从 IBM Aginity 工作台访问数据库,在同一台台式机和笔记本电脑上没有任何问题。

任何帮助,将不胜感激。

谢谢 !

0 投票
1 回答
1451 浏览

python - pypyodbc 从 python 在 netezza 数据库中创建存储过程的错误

我正在win7上的Eclipse中使用python(pydev)。

我需要从 python (pypyodbc) 访问 netezza SQL 数据库来创建存储过程。

我可以从 IBM Aginity 工作台很好地创建存储过程。

但是,我从 python 执行此操作时出错。

如何获得许可?

谢谢 !