VB怎么将ADODB.Recordset取的表付到本地变量里

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB怎么将ADODB.Recordset取的表付到本地变量里相关的知识,希望对你有一定的参考价值。

Dim rs As New ADODB.Recordset
rs.Open "select * from a ", cnxn, 1, 1
有张表a,是公共表,程序随时要查询a信息
但数据库是放在远程的SQL2000,如果网络一断,那么再进行rs查询操作会报错
我现在想,在程序登陆的时候,就把a读进本地VB的变量中
用什么变量临时保存a比较合适,比如"临时表变量"(除了用本地数据库的方法,如ACCESS)
最好有代码例子.

dim a()
dim i as long
dim j as long
使用MSHFLEXGRID控件将数据读到控件中后
i=mshflexgrid1.rows-1
j=mshflexgrid1.cols-1
redim a(i,j)
dim x as long
dim y as long
for x=0 to i
for y=0 to j
a(i,j)=mshflexgrid1.textmetrix(i,j)
next
next
可将数据读到数组中,但如果表中有日期格式数据,此方法不可用
参考技术A a=rs.filed(0)

Recordset说它已关闭,但我不相信我有

我一直在处理一个记录集对象的问题,该对象表示它在关闭代码行之前已关闭。我将在下面发布代码

set rs_Resultados_Seguimiento = Server.CreateObject("ADODB.Recordset")

var_tipo_busqueda_predio = Session("tipo_busqueda_predio")

select case clng(var_tipo_busqueda_predio)
    case 1
        'BUSQUEDA LISTA POR ROL
        '--------------------------------------------
        rs_Resultados_Seguimiento.Open  "SELECT       dbo_seguimiento_certificado.codigo_seguimiento_certificado, " &_
                                                     "dbo_estado_certificado.nombre_estado_certificado, "&_
                                                     "dbo_cip.codigo_unico_certificado, dbo_cip.descripcion_certificado, dbo_cip.nombre_solicitante_certificado, dbo_cip.fecha_ingreso_certificado," &_
                                                     "dbo_predios.codigo_manzana_predio, dbo_predios.codigo_lote_predio" &_
                                                     "dbo_funcionarios.nombre_completo_funcionario+' '+dbo_funcionarios.apellido_completo_funcionario as Nombre_Funcionario" &_
                                        "FROM         dbo_estado_certificado " &_
                                        "INNER JOIN   dbo_seguimiento_certificado ON dbo_estado_certificado.codigo_estado_certificado = dbo_seguimiento_certificado.codigo_estado_certificado" &_
                                        "INNER JOIN   dbo_cip ON dbo_seguimiento_certificado.codigo_unico_certificado = dbo_cip.codigo_unico_certificado" &_
                                        "INNER JOIN   dbo_funcionarios ON dbo_cip.codigo_unico_funcionario = dbo_funcionarios.codigo_unico_funcionario" &_
                                        "INNER JOIN   dbo_predios ON dbo_cip.codigo_unico_predio = dbo_predios.codigo_unico_predio" &_
                                        "WHERE        dbo_predios.codigo_manzana_predio=" & Clng(Session("codigo_manzana_busqueda")) & " AND dbo_predios.codigo_lote_predio=" & Clng(Session("codigo_lote_busqueda")),cn_body,1,1

        value_titulo_tabla = " al ROL:  <strong>" & Session("codigo_manzana_busqueda") & "-" & Session("codigo_lote_busqueda") & "</strong>"

    case 3
        'Crea rs_Resultados_Seguimiento por CODIGO
        '--------------------------------------------
        rs_Resultados_Seguimiento.Open  "SELECT       dbo_seguimiento_certificado.codigo_seguimiento_certificado, " &_
                                                     "dbo_estado_certificado.nombre_estado_certificado, "&_
                                                     "dbo_cip.codigo_unico_certificado, dbo_cip.descripcion_certificado, dbo_cip.nombre_solicitante_certificado, dbo_cip.fecha_ingreso_certificado," &_
                                                     "dbo_predios.codigo_manzana_predio as nvarchar, dbo_predios.codigo_lote_predio," &_
                                                     "dbo_funcionarios.nombre_completo_funcionario+' '+dbo_funcionarios.apellido_completo_funcionario as Nombre_Funcionario" &_
                                        "FROM         dbo_estado_certificado " &_
                                        "INNER JOIN   dbo_seguimiento_certificado ON dbo_estado_certificado.codigo_estado_certificado = dbo_seguimiento_certificado.codigo_estado_certificado" &_
                                        "INNER JOIN   dbo_cip ON dbo_seguimiento_certificado.codigo_unico_certificado = dbo_cip.codigo_unico_certificado" &_
                                        "INNER JOIN   dbo_funcionarios ON dbo_cip.codigo_unico_funcionario = dbo_funcionarios.codigo_unico_funcionario" &_
                                        "INNER JOIN   dbo_predios ON dbo_cip.codigo_unico_predio = dbo_predios.codigo_unico_predio" &_
                                        "WHERE        dbo_seguimiento_certificado.codigo_seguimiento_certificado=" & Clng(Session("codigo_seguimiento_certificado")),cn_body,1,1

        value_titulo_tabla = " al CODIGO:  <strong>" & Session("IDE_predio_busqueda")  & "</strong>"

