Hola!
tenia esta secuencia de codigo:
'SQL para actualizar las tablas
strSQL = "Begin transaction" & vbCrLf
strSQL = "update VeControl set Contador=" & strArLine(2)
& "-1"
strSQL = strSQL & " where VeControl_Id='" & strArLine(0) &
"'" & vbCrLf
strSQL = strSQL & "update MovtosDia "
strSQL = strSQL & "set ContadorTotal=" & lngContTot & ","
strSQL = strSQL & "InicioCont=" & strArLine(1) & ","
strSQL = strSQL & "FinCont=" & strArLine(2) & "-1 "
strSQL = strSQL & "where Num_Ruta='" & strRutaNum & "' and
"
strSQL = strSQL & "FechaRuta={d '" & Format$(dteFecha,
"yyyy-mm-dd") & "'}"
strSQL = strSQL & vbCrLf
strSQL = strSQL & "commit transaction"
Entre otras cosas, este programa mantiene un control de un contador. Hay
varias rutas y
cada una de ellas tiene uno. Datos que son recbidos por el programa se
importan a la base
de datos y entre ellos esta el contador inicial y final. Yo guardo estos
dos datos mas la
diferenca entre ellos para saber cuanto subio.
Aparte de que no tengo codigo para probar si hubo errores dentro de la
transaccion, este
SQL estaba actualizando bien la mayoria de los registros. Solo algunas
veces fallaba, no actualizando
los datos del contador. Despues de cuidadosamente analizar el codigo
descubri el problema, que
radica en la segunda linea. (= "update VeControl...". Como solo contaba
con el strSQL = "...
esta linea estaba sobre escribiendo el contenido de strSQL, siendo este
"begin transaction".
Mi pregunta es que tipo de problema se puede esperar cuando se tiene un
commit tran sin
un begin tran? Se me hace muy raro que este SQL este funcionando bien
para la mayoria de los
registros.
Cualquier comentario es bienvenido :-)
Gracias
Saga
Leer las respuestas