Foros del Web » Programando para Internet » ASP Clásico »

No se puede utilizar la conexión para realizar esta operación

Estas en el tema de No se puede utilizar la conexión para realizar esta operación en el foro de ASP Clásico en Foros del Web. Hola necesito ayuda con el siguiente error Script error detected at line 379. Source line: rsmo.Open SQLmo, conecta Description: No se puede utilizar la conexión ...
  #1 (permalink)  
Antiguo 26/03/2009, 14:43
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 1 mes
Puntos: 7
No se puede utilizar la conexión para realizar esta operación

Hola necesito ayuda con el siguiente error

Script error detected at line 379.
Source line: rsmo.Open SQLmo, conecta
Description: No se puede utilizar la conexión para realizar esta operación. Está cerrada o no es válida en este contexto.


He buscado informacion pero no encuentro la falla las soluciones que e visto estan tal como lo tengo desarrollado .

Esto es una parte de una combobox dinamica que estoy haciendo. Las lineas de codigo son las siguientes:

Código:
<%
'-----------------------------------
' query de Modelo
'------------------------------------

SQLmo = "Select MODELO From CELULAR "
SQLmo = SQLmo & " Order By MODELO"

set rsmo = CreateObject("ADODB.Recordset")
rsmo.Open SQLmo, conecta   //LINEA DE ERROR

cuenta = 0
cat = "basura"

While Not rsmo.EOF

	if cat <> rsmo.Fields("MODELO") then		
		'---cambio de proyecto, empiezo a contar en 0
		cuenta = 0
		cat = rsmo.Fields("MODELO")		
	%>
		//además tengo que crear un nuevo array por proyectos
		var opciones<%=cat%> = new Array();
	<%
	end if		
	%>
	opciones<%=cat%>[<%=cuenta%>]=new Tupla("<%=rsmo.Fields("MODELO")%>","<%=rsmo.Fields("MODELO")%>");
	<%
	cuenta = cuenta + 1
	rsmo.MoveNext
	
wend

'---Limpiado de  objetos
rsmo.Close
set rsmo = nothing
%>
Las conexiones ya estan hechas en la primera parte del codigo


Si alguien sabe como arreglarlo se los agradesco
  #2 (permalink)  
Antiguo 26/03/2009, 16:38
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 1 mes
Puntos: 88
Respuesta: No se puede utilizar la conexión para realizar esta operación

no miro en la parte final donde escribas que
Código ASP:
Ver original
  1. conecta.close
  2. set conecta = nothing
lo tienes en alguna otra parte del codigo???

digo, porque sino cierras la coneccion una ves finalizada la consulta, no podras consultarla.... : logicamente

verifica
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 27/03/2009, 06:44
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 8 meses
Puntos: 16
Respuesta: No se puede utilizar la conexión para realizar esta operación



has creado el objeto conecta ?
  #4 (permalink)  
Antiguo 27/03/2009, 07:28
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: No se puede utilizar la conexión para realizar esta operación

Agradesco sus respuestas ya vi el error pero antes de ver sus mensajes efectivamente era un problema con la conexion (conecta) .
La habia cerrado unas 100 lineas de codigo antes y no me habia dado cuenta.
Pero ahora el problema es que me muestra la primera combobox para hacer la seleccion pero no las 2 sub siguientes adjunto el codigo por si me pueden ayudar gracias

Esto esta en el principio

Código:
<script language="vbscript" runat="server">
    
     		dim conecta, rs3, rsmo, rsnu, reg4, reg5, reg6, SQL3, SQL4, SQLmo, SQLnu 
			
			set conecta=server.createobject("ADODB.connection")
			cadenaconeccion="Provider=MSDASQL;Data Source=prueba"
			conecta.connectionstring=cadenaconeccion
			conecta.open

set reg4=server.createobject("ADODB.recordset")
      sql3="select distinct EQUIPO from CELULAR"
      reg4.activeconnection=conecta
      reg4.open sql3
Código:
<form name="CC"  method="post" action>
<div align="center"><img src=w3.forosdelweb.com/images/uno.JPG" width="262" height="76" />
<p class="Estilo1">Informaci&oacute;n  Tr&aacute;fico De Celulares</p>
<p class="Estilo1">Nombre Empresa S.A.</p>
</div>

<table name="tabla" width="250px" class="fondo_table3">
	<tr><td colspan=6 class="titulo"></td></tr>
	<tr><td colspan="6" height=4></td></tr>
   
  <tr>
			<td class="text_black_bold_12" width="20%" nowrap>&nbsp;<strong>Tel&eacute;fono</strong>&nbsp;</td>
			<td colspan="3"> 
            <%
			
			SQL3 = "SELECT distinct EQUIPO"
			SQL3 = SQL3 & " FROM CELULAR "
			Set reg4 = conecta.Execute(SQL3) 					
			%>
                        
			  <select name="CCequipo" id="EQUIPO" class="combo" OnChange="ComponerLista (document.forms.CC.CCequipo.value);">
                                                  <option value="0" selected>Seleccionar</option>
                 <%
			  if Not reg4.Eof then 
					noRecord = 1
			        While (not reg4.EOF)
			          %>
                      <option value="<%=(reg4.Fields.Item("EQUIPO").Value)%>"><%=(reg4.Fields.Item("EQUIPO").Value)%></option>
                      <%
			        reg4.Movenext
			        wend
			  else
					noRecord = 0	
			         %>    
                    
              <%end if
				reg4.Close
			  %>                 
              </select>		  
		  </td>			  
  </tr>
  
  <TR>
	  <TD WIDTH="120%">
	    <strong>Modelo:</strong></TD>
		
	<TD WIDTH="71%">			
			<Select Name="CCmodelo" style="display:none">				
			</Select>	
			<INPUT 
			TYPE="TEXT"
			NAME="modelo" 
			SIZE="1"
			maxlength="10"
			value="ninguno"
			style="display:none"
			>		
	</TD>
	</TR>
  
  <TR>
		<TD WIDTH="20%">
		  <strong>N&uacute;mero De Serie:</strong></TD>
		
	    <TD WIDTH="71%">			
	        <Select Name="CCserie" style="display:none">				
	        </Select>	
	        <INPUT 
			TYPE="TEXT"
			NAME="serie" 
			SIZE="1"
			maxlength="15"
			value="ninguno"
			style="display:none"
			>		
	</TD>
  </TR>
