问题标签 [dbi]

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 投票
4 回答
2035 浏览

perl - 如何检查 Perl 中的 DBI 查询是否返回了多个记录?

我已经在网站上搜索了这个,但找不到任何回答我问题的东西。这让我想到了细节:

我正在使用简单的选择查询来查询数据库,实际上(给定场景)它不应该返回超过大约 5 到 6 条记录。我只是想检查是否已退回多个。如果已经返回了多个(在 else 语句中),如果只返回了一个,那么我会继续执行脚本。

如果你们知道一个我找不到的线程来回答这个问题,只需重定向我,我就会取消这个线程!

问候,BorisTheBulletDodger!

0 投票
2 回答
2096 浏览

ruby - 将 ruby​​ .gem 文件放在哪里以便 Shoes.setup 可以找到它们?

很多关于鞋子中的宝石支持的问题都被问到了,但没有人回答将它们放在哪里。我在 Windows XP 上安装了 Shoes Raisins 1134,我已经下载dbi-0.4.1.gem并尝试让以下内容正常工作:

当我运行它时,我得到一个对话框,上面写着Installing dbi -- Looking for dbi几个小时没有找到 gem 文件。我试过把它放在以下所有地方都无济于事:

  • 包含上述脚本的文件夹
  • D:\Program Files\Common Files\Shoes\0.r1134\ruby\gems
  • D:\Program Files\Common Files\Shoes\0.r1134\ruby\gems\1.8\gems

哪个是错误的 - 文件夹或代码?

编辑 - 答案:

感谢@Pesto 的回答。我已经阅读了引用的文本,但将其误解为引用 Shoes PUT 安装的 gem 文件的位置,而不是它 GOT 源的位置。在 Windows XP 中,引用转换为%USERPROFILE%\Application Data\Shoes,并且安装运行良好。现在开始玩它......

0 投票
1 回答
766 浏览

perl - 为什么我不能用 DBD::DB2 断开我的数据库句柄?

我的 perl 脚本很慢但可以工作。我正在考虑把它扔掉,用适当的绑定等构建一个真正的 DB2 应用程序;但是,与此同时,我希望它可以用作占位符。

我查看了此文档,其中提到:

但是我不能使用它,因为它会引发此错误。

无法在 ./ProgramTree.pl 第 119 行通过包“dbh”(可能是加载“dbh”?)找到对象方法“disconnect”。

我知道我的临时应用程序正在泄漏和增长,因为它正在递归地打开数据库句柄。我错过了一些基本的东西吗?

0 投票
5 回答
321 浏览

database - 如何通过一个或几个永久会话使数百个同时运行的进程与数据库通信?

长话短说:如何让数百个同时运行的进程通过一个或几个永久会话与数据库通信?

整个故事:
我曾经构建了一个数字处理引擎,它通过一个接一个地分叉一个子节点来处理大量的大数据文件,给每个子节点少量的文件来处理。文件锁定、进度监控和结果传播发生在 Oracle 数据库中,所有(子)进程使用封装 DBI 的特定于应用程序的模块在不同时间访问。

起初这很有效,但现在随着输入数据量的增加,不断打开和关闭的数据库会话数量(每个孩子一个,而且它们的寿命可能很短)已成为一个问题。我现在想集中数据库访问,以便只有一个或几个固定数据库会话处理所有(子)进程的所有数据库访问。数据库抽象模块的存在应该使更改变得容易,因为工作实例中的函数调用可以保持不变。我的问题是我想不出一种合适的方法来增强所述模块,以便在所有进程和数据库连接器之间建立通信。

我想到了消息队列,但无法想出一种方法将一大群请求者与一个或几个数据库连接器连接起来,以便可以进行双向通信(用于收集查询结果)。
异步方法在这里可以提供帮助,因为所有请求都写入同一个队列,并且为请求提供服务的数据库连接器将“回调”以提交结果。但是我无法生成足够清晰的图像以便我可以将其绘制成代码。
线程而不是分叉可能让我更容易开始,但这现在需要对代码库进行大量更改,而我不准备对实时系统进行更改。

