问题标签 [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 投票
1 回答
3614 浏览

ado - 添加字段以打开记录集

我有一种简单的方法可以将新字段附加到现有的打开 ADO 记录集吗?

fields.append()如果 RecordSet 处于打开状态,则将不起作用,并且关闭似乎会杀死现有数据。

注意:我正在使用Microsoft ActiveX DataObject 2.8 库

0 投票
4 回答
7645 浏览

oracle - 如何使用 ADO 连接字符串以 SYS 身份连接到 Oracle 数据库?

我正在尝试这个:

但我得到了错误:

我正在使用 Delphi,但欢迎使用任何语言的答案。

澄清:我能够以普通用户的身份连接。当我尝试连接 AS SYSDBA 时遇到了麻烦。

0 投票
2 回答
1406 浏览

sql-server - Perl ADO 认为存储过程中的打印输出是错误的!

首先(如果这很重要)我使用的是 ActiveState 的 Perl(为 MSWin32-x86-multi-thread 构建的 v5.8.7)。

我刚刚从长达三个小时的调试会议中走出来,试图找到错误的根源。我发现根本没有错误,但由于某种原因,ADO 的连接对象Errors.Count随着存储过程输出中的每条打印消息而增加。

考虑以下 Transact SQL 代码:

现在想象一个 Perl sub 或多或少像:

在其他地方,在主 Perl 代码中,我将上面的子代码称为:

最后,我知道每个PRINT 语句都会导致一个新的伪错误附加到 ADO 错误集合中。我实施的快速修复是将 SP 中的 PRINT 更改为 SELECT,以绕过它。

我想问的问题是:

  • 这种行为正常吗?
  • 有没有办法避免/绕过它?
0 投票
2 回答
620 浏览

sql-server - 经典 ASP:从 SQL 表翻译的页面文本,更快的方法?

使用经典的 ASP VBScript,与 MS SQL Server 耦合,我们有一个接受 3 个整数的函数,page_id, heading_id,language_id

它在翻译表中查找页面标题...

该表包含大约 10,000 行...

标题列是 nvarchar(1000) 加上 3 个 int 列,这意味着它每行最大大约 2KiB...

所以我的问题是,是否值得使用 ADO 的 GetRows 或通过其他方法将此表复制到内存(例如应用程序对象)中,或者由于“大”数据大小而不值得这样做。

每页大约有 1 到 250 个标题,462 页,平均每页 34 个标题。

因此,为了节省大约 34 个数据库调用一个页面,我使用了一大块内存,并调用了应用程序,而且它可能更慢?

想法?

0 投票
6 回答
8474 浏览

vba - Access 2007 VBA 查询在查询分析器中显示数据,但在 VBA 编码记录集中不显示

我有一个我编写的函数,最初应该采用一个字符串字段并用这些值填充一个 Excel 电子表格。这些值不断出现为空。我开始将其跟踪回记录集,发现尽管查询有效并且通过 Access 查询分析器正常运行,但记录集为空或缺少字段。

为了测试这个问题,我创建了一个子程序,在其中创建了一个查询,打开了一个记录集,然后对这些值进行了分页(将它们输出到一个消息框)。问题中最令人困惑的部分似乎围绕查询的“WHERE”子句展开。如果我不在查询中添加“WHERE”子句,则记录集总是有数据,并且“DESCRIPTION”的值是正常的。

如果我为 WHERE 子句添加任何内容,则记录集要么完全为空 ( )rs.EOF = true,要么在其他字段具有值的情况下,描述字段完全为空白。我想再次强调,如果我 debug.print 查询,我可以将其复制/粘贴到查询分析器中,并获得我期望的有效和返回值。

我肯定会很感激这方面的帮助。谢谢!

编辑:有人要求我发布查询的 DEBUG.PRINT。这里是:


我已经尝试过使用 ASCII 字符和隐式的双引号和单引号。

例如:

我什至用 chr(39) 尝试了你的建议:

两者都返回空值进行描述。但是,如果我 debug.print 查询并将其粘贴到 Access 查询分析器中,它会显示得很好。同样(作为旁注),如果我在 WHERE 子句中执行 LIKE 语句,它将给我一个完全空的记录集。这里有些东西真的很奇怪。


这是一个有趣的花絮。这些表链接到一个SQL Server. 如果我在本地复制表(数据和结构),上面的 ADO 代码可以完美运行。如果我使用 DAO,它可以正常工作。我已经在Windows XPAccess 2003和各种版本的ADO (2.5, 2.6, 2.8). ADO如果表已链接,则将不起作用。

ADO 中存在一些导致该问题的缺陷。


我绝对愿意。请记住,DEBUG.PRINT您看到的查询在查询分析器中运行良好。它返回以下内容:

但是,相同的查询在通过记录集运行时返回空值的描述(其他一切都是相同的)(由于“Null”值导致的消息框错误)。


我尝试将“描述”字段重命名为“testdep”,但它仍然是空的。使其显示数据的唯一方法是删除查询的 WHERE 部分。我开始相信这是 ADO 的问题。也许我会用 DAO 重写它,看看我得到了什么结果。

编辑:我也尝试了几次压缩和修复。没有骰子。

0 投票
4 回答
6464 浏览

sql-server - 在 Delphi 中使用 ADOConnection 查看“打印”语句的输出

我的一些 MS SQL 存储过程使用“打印”命令生成消息。在我的 Delphi 2007 应用程序中,它使用 TADOConnection 连接到 MS SQL,我如何查看这些“打印”命令的输出?

关键要求:1)我不能多次运行查询;它可能正在更新东西。2) 即使返回数据集,我也需要查看“打印”结果。

