我找到了this解决方案来填充一个组合框, 但是,如果我需要更改多个组合框列表呢?
最佳表现是什么?
获取所有行到vbscript数组并使用它
在一个查询中发送多个select语句
article.comments.clear()
但后来我不知道如何获得对变量或数组的响应 我收到错误
Microsoft JET数据库引擎错误“80040e14”
在SQL语句结束后找到的字符。
答案 0 :(得分:1)
我不知道哪个是最快的...我想一次将所有查询传递给DB,然后处理返回的各种表。
就个人而言,我最担心的是维护和编辑代码的效率而不是执行,除非在特殊情况下你会发现它们之间没什么区别。
在此基础上,我会查询,获取数据并一次填充下拉列表,然后查看它是如何运行的,并等待证明无法完成此操作。
使用这种方法,您甚至可能会使用查询(或表和列)调用的子或函数将结果构建为下拉列表。
根据你的例子,我最初会做这样的事情:
<select name="First">
<%
set rsRecordSet=Server.CreateObject("ADODB.recordset")
rsRecordSet.Open "Select distinct ID,FirstThing FROM FirstTable", connection
While not rsRecordSet.EOF
%>
<OPTION VALUE="<%=rsRecordSet("ID")%>"><%=rsRecordSet("FirstThing")%></OPTION>
<%
rsRecordSet.MoveNext
Wend
rsRecordSet.Close
Set rsRecordSet= nothing
%>
</select>
<select name="Second">
<%
set rsRecordSet=Server.CreateObject("ADODB.recordset")
rsRecordSet.Open "Select distinct ID,SecondThing FROM SecondTable", connection
While not rsRecordSet.EOF
%>
<OPTION VALUE="<%=rsRecordSet("ID")%>"><%=rsRecordSet("SecondThing")%></OPTION>
<%
rsRecordSet.MoveNext
Wend
rsRecordSet.Close
Set rsRecordSet= nothing
%>
</select>
<select name="Third">
<%
set rsRecordSet=Server.CreateObject("ADODB.recordset")
rsRecordSet.Open "Select distinct ID,ThirdThing FROM ThirdTable", connection
While not rsRecordSet.EOF
%>
<OPTION VALUE="<%=rsRecordSet("ID")%>"><%=rsRecordSet("ThirdThing")%></OPTION>
<%
rsRecordSet.MoveNext
Wend
rsRecordSet.Close
Set rsRecordSet= nothing
%>
</select>
答案 1 :(得分:1)
方式№4。
在一个查询中运行所有内容,结果将在一个数据集中。
strSQL = "Select Distinct Make as Value, 'S1' as SelectionNumber From Cars union all Select Distinct Model as Value, 'S2' as SelectionNumber From Cars"
在这种情况下,您将知道SelectionNumber字段包含您的查询ID ...
最佳表现是什么?
我建议您使用SQL Server Profiler来测量查询的速度。