end select

'**********************************************************************************************************************************************
%>

<div class="container-fluid" style="margin-top:11px;padding:0px;background-color:#f5f5f5;width:100%"><!--Barra Menu Horizontal-->
    <div class="col-md-2" style="margin:0px;padding:0px;border-right:1px solid #cecece;border-bottom:1px solid #cecece">
        <ol class="breadcrumb" style="margin-bottom:0px">
            <li>
                <a href="<%=Session("param_aplicacion_web_server")%>modulo_gestor_territorial/page_Gestor_Territorial_Escritorio.asp">
                    Menus
                </a>
            </li>
            <li style="float:right">
                <a data-toggle="collapse" href="#colapsarBusqueda" aria-expanded="false" aria-controls="colapsarBusqueda">
                    <span class="glyphicon glyphicon-search" aria-hidden="true" style="padding:0px"></span>
                </a>
            </li>
            <li style="float:right">
                <a href="<%=Session("param_aplicacion_web_server")%>shared_funcion/mi_cuenta/page_Mi_Cuenta_Editar.asp">
                    <span class="glyphicon glyphicon-user" aria-hidden="true" style="padding:0px"></span>
                </a>
            </li>
            <li style="float:right">
                <a href="<%=Session("param_aplicacion_web_server")%>shared_funcion/cambiar_contrasena/page_Cambiar_Contrasena.asp">
                    <span class="glyphicon glyphicon-lock" aria-hidden="true" style="padding:0px"></span>
                </a>
            </li>
        </ol>
    </div>
    <div class="col-md-10" style="margin:0px;padding:0px;border-bottom:1px solid #cecece">
        <ol class="breadcrumb" style="margin-bottom:0px">
            <li><a href="<%=Session("param_aplicacion_web_server")%>modulo_seguimiento_cip/page_Seguimiento_CIP_Escritorio.asp"><span class="glyphicon glyphicon-th" aria-hidden="true"></span></a></li>
            <li><a href="<%=Session("param_aplicacion_web_server")%>modulo_seguimiento_cip/page_Seguimiento_CIP_Escritorio.asp">Modulo Seguimiento CIP</a></li>  
            <li>Seguimiento de Certificados</li>    
            <li style="float:right">
                <a href="<%=Session("param_aplicacion_web_server")%>page_Sistema_OnLine.asp"><span class="glyphicon glyphicon-home" aria-hidden="true"></span></a>
            </li>
        </ol>
    </div>