我想得越多,基本想法对我来说就越像是一个预分叉的 Web 服务器,只是它不提供网页而是提供数据库查询。关于挖掘什么以及在哪里挖掘的任何想法?启发我的示例(伪)代码,可能相关文章的链接,CPAN 上的现成解决方案可能吗?

0 投票
4 回答
2130 浏览

sql - 为什么 Perl 的 DBI 会抱怨“在未打开的光标上尝试获取”?

这是我的脚本:

注意:$dbstr是一个有效的数据库名称。

我不是数据库程序员。我做错了什么导致 Perl 脚本失败说:

DBD::Informix::db selectrow_array 失败:SQL:-400:在未打开的游标上尝试获取。

如果我编写一个简单的脚本来连接数据库$dbstr并显示表格内容,它可以正常工作,但上面的代码不起作用。

0 投票
3 回答
2826 浏览

sql - 当 Perl 的 DBI 在准备语句时遇到错误时,如何避免程序退出?

我正在制作一个脚本,该脚本通过一个包含数据库上所有其他表名的表。在解析每一行时,它会检查表是否为空

架构中不再存在某些表,如果我这样做

直接进入命令提示符,它返回错误:

206:指定的表(adm_rpt_rec)不在数据库中。

当我从 Perl 内部运行它时,它会将其附加到开头:

DBD::Informix::db 准备失败:SQL:-

尝试准备此 SQL 语句时,如何避免程序退出?

0 投票
2 回答
2072 浏览

python - Python 相当于 perl 的 dbi/DBD::Proxy 访问?(Perl DBI/DBD::Python 代理)

我有一个通过 DBI 模块与现有数据库(数据库类型未知)接口的 Perl 脚本,我想在 WinXP 上的 python 2.6 中访问它。

Perl 代码是:

这可以翻译成python等价物吗?

按照(是否有任何可用的 pywin32 odbc 连接器文档?)的示例,我汇总了以下内容:

但我得到了错误:

更新

似乎另一个 Perl 模块 DBD::Proxy 正在为处理实际查询的 Perl DBI::ProxyServer(服务器端)实现提供实际接口。

python 可以用于与基于 Perl 的DBI::ProxyServer接口吗?

http://metacpan.org/pod/DBD::Proxy

http://hell.org.ua/Docs/oreilly/weblinux/dbi/ch08_02.htm

0 投票
12 回答
44708 浏览

perl - 如何在不运行两个单独的处理调用的情况下获得 DBI 中的行数?

我在 Perl 中运行 DBI,但无法弄清楚当我运行准备好的语句时,我如何知道返回的行数是否为 0。

我意识到我可以在我的 while 循环中设置一个计数器来获取我的行,但我希望有一种不那么丑陋的方法来做到这一点。

0 投票
2 回答
2391 浏览

perl - Perl+Postgresql:如果存在 RAISE NOTICE,则函数不返回值

我注意到,当我使用 DBI 从 Perl 脚本调用 PL/PgSQL 或 PL/Perl 函数时,如果函数中使用了 RAISE NOTICE 或 elog(NOTICE),它不会返回值。为了显示:

一个简单的表:

一个简单的功能:

一段 Perl 脚本:

实际上,它会打印表中的值。

但是如果我添加 RAISE NOTICE 如下所示,我不会得到任何结果:

我是否遗漏了某些东西或这种行为是设计使然?

0 投票
2 回答
14011 浏览

perl - Perl DBI 动态 fetchrow while 循环

我试图将表名传递给一个获取该表的所有字段名的子程序,将它们存储到一个数组中,然后将该数组与另一个 sql 查询的 fetchrow 结合使用以显示这些字段中的数据。这是我现在拥有的代码:

以表名作为参数的子调用示例:

洗发水子:

我正在寻找一种方法来把它变成不需要明确定义的东西......