SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: cristy en Viernes 20 de Diciembre de 2002, 13:15

Título: Re: Codigo
Publicado por: cristy en Viernes 20 de Diciembre de 2002, 13:15
Hola tengo es codigo para eliminar unos registro de un control de datos adodc pero cae en un loop infinito, lo rutie y no avanza aun que le cambien el movefirst por movenext no se mueve gracias


elimino = 0
bdgeo.UserName = st_login
bdgeo.Password = st_passw
bdgeo.ConnectionString = Conectar
bdgeo.RecordSource = "SELECT * FROM sondajes.t_identi WHERE yacimiento=1 AND codlabor='" & clabor_del & "'"
bdgeo.Refresh
If bdgeo.Recordset.RecordCount > 0 Then
Do Until bdgeo.Recordset.EOF
bdgeo.Recordset.MoveFirst
bdgeo.Recordset.Delete
elimino = 1
Loop




Muchas Gracias
Título: Re: Codigo
Publicado por: Jaume en Viernes 20 de Diciembre de 2002, 14:27
El siguiente código debería funcionar puesto que lo he probado

(Fíjate en el orden de las instrucciones)

elimino = 0
bdgeo.UserName = st_login
bdgeo.Password = st_passw
bdgeo.ConnectionString = Conectar
bdgeo.RecordSource = "SELECT * FROM sondajes.t_identi WHERE yacimiento=1 AND codlabor='" & clabor_del & "'"
bdgeo.Refresh
If bdgeo.Recordset.RecordCount > 0 Then
Do Until bdgeo.Recordset.EOF  
bdgeo.Recordset.Delete
bdgeo.Recordset.MoveNext
elimino = 1
Loop


Saludos
Título: Re: Codigo
Publicado por: cristy en Viernes 20 de Diciembre de 2002, 17:17
esta igual el codigo, es muy raro por que no sale de loop es como que no borrara ni avanzara  ¿? mira lo cortare y pegare tal cual como esta



'elimina sondaje
clabor_del = st_codlabor.Caption
'On Error GO TO   ' Inicializa el controlador de error.
    opcion = MsgBox("Confirma eliminar la Labor " & clabor_del & " y todos sus datos", vbOKCancel, "Sistema de Muestreo Geologico")
    If opcion = 1 Then
        Call deshabilitar_botones
        Datatabla.ClearFields
        elimino = 0
        bdgeo.UserName = st_login
        bdgeo.Password = st_passw
        bdgeo.ConnectionString = Conectar
        bdgeo.RecordSource = "SELECT * FROM sondajes.t_identi WHERE yacimiento=1 AND codlabor='" & clabor_del & "'"
        bdgeo.Refresh
        If bdgeo.Recordset.RecordCount > 0 Then
            'bdgeo.Recordset.MoveFirst
            Do Until bdgeo.Recordset.EOF
                 bdgeo.Recordset.Delete
                 MsgBox bdgeo.Recordset.Fields(0)
                 bdgeo.Recordset.MoveNext
                 MsgBox bdgeo.Recordset.Fields(0)
                elimino = 1
              Loop
              bdgeo.Refresh
            bdgeo.Refresh
        End If
        If elimino = 1 Then
            st_codlabor.Caption = ""
            a = MsgBox("Muestra eliminada Satisfactoriamente", vbOKOnly, "ATENCION")
        Else
            a = MsgBox("No se encontraron datos que eliminar", vbOKOnly, "ATENCION")
        End If
        co_op.Enabled = False
    End If
Exit Sub

If Err.Number <> 0 Then
   Msj = "Error # " & Str(Err.Number) & " fue generado por " _
         & Err.Source & Chr(13) & Err.Description
   MsgBox Msj, , "Error", Err.HelpFile, Err.HelpContext
End If


End Sub
Título: Re: Codigo
Publicado por: Jaume en Lunes 23 de Diciembre de 2002, 09:18
Creo que no vamos a conseguir nada de esta manera. Lo mejor sería que hicieras un ZIP con  todo el programa, para que podamos ver todo el código y definición de objetos.

Yo he probado el Do Until y funciona, por lo que creo que el problema debe ir por otro lado.

Cuélgalo en un mensaje o mándamelo.

Salu2
Título: Codigo
Publicado por: cristy en Lunes 23 de Diciembre de 2002, 17:29
Si tenias toda la razon el problema era por otro lado intente insertar por el SQl Plus y no me dejo por un problema en un trigger  gracias