Los datos no se muestran despues de guardar.
Amigos,
Tengo un problema con un programa que estoy desarrollando. Les explico. El programa es para manejo de ventas, inventarios y cuentas por cobrar. Cuando registro una venta que inserte datos en cuentas por cobrar, luego de hacer la venta, voy a cuentas por cobrar para que me muestre el listado de las cuentas que hay en ese momento y me muestra todas las antiguas transacciones excepto la última que acabo de realizar. y recien al cabo de varios minutos, recien puedo verla, o cauando cierro el programa y vuelvo a abrirlo. Tambien puedo verla si realizo la consulta directamente en el SQL Server Management Studio 2005. Utilizo Delphi.net que trabaja sobre el Framework 1.1 y SQL Server 2005 SP3. Cada tabla tiene su propio procedimiento almacenado y el registro se realiza dentro de una transacción de sql server y en caso de que todo sea exitoso, se realiza el commit, caso contrario el rollback. // Co es un SqlCommand que ya tiene asignado previamente el procedimiento correspondiente. // Datos es un ArrayList donde vienen todos los parametros para pasarle al procedimiento // almacenado // Tr es un Objeto de tipo SqlTransaction. Co.Transaction := SqlTransaction(tr); if Datos.Count<=Co.Parameters.Count then begin for I := 0 to Datos.count - 1 do if Datos[i]<>nil then Co.Parameters[i].Value := Datos[i] else Co.Parameters[i].Value := Dbnull.Value; aux := Datos.Count; for j := aux to Co.parameters.count - 1 do Co.Parameters[j].Value := Dbnull.Value; end Co.ExecuteNonQuery; Una vez que toda la transacción se completo, procedo a ver en mi formulario de cuentas por cobrar, y no veo el último dato insertado. Para ver uso una Grilla que se carga a partir de un DataSet. function TAcceso.DevuelveDatoDS(sConsulta: string): DataSet; var Dap: IDbDataAdapter; Resultado : DataSet; begin Resultado := DataSet.Create; if (sConsulta<>'')then begin dap := sqlDataAdapter.Create(sConsulta, sqlConnection(cnx)); Dap.Fill(Resultado); sqlDataAdapter(dap).Dispose; end; result := Resultado; end; Esto voy intentando solucionarlo desde hace muuucho tiempo, si pudieran darme una mano, les agradecería mucho. Saludos. Atte. Didier. |
Hola
probastes con realizar un Post o Refresh despues de insert. Al insertar los datos a una tabla no lo podras visualizar en la consulta anterior a menos que la refresques o actualices la consulta. Yo lo que realizo despues de un Insert o Update es realizar otro proceso para que actualice los datos que muestro en la grilla o pantalla que quiero Salu2:p:D |
Con 160 mensajes no comentaré nada de lo que debería comentar, acerca de los TAG's.
|
Post o Refresh.... en que momento?
Cita:
Te agradezco mucho la colaboración, estoy con este inconveniente desde hace muuucho tiempo. Saludos. Didier. |
Cita:
no se si me explique bien... Salu2:p:D |
Cita:
Te comento que la consulta se ejecuta a la hora de abrir el nuevo formulario, es decir, despues de realizada la venta, y aún así no se muestra los últimos datos, inslusive hago que al cerrar la venta se liberen todos los datasets que venta utilizó. Saludos. |
Debes confirmar la transacción para que la visualices, lo más probable que tu aplicación la haga al momento de salir de la aplicación, por eso al ingresar por 2 vez ya la puedes ver.
Commit y Rollback. Mira por ahí. Saludos .- |
La franja horaria es GMT +2. Ahora son las 14:53:16. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi