问题标签 [ado]

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 投票
10 回答
3815 浏览

sql - SQL 查询耗时过长

我正在使用 ADO 将数据保存到 MS Access 数据库。将数据保存到文件需要相当长的时间(大约 7 秒 - 这对于我们的目的来说太长了)。我查看了正在运行的 SQL 查询的数量,大约是 4200;虽然没有一大堆数据。

数据库连接似乎是瓶颈。您是否知道减少所需时间的任何方法?或者通过某种方式将多个语句组合成一个以减少开销,或者一些 ADO/MS-Access 技巧?

例如,您能否一次将多行插入到一个表中,这样会明显更快吗?

额外信息:

我们有这么多查询的一个原因是我们插入了一行,然后有另一个查询来检索其自动递增的 ID;然后使用此 ID 插入更多行,将它们链接到第一行

回应几个评论和回复:我将连接一直打开,并使用 BeginTransaction() 和 CommitTransaciton() 作为单个事务执行

0 投票
1 回答
937 浏览

c++ - 如何在 C++ 中模拟 ADO for SQLite 的编辑/更新机制?

我有一个使用 ADO 与 Oracle 数据库通信的 C++ 应用程序。我正在更新应用程序以支持离线文档。我决定在本地实施 SQLite。

我已经围绕将调用适当代码的 ADO 类实现了一个包装器。但是,ADO 的添加/编辑/删除行的方式对于 SQLite 来说实现起来有点困难。

对于 ADO,我会写如下内容:

对于这个简单的示例,我意识到我可以发布一个更新,但实际代码要复杂得多。

我将如何在Edit()和之间拨打电话Update()以实际更新数据?我的第一个想法是Edit()构建一个单独的查询并Update()实际运行它,但我不确定哪些字段将被更改,也不确定表中的哪些键将更新查询限制为。

0 投票
4 回答
392 浏览

database - 首先是 RDO,后来是 ADO,再后来是 ADO.NET,现在是 LINQ。LINQ 是下一个标准还是我应该等待?

在我看来,微软每四五年就会改变一次关于数据库管理的规则。我记得以前 RDO 是连接到 SQL Server 的解决方案。我更新了使用 ADO 的知识,因为 RDO 已经过时了。ADO 非常好用且有效,但不久前,我发现自己正在编程并再次刷新我的知识以使用 ADO.NET。现在我正在使用 LINQ 进行我的第一个项目。

你怎么看?LINQ 是否准备好成为下一个标准,或者我应该等待并继续使用 ADO.NET,就像在 .NET 2.0 中一样?我需要根据您自己的经验知道,与它提供的好处相比,改用 LINQ 是否不会太贵。

0 投票
6 回答
19940 浏览

ms-access - ASP 奇怪的未指定错误 - 80004005

我必须在一个已经制作好的网站上工作,只需添加一些小模块

当我更新时,在不同的子文件夹中有许多名为 myDB.mdb 的文件我想确保我的应用程序正在连接正确的数据库,所以我开始重命名子文件夹......在其中一个子文件夹中,我刷新了主站点我的停止工作了

我重命名回正确的名称..刷新...刷新...刷新..我仍在刷新,我启动了另一个浏览器..它给出了连接问题:S

提供程序错误“80004005”

未指定的错误

/new/conn.asp,第 13 行

关于他的任何想法:S 将不胜感激任何帮助!

0 投票
1 回答
4563 浏览

stored-procedures - 如何使用 vb6 从记录集中检索不是返回值或输出参数的值

我希望与之交互的现有第 3 方应用程序(SQL 2005)上有一个存储过程。

它是一个插入语句,后跟一个选择语句,如下所示;

使用 VB6 如何访问 @CustomerID 的值?

没有按预期返回结果集...

[编辑]

rs.Fields.Count 为 0。

任何访问结果记录集的尝试,例如rs(0).Value只会导致“未找到项目...”错误。

0 投票
8 回答
9615 浏览

sql-server - 是否可以创建具有只读访问权限的死锁?

我有一个 VB6 应用程序通过 ADO 访问 MSSQL2000 服务器上的单个表。我正在使用只读访问(adOpenStatic、adLockReadOnly) 网络中还有其他应用程序会对表进行更改。

出于某种原因,我收到关于我的应用程序被选为死锁受害者的错误。

