Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

El valor de BOF o EOF es True, o el actual registro se eliminó

Estas en el tema de El valor de BOF o EOF es True, o el actual registro se eliminó en el foro de SQL Server en Foros del Web. Buenas, tengo un problema. Tengo unas aplicaciones en VB6+SQL2000 que hasta hace poco estuvieron funcionando OK. Recientemente se tuvo que cambiar el servidor SQL por ...
  #1 (permalink)  
Antiguo 11/06/2010, 09:29
 
Fecha de Ingreso: abril-2005
Mensajes: 45
Antigüedad: 19 años
Puntos: 1
El valor de BOF o EOF es True, o el actual registro se eliminó

Buenas, tengo un problema.

Tengo unas aplicaciones en VB6+SQL2000 que hasta hace poco estuvieron funcionando OK.

Recientemente se tuvo que cambiar el servidor SQL por lo que reinstalaron las BD.
El problema es que en gran parte de las operaciones (generalmente al grabar algo) me sale ese error:

El valor de BOF o EOF es True, o el actual registro se eliminó...



Luego la aplicacion se cierra. Al ingresar nuevamente veo que el registro si fue guardado, el problema es que siempre me sale esa ventana de error.

Pienso que el problema esté por el SQL o alguna configuracion que falta, ya que las aplicaciones no han sido modificadas, y como mencioné, antes de la migracion de sql funcionaban bien.


Otra cosa, no solo pasa en un programa, sino en varios sistemas que tengo.

Última edición por 0zK4Rr; 11/06/2010 a las 09:34
  #2 (permalink)  
Antiguo 11/06/2010, 10:06
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: El valor de BOF o EOF es True, o el actual registro se eliminó

Puedes mostrarnos parte del codigo donde ocurre el error?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 11/06/2010, 10:14
 
Fecha de Ingreso: abril-2005
Mensajes: 45
Antigüedad: 19 años
Puntos: 1
Respuesta: El valor de BOF o EOF es True, o el actual registro se eliminó

Cita:
Iniciado por flaviovich Ver Mensaje
Puedes mostrarnos parte del codigo donde ocurre el error?

Haciendo debug, llego hasta aqui, y luego salta el error

Código:
Sub Guardar()
    On Error GoTo ErrUpdate

    If fg(0).FixedRows = fg(0).Rows Then
        MsgBox "No hay datos para iniciar el proceso.", vbExclamation
        Exit Sub
    End If
    
    For r = fg(0).FixedRows To fg(0).Rows - 1
        lID = fg(0).Cell(flexcpText, r, 0)
        lItem = fg(0).Cell(flexcpText, r, 15)
        lFecha = IIf(fg(0).Cell(flexcpText, r, 9) = Empty, "Null", "'" & fg(0).Cell(flexcpText, r, 9) & "'")
        DBconex.Execute "Update BDLogistica..Pagoefectivo set Fecha=" & lFecha & ",hora='" & fg(0).Cell(flexcpText, r, 10) & "',agencia='" & fg(0).Cell(flexcpText, r, 11) & _
        "',total=" & Format(fg(0).Cell(flexcpText, r, 12), forImporte) & ",ctacte='" & fg(0).Cell(flexcpText, r, 13) & "',observ='" & fg(0).Cell(flexcpText, r, 14) & "' where id=" & lID & " and item=" & lItem
        
    Next
    Call Me.Datos
    
    On Error GoTo 0
        If Err.Number = 0 Then MsgBox Func_Error(50010), vbExclamation
    Exit Sub
ErrUpdate:
  MsgBox Err.Description, vbCritical
End Sub

Última edición por 0zK4Rr; 12/06/2010 a las 09:20
  #4 (permalink)  
Antiguo 11/06/2010, 11:30
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: El valor de BOF o EOF es True, o el actual registro se eliminó

En que linea sale el error?
Has verificado que valores tienes en ese momento?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #5 (permalink)  
Antiguo 11/06/2010, 11:45
 
Fecha de Ingreso: abril-2005
Mensajes: 45
Antigüedad: 19 años
Puntos: 1
Respuesta: El valor de BOF o EOF es True, o el actual registro se eliminó

Cuando presiono un boton GUARDAR, llega hasta la op2 y luego dispara el error. al final si llega a completar el registro, pero siempre me sale ese error.

  #6 (permalink)  
Antiguo 11/06/2010, 14:06
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: El valor de BOF o EOF es True, o el actual registro se eliminó

Has probado ejecutar tu update desde el Analizador de consultas?
Si dices que si actualiza, entonces el problema debe estar en tu procedimiento Datos.
Tienes que mostrar la linea exacta donde sale el error.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #7 (permalink)  
Antiguo 12/06/2010, 09:21
 
Fecha de Ingreso: abril-2005
Mensajes: 45
Antigüedad: 19 años
Puntos: 1
Respuesta: El valor de BOF o EOF es True, o el actual registro se eliminó

Cita:
Iniciado por flaviovich Ver Mensaje
Has probado ejecutar tu update desde el Analizador de consultas?
Si dices que si actualiza, entonces el problema debe estar en tu procedimiento Datos.
Tienes que mostrar la linea exacta donde sale el error.

Sale en esta parte

If Err.Number = 0 Then MsgBox Func_Error(50010), vbExclamation


(mas arriba está el codigo completo y donde está ubicado esta linea)
  #8 (permalink)  
Antiguo 12/06/2010, 12:01
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: El valor de BOF o EOF es True, o el actual registro se eliminó

que hace la funcion Func_Error?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #9 (permalink)  
Antiguo 14/06/2010, 07:34
Avatar de -rommel_  
Fecha de Ingreso: junio-2008
Ubicación: Lima
Mensajes: 360
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: El valor de BOF o EOF es True, o el actual registro se eliminó

Normalmente ese Error te sale cuando dice ah alcanzado el Inicio-1 o el Final+1 de los Registros de la consulta... quitale todo el procedimiento de rror y veras que tu error esta en la linea QUE TE SEÑALO ABAJO... El codigo dejalo de esta manera:
Código vb:
Ver original
  1. Sub Guardar()
  2.     If fg(0).FixedRows = fg(0).Rows Then
  3.         MsgBox "No hay datos para iniciar el proceso.", vbExclamation
  4.         Exit Sub
  5.     End If
  6.    
  7.     For r = fg(0).FixedRows To fg(0).Rows - 1
  8.         lID = fg(0).Cell(flexcpText, r, 0)
  9.         lItem = fg(0).Cell(flexcpText, r, 15)
  10.         lFecha = IIf(fg(0).Cell(flexcpText, r, 9) = Empty, "Null", "'" & fg(0).Cell(flexcpText, r, 9) & "'")
  11.          
  12.          '''''' AQUI TE SALE EL ERROR - Verifica los valor que envias al Execute...
  13.        DBconex.Execute "Update BDLogistica..Pagoefectivo set Fecha=" & lFecha & ",hora='" & fg(0).Cell(flexcpText, r, 10) & "',agencia='" & fg(0).Cell(flexcpText, r, 11) & _
  14.         "',total=" & Format(fg(0).Cell(flexcpText, r, 12), forImporte) & ",ctacte='" & fg(0).Cell(flexcpText, r, 13) & "',observ='" & fg(0).Cell(flexcpText, r, 14) & "' where id=" & lID & " and item=" & lItem        
  15.          ''''''
  16.    Next
  17.     Call Me.Datos
  18.  
  19. End Sub

O de lo contrario te sale el Error cuando haces... un NEXT mas al For... de lugar del FOR... Trabaja con do While not EOF(Componente)... si me entiende???

Etiquetas: registro
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 09:29.