Tenemos un programa que se esta desarrollando con visual Basic 6.0 con base
de datos SQL Server 2000 y nuestro principal problema radica en la digitación
de información que se realiza en una de las opciones del programa, en esta
opción se digita información en una grilla Spread Designer 3.0.32 – 32 bit,
cuando se realiza la digitación se gatilla la llamada a un store procedure el
cual se encarga de grabar la información realizando un update contra la
tabla, produciéndose lo siguiente, en algunas ocasiones se digitan n
registros y los graba, pero en algún momento de forma aleatoria deja de
grabar, es decir de una digitaron por ejemplo de 1000 registros solo graba la
mitad, creyendo por supuesto que los 1000 registros se han grabado, pero
cuando se realiza un chequeo de la información esta no esta completa.
Hemos probado con muchas alternativas ya que este problema se presenta
siempre, es decir un día graba una determinada cantidad de registro y en otro
momento otra cantidad, es decir aleatoriamento graba y otras no.
Pensamos que podía ser la aplicación, por lo mismo cambiamos en varias
ocasiones el código que lleva los datos al store procedure, por ejemplo lo
ultimo que se creo fue un objeto comand.
Dim Comando As ADODB.Command
Set Comando = New ADODB.Command
Comando.ActiveConnection = DB
Comando.CommandType = adCmdStoredProc
Comando.CommandText = "Sp_GrabaGrillaResultado"
Comando.Parameters.Append Comando.CreateParameter("NroProyecto",
adBigInt, adParamInput)
Comando.Parameters.Append Comando.CreateParameter("Fono", adBigInt,
adParamInput)
Comando.Parameters.Append Comando.CreateParameter("CodResultado",
adBigInt, adParamInput)
Comando.Parameters.Append Comando.CreateParameter("Cod_C",
adVarChar, adParamInput, 2)
Comando.Parameters.Append Comando.CreateParameter("Cod_D",
adVarChar, adParamInput, 2)
Comando.Parameters.Append Comando.CreateParameter("Fecha_Mov",
adDate, adParamInput, 2)
Comando("NroProyecto").Value = lProyecto
Comando("Fono").Value = CLng(fono)
Comando("CodResultado").Value = CodResultado
Comando("Cod_C").Value = Trim(COD_C)
Comando("Cod_D").Value = Trim(COD_D)
Comando("Fecha_Mov").Value = hoy
Comando.Execute
Set Comando = Nothing
Vemos en el Profiler lo que sucede con la información que pasamos por el
store procedure y dándonos cuenta que al parecer los datos están siendo
grabados, pero lamentablemente no es así, al store procedure se le agrego el
siguiente código, antes de hacer el update
Set Implicit_Transaction Off
Con la idea que no se limitara el numero de transacciones posibles, pero
lamentablemente no funciono, además se instalo el cliente de SQL Server
actualizando también el Mdac.
Hay que señalar que cuando nos damos cuenta que la información se grabo
hasta cierto punto y seguimos digitando no recibimos ningún mensaje de parte
del servidor, que nos indique que algo esta sucediendo con esos registros que
de alguna manera no se están grabando
SERA ALGUNA CONFIGURACION DEL DRIVER DE CONEXION O SETEOS EN SQL SERVER
(buffer, temporales, restricciones,etc)
Leer las respuestas