- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些现有的代码,使用不同的参数重复查询 SQL 数据库,我认为如果我将其更改为在开始时选择一大块数据到 ADODB.Recordset 中,然后在循环查询此记录集而不是数据库本身。
一个额外的警告是,当我执行这些子查询时,我需要使用聚合函数(SUM、MIN、MAX、AVG)。
编码不会太困难,但是这种明显的事情似乎以前已经做过数千次了,这让我想知道是否可能有某种开源库包含这种类型的功能?我发誓几年前我遇到过一个,但无法在谷歌上找到它。
编辑:
评论中的一个很好的建议(TimW)是在数据库服务器上进行所有聚合并传回客户端,然后在客户端上进行过滤。(不过,在这种情况下它不起作用,因为应用过滤的列中有 2 个是日期时间列)
这是我以前遇到过的库:
http://code.google.com/p/ado-dataset-tools/
不确定作者是否放弃了它(他的计划似乎是更新它并转换为 c#),但各种库的 VBA 版本似乎可以在这里找到:
http://code.google.com/p/ado-dataset-tools/source/browse/trunk/ado-recordset-unit-tests.xls?spec=svn8&r=8#ado-recordset-unit-tests.xls
我感兴趣的具体 ADO 库在这里:
http://code.google.com/p/ado-dataset-tools/source/browse/trunk/ado-recordset-unit-tests.xls/SharedRecordSet.bas
具体请参见GroupRecordSet()函数。
似乎仅支持 SUM、MIN、MAX 聚合函数。
在 Excel VBA 中针对虚拟表编写 SQL 查询
http://www.vbaexpress.com/forum/showthread.php?t=260
不确定这将如何执行,但将原始数据(部分预聚合)拉入 Excel 中的本地工作表,然后在后续查询中使用该工作表作为数据源可能是一个可行的选择。
最佳答案
我自己的经验是,对数据库进行许多小调用实际上比将大量数据加载到记录集中然后尝试过滤/查询该数据要高效得多。
我还认为,与单独调用数据库相比,您在现有 ADO 记录集中过滤/查询数据的能力相当有限。当我尝试这样做时,我认为它应该像通过使用 SQL 查询第一个 ADO 记录集来创建第二个 ADO 记录集一样简单。我从来没有找到办法做到这一点;我很确定这是不可能的。
编辑1
为了帮助您理解差异,我编写了一些代码,使用 ADO 和 VFP OLE 驱动程序从文本文件读取新的价格数据并更新 Visual Foxpro 数据库中的价格。我查询的表大约有 650,000 条记录。我认为最好加载记录集中的所有记录,然后使用 ADO 的过滤方法。当我这样做时,我的代码需要三到四个小时才能运行。我将代码更改为只查找每条记录,一次一条,然后我的代码在一分零两秒内运行。我在 SO 上发布了这个问题。你可以看一下我收到的各种回复:Speed up this Find/Filter Operation - (VB6, TextFile, ADO, VFP 6.0 Database)
关于excel - 使用过滤和聚合函数查询预先存在的内存中 ADODB 记录集(高级 ADODB 库?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10032040/
使用 VBA 连接 Access DB 时遇到一个奇怪的错误。 VBA 代码如下所示: Sub DBC() Dim cn As ADODB.Connection Dim rs As A
我有一些现有的代码,使用不同的参数重复查询 SQL 数据库,我认为如果我将其更改为在开始时选择一大块数据到 ADODB.Recordset 中,然后在循环查询此记录集而不是数据库本身。 一个额外的警告
我用下面的代码填充了一个数据表—— OleDbDataAdapter oleDA = new OleDbDataAdapter(); DataTable dt = new DataTable(); o
... 或从 QueryTables 中提取记录。 最佳答案 试试这个排序: SQLDatabase_VBA.bas将来自 ADODB 或系统的 SQL 数据库与 Excel 中的 VBA 连接 sc
看,我遇到了一个问题,它开始让我有些头痛,因为我找啊找,但仍然不走运。 我必须从 C# 执行 DLL 的方法,这个 DLL 是 4 年前在 VB 6.0 中创建的,并且在 COM 中注册。它使用 AD
我一直在 Excel 中使用 ADODB 连接,以便连接到 MySql 数据库并检索值。 我的代码的本质如下: Public Function ODPH(B0 As Range, sqlstr As
Function filenum(filename,i) Dim st,s Set&nb
翻了半天MSDN后找到的,|后边是别名 复制代码代码如下: ANSI_X3.4-1968|iso-8859-1 ANSI_X3.4-1986|iso-8859-1&nb
1. 前言 ADODB 是 Active Data Objects Data Base 的简称,它是一种 PHP 存取数据库的函式组件。现在 SFS3 系统 (校园自由软件交流网学务系统) 计划的
在 Excel 2010 中,我正在编写一个将大文本文件加载到记录集中的 vb 应用程序。 文本文件是一个日志文件,用空格分隔,并且没有任何列标题的第一行。 我可以使用适当的 schema.ini 文
我想弄清楚如何在 VBA excel 中使用 ADODB 进行多行插入。 我的问题似乎是我无法找出用于这个简单任务的正确语法,即使在搜索之后我仍然不知道它为什么不起作用。 使用语句进行单次插入没有问题
我试图从包含 80,000 多行的工作表中检索数据并将这些值打印到工作表中,但是当我创建记录集并查看其记录计数时,它只包含 16,492 条记录。 我是 ADODB 连接的新手,所以我对问题所在感到困
我在Delphi 7中使用ADODB,对于UPDATE查询,我使用TADOConnection执行过程“ recordsAffected”变量获取了修改后的记录数。 像这样 : MyConnexio
JavaScript ADODBE 连接如何在查询中放置它们或它们之间。需要帮助: rs.Open("update customer set Name='" + txtname + "',F_Name
我正在使用 adodb 和 php。我需要将 html 插入数据库,并且需要知道在将其插入数据库之前转义引号的最佳方法?我尝试使用 pg_escape_string() 但它似乎仍然没有插入。 执行此
我在 Excel 中有一个表,该表通过与 Access 数据库的连接进行填充。我正在尝试编写一个宏,允许您从此表中删除各个行。我使用 ADODB 连接将删除命令传递给 Access,效果很好。但是,在
我必须在我的 Delphi 应用程序中创建 dbf 文件。 对于本例,我使用 ADODB。 连接字符串: const ConnStringDBF = 'Driver={Microsoft dB
所以我是 Visual Basic 的新手,继承了我现在需要处理的 VB6 代码。现在,我正在尝试使用 ADODB.RecordSet 更新 SQL 数据库。我有一个 Select SQL 语句,可以
在 Excel 中,我使用 ADODB 连接来构建记录集,从其自己的工作簿中的工作表中获取数据,如下所示: Public Sub test() Dim cnn As New ADODB.Con
我想知道为什么当我把 sql ADODB在一个函数中查询它会产生以下错误: Fatal error: Call to a member function Execute() on a non-obje
我是一名优秀的程序员,十分优秀!