Foros del Web » Programación para mayores de 30 ;) » Programación General »

Pasar del error en Vb 6

Estas en el tema de Pasar del error en Vb 6 en el foro de Programación General en Foros del Web. Hola maestros, tengo una aplicacion en Visual Basic 6 que consiste en un bucle que no para de buscar en una tabla de una base ...
  #1 (permalink)  
Antiguo 17/12/2003, 11:12
rochadtk
Invitado
 
Mensajes: n/a
Puntos:
Pasar del error en Vb 6

Hola maestros, tengo una aplicacion en Visual Basic 6 que consiste en un bucle que no para de buscar en una tabla de una base de datos SqlServer. A veces me da error al abrir la tabla "Tiempo de espera agotado" pulso F5 y continua sin problemas. Pero con el programa compilado e intalado en el equipo eso no lo puedo hacer. Como puedo remediar este problema?

Gracias
  #2 (permalink)  
Antiguo 17/12/2003, 11:19
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 9 meses
Puntos: 50
Porque no pones el codigo que tienes para echarle un ojo

Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 17/12/2003, 13:09
 
Fecha de Ingreso: septiembre-2003
Mensajes: 172
Antigüedad: 21 años, 2 meses
Puntos: 0
Prueba a poner On error resume next al principio de la funcion.

Saludos.
__________________
Sr.Propio
  #4 (permalink)  
Antiguo 17/12/2003, 13:22
Avatar de Alexis_m20  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 71
Antigüedad: 20 años, 11 meses
Puntos: 0
en el objeto conexion pone esto arriba del oconn.open

oconn.commandTimeout = 3000


esto le da un tiempo de espera más largo a tu conexion

ojala te sirva
__________________
_______________________
Si Puedo Ayudar lo HARE
Mi web Pages
  #5 (permalink)  
Antiguo 18/12/2003, 04:14
rochadtk
Invitado
 
Mensajes: n/a
Puntos:
Gracias por vuestra ayuda, no he puesto el código porque es muy largo, aunque si quereis lo pongo para que le echeis un vistazo.

Voy a probar a aumentarle el tiempo y con el On Error Resume Next. Pero tengo una duda con el On Error. Si me da un error al abrir la tabla y he puesto el On Error Resume Next, pasará a la siguiente instrucción y no abrirá la tabla. Entonces el error seria otro al intentar consultar los datos de la tabla, ya que estaría cerrada.

Creo que la solución pasa por el On Error Resume Next, pero no tengo del todo claro como funciona. Por favor ayudarme.

Gracias de nuevo.
  #6 (permalink)  
Antiguo 18/12/2003, 08:06
Avatar de Alexis_m20  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 71
Antigüedad: 20 años, 11 meses
Puntos: 0
con eso lo debes poner asi

On Error Resume Next ' Atrapamos si hay algun error
'Aqui haces la conexion a tu tabla

if err then
msgbox "HUBO UN ERROR"
end
END IF

asi serie
__________________
_______________________
Si Puedo Ayudar lo HARE
Mi web Pages
  #7 (permalink)  
Antiguo 18/12/2003, 11:17
rochadtk
Invitado
 
Mensajes: n/a
Puntos:
Gracias Alexis, lo voy a probar. Esto es lo que estaba buscando, lo que pasa es que en la ayuda de Visual Basic 6 no veia claro como hacerlo.

Un Saludo.
  #8 (permalink)  
Antiguo 20/12/2003, 22:31
 
Fecha de Ingreso: diciembre-2003
Mensajes: 2
Antigüedad: 20 años, 11 meses
Puntos: 0
Hola rochadtk,

dos preguntas:

a) Estas utilizando ODBC ?
b) La consulta que estas haciendo a la base de datos esta filtrada, es decir, te estas trayendo solo los datos necesarios

Este error que tienes se presenta cuando utilizas ODBC, frecuentemente, y ademas se pudo haber bloqueado la base de datos, si otro usuario usa la misma paginacion de la tabla de sql server.
  #9 (permalink)  
Antiguo 21/12/2003, 05:22
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 21 años
Puntos: 0
Hola,

hay muchos errores por los que puede saltar un timeout, por ejemplo que la red esté saturada. "On error resume next" está muy bien pero no sigue intentándolo. Prueba:

Sub abrir_tabla()

On Error Goto control_errores

--línea que abre la tabla
--resto de código


Exit Sub
control_errores:

if err.number= (nº de error de timeout) then
resume 'vuelve a ejecutar la misma instrucción que originó el error
'aquí puedes tener un contador para salir si lo ha intentado un nº de veces
else
'lo que quieras(salir, mensaje, etc)
end if
End Sub

Saludos
Pablo
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 15:26.