Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Recordset desconectado ???

Estas en el tema de Recordset desconectado ??? en el foro de Visual Basic clásico en Foros del Web. Hola como estan? bueno el problema que tengo es que a travez de un procedimiento almacenado en mysql cargo los datos de una consulta a ...
  #1 (permalink)  
Antiguo 11/12/2009, 11:40
mgd
 
Fecha de Ingreso: enero-2009
Mensajes: 129
Antigüedad: 15 años, 3 meses
Puntos: 0
Mensaje Recordset desconectado ???

Hola como estan?
bueno el problema que tengo es que a travez de un procedimiento almacenado en mysql cargo los datos de una consulta a un recordset, entonces ese recordset lo cargo a un msflexgrid.
Cando intento filtrar ese recordset aveces me da error en la linea
Código VB:
Ver original
  1. rspacientes.Filter = "nombre" & " LIKE '*" + txtfiltro + "*'"

el error es de que se perdio la conexion con el servidor, aveces tambien me da error en rspacientes.movefirst

mientras uso el programa en la misma maquina que el servidor anda todo bien y muy pocas veces da este error. las variables del servidor las extendi osea que ese no es el problema.

Intento desconectar el recordset una vez ejecutado el procedimiento almacenado y cargado los datos al recordset algo asi

Código VB:
Ver original
  1. Set cmd = New ADODB.Command
  2.     Set rspacientes = New ADODB.Recordset
  3.     cmd.ActiveConnection = db
  4.     rspacientes.CursorLocation = adUseClient
  5.     cmd.CommandText = "call cargarpacientes('" & estado & "','" & orden & "')"
  6.     Set rspacientes = cmd.Execute
  7.  
  8.     Set rspacientes.ActiveConnection = Nothing


Esto me dice que la operacion no esta permitida si el objeto esta abierto

entonces prueba asi
Código VB:
Ver original
  1. Set cmd = New ADODB.Command
  2.     Set rspacientes = New ADODB.Recordset
  3.     cmd.ActiveConnection = db
  4.     rspacientes.CursorLocation = adUseClient
  5.     cmd.CommandText = "call cargarpacientes('" & estado & "','" & orden & "')"
  6.     Set rspacientes = cmd.Execute
  7.     rspacientes.Close
  8.     Set rspacientes.ActiveConnection = Nothing

y esto me dice que no se puede cambiar la propiedad activeconnection del objeto recordset si el origen es un objeto command


Que puedo hacer ????

Agrego que solo utilizo el recordset para cargar los datos en controles y los update, delete o insert los hago con otros procedimientos almacenados.

Muchas gracias
  #2 (permalink)  
Antiguo 11/12/2009, 13:37
 
Fecha de Ingreso: abril-2005
Ubicación: Piura - Perú
Mensajes: 189
Antigüedad: 19 años
Puntos: 0
Respuesta: Recordset desconectado ???

a ver

estas usando una funcion cargapacientes, pero lo estas colocando como texto, dentro del CommandText entonces lo toma como texto, de consulta y no lo concidera como funcion, entonces intenta de esta manera:

Código:
cmd.CommandText = call cargarpacientes('" & estado & "','" & orden & "')
De preferencia pega la funcion cargapacientes para saber como trabaja
  #3 (permalink)  
Antiguo 11/12/2009, 17:57
mgd
 
Fecha de Ingreso: enero-2009
Mensajes: 129
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Recordset desconectado ???

Código MySQL:
Ver original
  1. PROCEDURE `cargarpacientes`(estadop varchar(10), ordenp varchar(50))
  2. if estadop = "TODOS" then
  3.  
  4.     select pacientes.codpaciente, pacientes.nombre, pacientes.domicilio, concat(pacientes.telefono,'/', pacientes.celular) as telefono, obrasocial.descripcion as obrasocial, localidades.descripcion as localidad
  5.  
  6.     from localidades, pacientes left join obrasocial on obrasocial.codobra = pacientes.obrasocial
  7.  
  8.     where pacientes.codpostal = localidades.codpostal order by nombre;
  9.  
  10.  
  11.     select pacientes.codpaciente, pacientes.nombre, pacientes.domicilio, concat(pacientes.telefono,'/', pacientes.celular) as telefono, obrasocial.descripcion as obrasocial, localidades.descripcion as localidad
  12.  
  13.     from localidades, pacientes left join obrasocial on obrasocial.codobra = pacientes.obrasocial and obrasocial.estado = 'ALTA'
  14.  
  15.     where pacientes.codpostal = localidades.codpostal and pacientes.estado = estadop  order by nombre;
  16.  





ese es el procedimiento almacenado que uso. El parametro orden no lo uso

Probar lo que me decis no se puede me da error de sintaxis

Código VB6:
Ver original
  1. cmd.CommandText = call cargarpacientes('" & estado & "','" & orden & "')
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 02:35.