aparejador
Publicado por miguel sanchez lozano (1 intervención) el 31/07/2008 22:05:29
estoy pasando en vb6 las rutinas de base de datos de dao a ado, se supone que es mucho mas flesible, pero me encuentro que el el findfirt de dao es muchisimo mas rapido que el find de ado, cuando se utiliza con actualizaciones de tablas de muchos registros.
?existe alguna instruccion mas rapida en ado ¿
el listado de la rutina es el siguiente en dao:
Set c = ct.OpenRecordset("select * from cuentas order by codigo", dbOpenDynaset)
`mv es un recordset de 5000 registros
mv.MoveFirst
Do While mv.EOF = False
c.MoveFirst
c.FindFirst "codigo = '" + Left(mv(1), 2) + "'"
c.Edit
If mv(5) = "D" Then
c(2) = c(2) + mv(4)
Else
c(3) = c(3) + mv(4)
End If
c.Update
c.FindFirst "codigo = '" + Left(mv(1), 3) + "'"
c.Edit
If mv(5) = "D" Then
c(2) = c(2) + mv(4)
Else
c(3) = c(3) + mv(4)
End If
c.Update
c.FindFirst "codigo = '" + mv(1) + "'"
c.Edit
If mv(5) = "D" Then
c(2) = c(2) + mv(4)
Else
c(3) = c(3) + mv(4)
End If
c.Update
mv.MoveNext
Loop
c.Close
?existe alguna instruccion mas rapida en ado ¿
el listado de la rutina es el siguiente en dao:
Set c = ct.OpenRecordset("select * from cuentas order by codigo", dbOpenDynaset)
`mv es un recordset de 5000 registros
mv.MoveFirst
Do While mv.EOF = False
c.MoveFirst
c.FindFirst "codigo = '" + Left(mv(1), 2) + "'"
c.Edit
If mv(5) = "D" Then
c(2) = c(2) + mv(4)
Else
c(3) = c(3) + mv(4)
End If
c.Update
c.FindFirst "codigo = '" + Left(mv(1), 3) + "'"
c.Edit
If mv(5) = "D" Then
c(2) = c(2) + mv(4)
Else
c(3) = c(3) + mv(4)
End If
c.Update
c.FindFirst "codigo = '" + mv(1) + "'"
c.Edit
If mv(5) = "D" Then
c(2) = c(2) + mv(4)
Else
c(3) = c(3) + mv(4)
End If
c.Update
mv.MoveNext
Loop
c.Close
Valora esta pregunta


0