日期:2014-05-17  浏览次数:20958 次

如何动态的生成一个新的recordset?急!
我想在asp页面里动态(手动)的生成一个新的记录集用来存放经过筛选的记录。
查资料有:

Sub   CreateARecordSet
      Dim   ColInfo(1),   c0(3),   c1(3)

      c0(0)   =   "Name "                   '   列名称。
      c0(1)   =   CInt(129)             '   列类型   (129   =   adChar)。
      c0(2)   =   CInt(40)             '   列大小。
      c0(3)   =   False                   '   列可否为空?

      c1(0)   =   "Age "                   '   列名称。  
      c1(1)   =   CInt(3)             '   列类型   (3   =   adInteger)。
      c1(2)   =   CInt(-1)             '   列大小。
      c1(3)   =   True                   '   列可否为空?

      '   将列添加到记录集定义。
      ColInfo(0)   =   c0
      ColInfo(1)   =   c1

      ADC1.SourceRecordset   =   ADF1.CreateRecordset(ColInfo)
End   Sub

就好象这样可以自己定义记录集里的字段名,字段值类型,和大小什么的,然后用这些定义好的结构生成一个新的记录集而不用从数据库里取出数据才能获得数据集,再在把需要的数据添加到这个新的数据集结构里形成新的数据集供以后使用。谢谢!

这里的   ADC1对象没有明确定义,说明来源,有考:
<OBJECT   ID= "ADS1 "   WIDTH=1   HEIGHT=1
CLASSID= "CLSID:9381D8F5-0288-11D0-9501-00AA00B911A5 ">
</OBJECT>
<OBJECT   classid= "clsid:BD96C556-65A3-11D0-983A-00C04FC29E33 "
      ID=ADC>
</OBJECT>

<Object   classid   = "clsid:AC05DC80-7DF1-11d0-839E-00A024A94B3A "
      CODEBASE= "http:// <%=Request.ServerVariables( "SERVER_NAME ")%> /MSADC/Samples/Sheridan.cab "
      ID=GRID1  
            datasrc=#ADC
            HEIGHT=125  
            WIDTH=495>
      <PARAM   NAME= "AllowAddNew "   VALUE= "TRUE ">
      <PARAM   NAME= "AllowDelete "   VALUE= "TRUE ">
      <PARAM   NAME= "AllowUpdate "   VALUE= "TRUE ">
      <PARAM   NAME= "Caption "   VALUE= "   RDSServer.DataFactory   Run   Time ">
</OBJECT>
使用object   对象。但是我不明白,望高人指点,谢谢!!!


------解决方案--------------------
用disconnected recordset就行了,简单的例子:
<%
Set objRS=Server.CreateObject( "ADODB.Recordset ")
objRS.CursorLocation=3
objRS.Fields.Append "Name ",129, 100 'adChar
objRS.Fields.Append "Age ",3 'adInteger
objRS.open
objRS.addNew
objRS( "Name ")= "a "
objRS( "Age ")=10
objRS.addNew
objRS( "Name ")= "b "
objRS( "Age ")=12
objRS.addNew
objRS( "Name "