</div>
<div class="container-fluid" style="padding:0px;width:100%;margin:0px"><!--Buscador por ROL (Oculto)-->
    <div class="col-md-2" style="margin:0px;padding:0px;float:left">
        <div class="collapse" id="colapsarBusqueda">
            <div class="panel panel-default" style="margin:2px">
                <div class="panel-body">
                    <form name="form_Buscar_Funcionario_Rut_Hidden" id="form_Buscar_Funcionario_Rut_Hidden" 
                        action="<%=Session("param_aplicacion_web_server")%>modulo_administracion_general/funcionario/page_program/prog_Buscar_Funcionario_Rut.asp" method="post"
                        role="form" class="form-inline">
                        <div class="form-group">
                            <input id="var_rut_unico_funcionario" name="var_rut_unico_funcionario" type="text" placeholder="Ingrese un Rol" 
                            onKeyPress="return SoloNumeros_rol(event)"  
                            class="form-control input-sm" style="text-transform:uppercase;width:80%">
                            <button type="button" class="btn btn-primary btn-sm" onclick="submit_Form_Buscar_Funcionario_Rut_Hidden_onclick()">
                            <span class="glyphicon glyphicon-ok" aria-hidden="true" style="padding:0px"></span></button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
<div class="container" style="padding:0px;width:100%;margin:0px">
    <div class="col-md-2" style="margin:0px;padding:0px;float:left"><!--Barra Menu Lateral-->
    <!-- #include virtual=/modulo_seguimiento_cip/menu_cip/menu/menu_Seguimiento.asp-->
    </div>
    <div class="col-sm-10">
        <div class="table-responsive" style="margin-top:15px">
            <table class="table table-bordered">
                <tbody>
                    <tr>
                        ***<td style="width:100%;text-align:left" colspan="6" class="active"><strong><%=rs_Resultados_Seguimiento.recordcount%></strong> Certificados asociados a este ROL <%=value_titulo_tabla%></td>
                    </tr>
                    <tr>
                        <td style="width:10%;text-align:center" class="active">CODIGO DE SEGUIMIENTO</td>
                        <td style="width:10%;text-align:left" class="active">ESTADO DE CERTIFICADO</td>
                        <td style="width:10%;text-align:left" class="active">NUMERO DE CERTIFICADO</td>
                        <td style="width:10%;text-align:left" class="active">DESCRIPCION</td>
                        <td style="width:10%;text-align:left" class="active">NOMBRE DE SOLICITANTE</td>
                        <td style="width:10%;text-align:left" class="active">FECHA DE INGRESO</td>
                        <td style="width:10%;text-align:left" class="active">ROL</td>
                        <td style="width:10%;text-align:left" class="active">FUNCIONARIO A CARGO</td>
                    </tr>
                    <%
              While Not rs_Resultados_Seguimiento.eof=true
                        val_codigo_seguimiento_certificado  = rs_Resultados_Seguimiento("codigo_seguimiento_certificado")
                        val_nombre_estado_certificado       = rs_Resultados_Seguimiento("nombre_estado_certificado")
                        val_codigo_unico_certificado        = rs_Resultados_Seguimiento("codigo_unico_certificado")
                        val_descripcion_certificado         = rs_Resultados_Seguimiento("descripcion_certificado")
                        val_nombre_solicitante              = rs_Resultados_Seguimiento("nombre_solicitante_certificado")
                        val_fecha_ingreso_certificado       = rs_Resultados_Seguimiento("fecha_ingreso_certificado")
                        val_rol_completo_predio             = rs_Resultados_Seguimiento("codigo_manzana_predio") & "-" & rs_Resultados_Seguimiento("codigo_lote_predio")
                        val_funcionario_a_cargo             = rs_Resultados_Seguimiento("nombre_completo_funcionario") & "-" & rs_Resultados_Seguimiento("apellido_completo_funcionario")

                        if var_esta_activo_predio = -1 then
                            var_esta_activo_predio = 1
                        end if

                        if var_esta_activo_predio = 0 then
                            text_esta_activo_predio = "DESACTIVADO"
                        else
                            text_esta_activo_predio = "ACTIVO"
                        end if

                        if val_rol_asignado_predio = true then
                            text_rol_asignado_predio = "SI"
                        else
                            text_rol_asignado_predio = "NO"
                        end if
                    %>
                        <tr>
                            <td style="text-align:center">
                                <small>
                                    <%=val_codigo_seguimiento_certificado%>
                                </small>
                            </td>
                            <td style="text-align:center">
                                <small>
                                    <%=val_nombre_estado_certificado%>
                                </small>
                            </td>
                            <td style="text-align:center">
                                <small>
                                    <%=val_descripcion_certificado%>
                                </small>
                            </td>
                            <td style="text-align:left">
                                <small>
                                    <%=val_nombre_solicitante%>
                                </small>
                            </td>
                                <td style="text-align:left">
                                <small>
                                    <%=val_fecha_ingreso_certificado%>
                                </small>
                            </td>
                               <td style="text-align:left">
                                <small>
                                    <%=val_rol_completo_predio%>
                                </small>
                            </td>
                               <td style="text-align:left">
                                <small>
                                    <%=val_funcionario_a_cargo%>
                                </small>
                            </td>

                            <td style="text-align:center">
                                <button type="button" class="btn btn-default btn-sm" aria-hidden="true" data-toggle="modal" data-target="#div_mapa" onclick="fun_ver_mapa_basic(<%=val_predio_IDE%>,<%=value_codigo_cobertura_tipo%>)">
                                    <span class="glyphicon glyphicon-map-marker" aria-hidden="true"></span> Ver
                                </button>
                            </td>
                            <td style="text-align:center">
                                <button type="button" class="btn btn-default btn-sm"  onclick="return submitFormFindKey_Predio_Lista_onclick(<%=val_codigo_unico_predio%>);">
                                    Seleccionar
                                </button>
                            </td>
                        </tr>
                    <%
                    rs_Resultados_Seguimiento.movenext
                    Wend
                    %>
                </tbody>
            </table>
        </div>
        <!-- Modal -->
        <div class="modal " id="div_mapa" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
            <div class="modal-dialog"> 
                <div class="modal-content" style="width:700px;">
                    <!--<div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                        <h4>Mapa<h4>
                    </div>-->
                    <div class="modal-body" style="width:700px; height:450px">
                        <iframe id="frame_mapa" src="<%=Session("param_aplicacion_web_server")%>modulo_gestor_territorial/predio/iframe/frame_Mapa_Visor_Predio.asp" style="width:670px; height:420px; border:1px; margin:0px; padding:0px">
                            <p>Your browser does not support iframes.</p>
                        </iframe>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
                    </div>
                </div>
            </div>
        </div>