<tr><td colspan="6" width="100%">&nbsp;</td></tr>
	<tr>
		<td colspan="6" align="center">
			<input type="button" name="CCbuscar" value="Buscar" class="botton80x23" onClick="sql3">&nbsp;&nbsp;&nbsp;
			<input type="button" name="CClimpiar" value="Limpiar" class="botton80x23" onClick="BorrarLista()">	
		</td>
	</tr>
	<tr><td colspan="6">&nbsp;</td></tr>
  
</table>

esto esta justo antes de cerrar el </html> me e estado ayudando con un codigo de este link w3.aspfacil.com/codigo/listasdependientes.asp

Código:
<script language = "JavaScript">
<!--
function Tupla ( campo1, campo2 )
{
	this.campo1 = campo1;
	this.campo2 = campo2;	
}

<%
'-----------------------------------
' query de Modelo
'------------------------------------

SQLmo = "Select  distinct MODELO From CELULAR "
SQLmo = SQLmo & " Order By MODELO"


set rsmo = CreateObject("ADODB.Recordset")
rsmo.Open SQLmo, conecta

cuenta = 0
cat = "basura"

While Not rsmo.EOF

	if cat <> rsmo.Fields("MODELO") then		
		cuenta = 0
		cat = rsmo.Fields("MODELO")		
	%>
		var opciones<%=cat%> = new Array();
	<%
	end if		
	%>
	opciones<%=cat%>[<%=cuenta%>]=new Tupla("<%=rsmo.Fields("MODELO")%>","<%=rsmo.Fields("MODELO")%>");
	<%
	cuenta = cuenta + 1
	rsmo.MoveNext
	
wend

rsmo.Close
set rsmo = nothing
'conecta.Close
'set conecta=nothing
%>

<%
'----------------------------------
' query de Numero de Serie
'----------------------------------
SQLnu = "Select distinct NUM_SERIE From CELULAR"
SQLnu = SQLnu & " Order By NUM_SERIE"

set rsnu = CreateObject("ADODB.Recordset")
rsnu.Open SQLnu, conecta

x = 0
cod = "basura"
			
While Not rsnu.EOF

	if cod <> rsnu.Fields("NUM_SERIE") then
		
		x = 0
		cod = rsnu.Fields("NUM_SERIE")
	%>
		var numero<%=cod%> = new Array();
	<%
	end if
	%>				
	numero<%=cod%>[<%=x%>]=new Tupla("<%=rsnu.Fields("NUM_SERIE")%>","<%=rsnu.Fields("NUM_SERIE")%>");
	<%		
	x = x + 1		
	rsnu.MoveNext
	
wend

rsnu.Close
set rsnu = nothing
%>

//--------------------------------------------------
// Función que compone dos (2) listas dependientes
//--------------------------------------------------
function ComponerLista ( array ) 
{
	// Limpia opciones del select
	BorrarLista();
	
	cantReg = <%=noRecord%>
	
	// Verifica si hay registros del combo padre
	if (cantReg==0) {
		document.forms.CC.modelo.style.display = "";	
		document.forms.CC.serie.style.display = "";		
		}
	else
		{
		document.forms.CC.CCmodelo.style.display = "";		
		document.forms.CC.CCserie.style.display = "";	
		
		array = eval("opciones" + array);			
		for (contador = 0; contador < array.length; contador++) 
			{
			var optionObj = new Option( array[contador].campo1, array[contador].campo1);
			CCmodelo.options[contador] = optionObj;								
			} 
		codigo_equipo = document.forms.CC.CCequipo.options[document.forms.CC.CCequipo.selectedIndex].value;
		
		Metr = eval("numero" + codigo_equipo);		
		for (contador = 0; contador < Metr.length; contador++) 
		{
			// añade elementos al combobox correspondiente a Número de serie
			var optionObj1 = new Option( Metr[contador].campo2, Metr[contador].campo2 );
			CC.CCserie.options[contador] = optionObj1;					
		} 				
		}					
} 


//-----------------------------------
// Función que limpia las opciones 
// de los combos dependientes
//-----------------------------------
function BorrarLista() 
{
	CC.CCmodelo.length = 0;
	CC.CCserie.length = 0;
}


//Inicializamos
ComponerLista (document.forms.CC.CCequipo.value);
-->
</script>
Si me pueden ayudar se los agradeceria mucho ya que me lo estan pidiendo con urgencia en el trabajo y yo no tengo muchos conocimientos ya que recien termine mi carrera en analisis de sistemas.
Voy a poner un tema con errores en ASP para poder ayudar a los demas miembos del foro ya que lo encontre muy util

Última edición por TonyChile; 27/03/2009 a las 08:19
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:10.