我真的很困惑:当我只是从一个表中读取时,为什么会出现死锁?我希望超时,因为其他应用程序的编写,但不是死锁......

有人可以对此有所了解吗?

更新:2009-06-15我仍然对这个问题的解决方案感兴趣。所以我提供了更多信息:

  • 如果我选择 adOpenForwardOnly 或 adOpenStatic 没有区别
  • 如果光标位置是客户端或服务器,则没有区别。
0 投票
3 回答
4025 浏览

sql - SQL 通过经典 ADO - 未定义函数'Round'?

我正在开发一个遗留产品,我有一些 SQL 正在通过 ADO 执行到一个带有与 SQL Server 的链接表的 Access 数据库。当我执行 SQL 时,我收到错误“未定义的函数 'Round”,但如果我接受查询并直接在 Access 中运行,它工作正常。我知道一切都是正确的,这是一个特定于机器的问题,因为这是生产代码,它可以在其他机器上运行,并且已经为许多客户成功部署。

我什至不知道从哪里开始说实话。我正在运行正确(最新)版本的 Jet/ADO/MDAC。

任何帮助,将不胜感激。

提前致谢。

编辑:显然,SQL 包含聚合函数“Round”。我知道 Jet 和 SQL 实现之间的差异。这个问题是由于我机器上的某个组件而不是代码的问题。当通过 MS Access 2007 而不是通过 ADO 完成时,SQL 可以正确执行。

0 投票
1 回答
359 浏览

ado - ADO SQLServer dbGo 生成 EAccessViolation

我有一个在单个线程中填充数据库的程序。I 对所有查询使用一个连接。这就是我将能够在事务中运行它们。

每一秒我都会得到一组新的文件,这些文件必须输入到 SQL Server 2005 Express 中。

该应用程序可以运行 24 到 36 小时,然后在查询中突然获得“EAccessViolation”。

该查询将执行至少 24 * 60 * 60 次。

我不确定它是否也发生在没有参数的查询中,因为大多数查询(90%)都有参数。它们是插入/更新或带有参数的选择。

当发生这种情况时,之后的所有查询都会得到相同的 EAccessViolation,过了一会儿我得到了 StackOverflow。

虽然代码是以这样一种方式构造的,即异常将被处理,并且下次代码应该运行没有问题。

事实上,这发生在各种查询中(与以前的版本相比没有改变),唯一的改变是我们没有使用 BCB Builder 2007 中的 dbGo,而是使用 Cpp Builder 6.0 进行了 ADO。

我认为它在 Windows 版本的 MDAC(2.8) 或 CodeGear 的 de dbGo 中有一些软件。事实上,在以前的版本(ADO BCB6.0)中我们没有遇到它,而现在(dbGO 和 BCB2007)我们有,这使得这部分非常可疑。

我希望有些人有一些不错的想法,这可能是这一切的原因。

目前我无法在桌面上重现它。我仍在尝试复制它,这将明确提供更多信息。

我愿意接受建议。

问候

合资公司。

0 投票
4 回答
239 浏览

sql-server-2005 - 将 xls 记录上传到数据库的有效方法

将记录从 excel 文件上传到数据库中的表的最有效方法是什么。我不允许使用 DTS/SSIS。所以我想知道是否有比从文件中顺序读取记录和触发命令更好的选择。

谢谢。

0 投票
2 回答
3886 浏览

vb6 - 存储过程超时 - 但从 SSMS 运行时很好

我有一个存储过程,它因“超时已过期”而出错。

涉及的代码是ADO/VB6。

存储过程本身没有问题,您可以在查询窗口中运行它,只需不到一秒钟。

用于获取连接等的代码也是模块化的,并在整个巨大的应用程序中使用。超时仅在这个地方发生,在一个特定的数据库上。

无论是否在调试中运行 VB6 代码,每次尝试都会重现该错误,然后突然间一切都会神奇地重新开始工作。然后在未来的某个时间,同样的问题会再次出现。

我不确定要放多少代码,没有什么复杂的;基本上是;

我一直在观察分析器,但没有给出任何线索,除了偶尔看到在 sp 运行之前和之后发生的“SET NO_BROWSETABLE ON”/“SET NO_BROWSETABLE OFF”语句。

我已经在网上搜索过,但找不到任何令人满意的帮助;在这一点上,我愿意尝试任何事情(除了在 .NET 中重写,不幸的是,这不是一个选项!)