<!-- #include virtual=/shared_formato/multiservicio_07/formato_pagina/multiservicio_end_login.asp-->
<!-- #include virtual=/shared_formato/multiservicio_07/formato_pagina/multiservicio_bootstarp.asp-->
<%
'DESTRUYE OBJETOS
'-----------------------------------------------------------------------------------------------------------------------------------------------
set rs_Resultados_Seguimiento = Nothing
%>

该错误显示在第124行,其中说:

ADODB.Recordset错误'800a0e78'

如果对象已关闭,则不允许该操作。

第124行

线124标有一些*

答案

由于产生错误的行是使用您的记录集的第一行,我只能假设您在Session("tipo_busqueda_predio")中测试的会话变量select case既不是1也不是3,这会导致记录集无法打开。测试该会话变量的内容,或使用case else

另一答案

您需要提供一个连接字符串才能工作。

尝试类似:(我假设您使用SQL Server,如果没有,请查看connectionstrings.com以了解如何打开连接)

<%            
      Dim conn, RS

      Set conn = Server.CreateObject("ADODB.Connection")

      conn.Open "Provider=SQLOLEDB; Data Source = (local); Initial Catalog = databaseName; User Id = username; Password=mypass"

      If clng(var_tipo_busqueda_predio) = 1 Then
            sql = "SELECT dbo_seguimiento_certificado.codigo_seguimiento_certificado, " &_
                  "dbo_estado_certificado.nombre_estado_certificado, "&_
                  "dbo_cip.codigo_unico_certificado, dbo_cip.descripcion_certificado, dbo_cip.nombre_solicitante_certificado, dbo_cip.fecha_ingreso_certificado," &_
                  "dbo_predios.codigo_manzana_predio, dbo_predios.codigo_lote_predio" &_
                  "dbo_funcionarios.nombre_completo_funcionario+' '+dbo_funcionarios.apellido_completo_funcionario as Nombre_Funcionario" &_
                  "FROM dbo_estado_certificado " &_
                  "INNER JOIN   dbo_seguimiento_certificado ON dbo_estado_certificado.codigo_estado_certificado = dbo_seguimiento_certificado.codigo_estado_certificado" &_
                  "INNER JOIN   dbo_cip ON dbo_seguimiento_certificado.codigo_unico_certificado = dbo_cip.codigo_unico_certificado" &_
                  "INNER JOIN dbo_funcionarios ON dbo_cip.codigo_unico_funcionario = dbo_funcionarios.codigo_unico_funcionario" &_
                  "INNER JOIN dbo_predios ON dbo_cip.codigo_unico_predio = dbo_predios.codigo_unico_predio" &_
                  "WHERE dbo_predios.codigo_manzana_predio=" & Clng(Session("codigo_manzana_busqueda")) & " AND dbo_predios.codigo_lote_predio=" & Clng(Session("codigo_lote_busqueda"))


      Else
           sql = "SELECT dbo_seguimiento_certificado.codigo_seguimiento_certificado, " &_
                 "dbo_estado_certificado.nombre_estado_certificado, "&_
                 "dbo_cip.codigo_unico_certificado, dbo_cip.descripcion_certificado, dbo_cip.nombre_solicitante_certificado, dbo_cip.fecha_ingreso_certificado," &_
                 "dbo_predios.codigo_manzana_predio as nvarchar, dbo_predios.codigo_lote_predio," &_
                 "dbo_funcionarios.nombre_completo_funcionario+' '+dbo_funcionarios.apellido_completo_funcionario as Nombre_Funcionario" &_
                 "FROM dbo_estado_certificado " &_
                 "INNER JOIN dbo_seguimiento_certificado ON dbo_estado_certificado.codigo_estado_certificado = dbo_seguimiento_certificado.codigo_estado_certificado" &_
                 "INNER JOIN dbo_cip ON dbo_seguimiento_certificado.codigo_unico_certificado = dbo_cip.codigo_unico_certificado" &_
                 "INNER JOIN dbo_funcionarios ON dbo_cip.codigo_unico_funcionario = dbo_funcionarios.codigo_unico_funcionario" &_
                 "INNER JOIN dbo_predios ON dbo_cip.codigo_unico_predio = dbo_predios.codigo_unico_predio" &_
                 "WHERE dbo_seguimiento_certificado.codigo_seguimiento_certificado=" & Clng(Session("codigo_seguimiento_certificado")),cn_body,1,1


     End if

     Set RS = conn.Execute(sql)

     If Not RS.EOF Then
          Do Until RS.EOF
%>
    <%= RS("codigo_seguimiento_certificado") %> <br />
<%
                RS.MoveNext
          Loop
      End If

      Set conn = Nothing        
%>

以上是关于VB怎么将ADODB.Recordset取的表付到本地变量里的主要内容,如果未能解决你的问题,请参考以下文章

无法将“ADODB.Recordset”类型的对象转换为“MSDATASRC.DataSource”类型

一个关于在VB中将Recordset 读出的内容放到一个数组变量中的问题!!

VBA 将整个 ADODB.Recordset 插入表中

C#怎么用ADODB.RecordSet.open操作Access数据库

vb连接SQL数据库后制作一个登陆界面。

如何从此 ADODB.Recordset 中获取插入 ID?