0 投票
1 回答
437 浏览

asp.net - 实体框架:使用 FK(为什么它们会被隐藏?)

首先,让我们定义几个表:

用户表将存储有关用户的信息:

UserTasks 是一个存储与用户关联的任务的表:

当我使用 ADO 实体框架生成 UserTasks 表时,我将得到一个如下所示的类:

UserTasks
- taskName(字符串)
- 用户(用户对象的集合)

注意:在 UserTasks 表中没有生成用户 ID。所以现在让我们假设我需要插入一个新的用户任务......我该怎么做?我无权访问 userID FK 字段,所以我唯一的选择是查找并填充用户对象,然后将其传递给我的任务对象,如下所示:

上面的问题是我正在做一个额外的和不必要的数据库调用来填充我的用户对象。有没有办法以某种方式创建到我的 userID 字段的新映射并仍然保留 User 对象?

谢谢

——瑞安

0 投票
1 回答
7053 浏览

c# - 在 .NET 中读取 Excel,如何获取特定行?

我从这里获得了以下代码来使用 C# .NET 读取 Excel 文件:

我想从第 4 行开始只选择 10 行,我该怎么做?

0 投票
3 回答
3151 浏览

ado - 如何从 ADO 创建一个空的 MDB

我需要创建一个空的 .mdb 文件,以便我可以在其上运行 ADO 命令(不是ADO.NET)。有没有办法使用 ADO 创建一个空的 mdb?

0 投票
4 回答
8904 浏览

delphi - 如何从 Delphi 将 GUID 设置为 ADO 查询参数?

MS Access 允许在数据库中存储为 16 字节二进制字段的数字类型 GUID(在德语中称为“Replikations-ID”,所以我猜在英语中将是“replication id”)。

我发现如何使用 TADOQuery / TADOTable 在 Delphi中访问这些字段

但现在我想执行这样的 SQL 查询:

我尝试为上述语句设置一个TADOQuery.SQL属性,但没有找到实际设置AGuid参数以便可以打开查询的方法。无论我尝试什么都会导致(ADO/COM)错误

没有为一个或多个必需参数指定值

例如:

这也不起作用:

我查看了TGuidField(...).AsGuid它的工作原理,发现它首先将 GUID 转换为字符串,然后将字符串转换为变体(反之亦然)。

如果我总是像这样生成 SQL 语句,它工作正常:

当我在程序中传递该TADOQuery对象时,我只想更改AGuid-Parameter 以使大多数方法与实际的 SQL 语句无关。

除了总是更改完整的 SQL 语句之外,还有其他方法可以设置 GUID 参数吗?

(它必须是一个 GUID,因为我需要一个全局唯一标识符来与基于 MS SQL 或 MS Access 的其他数据库同步。)

编辑 vradmilovic 是对的,这有效:

我不明白为什么我第一次尝试它时它不起作用。