![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema para Actualizar en un VirtualQuery
Saludos amigos, estoy haciendo un carrito de compras usando 10.2.1 Tokyo y SQL Server 2014. He aqui la situacion:
Paso 1: Identificación de Componentes Involucrados: 1. cxGrid (nombre=gridCarritoCompra), 2. TVirtualTable (nombre=vt_Carrito) 3. TVirtualQuery (nombre=q_UPDParams) 4. TUniDataSource (nombre=ds_Carrito) 5. TcxTextEdit (nombre=txtCantidad) 6. TcxTextEdit (nombre=txtPrevioVenta) Paso 2: Descripción del Proceso 1. El Usuario busca y selecciona un producto, el cual se agrega a vt_Carrito y se muestra en gridCarritoCompra. (Esto funciona bien). Por defecto la cantidad del pedido agregado es 1. 2. El usuario al hacer doble clic sobre la fila que contiene el pedido de un producto en vt_Carrito, se permite cambiar la cantidad y el precio de venta en txtCantidad y txtPrecioVenta ubicados en la parte inferior del cxgrid. 3. Se programó el evento OnExit de txtCantidad para ejecutar el siguiente código:
4. El Codigo SQL de q_UPDParams es:
5. Los Eventos Click y DblClick de la cxGrid los coloco a continuacion:
El problema es que solo funciona la primera vez la actualización, visualizandose el cambio en la grilla, la segunda vez y subsiguientes no hace ningún cambio. Agradezco cualquier ayuda en esto. Americo |
#2
|
||||
|
||||
Cita:
¿Exactamente del comportamiento que comentas, cual es el que no funciona (intenta concretar)? Por otro lado, mi recomendación es que no utilices los eventos visuales para realizar tareas en la Base de Datos. En el caso del Exit, yo revisaría los eventos asociados al Dataset (al cambiar el valor del campo).
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
||||
|
||||
1) Pon un ShowMessage de los parámetros de la sentencia, para ver que estás actualizando realmente el valor.
2) Revisa el valor de Base de Datos, para saber (lo primero) si es un problema visual o de Base de Datos (así centras el problema). Cita:
Al no ser un componente Dataware, yo lo que haría sería poner ese código en un módulo de Datos (procedure ActualizacionLineaDetalle) y hacer la llamada desde el evento. De esta forma al menos, "separas" la parte visual de la parte lódica/Datos.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
|||
|
|||
Gracias Neftali
Cita:
Saludos |
#6
|
|||
|
|||
Hice los primeros cambios
Saludos Neftali, me pareció prudente cambiar los 2 componentes de texto txtCantidad y txtPrevioVenta a componentes DB-Aware, ahora son TCxDBTextEdit y estan conectados a sus respectivos campos correctamente. Aquí los cambios:
Paso 1: En el Evento OnExit de txtCantidad hago el post:
Sin embargo, al intentar cambiar un valor la aplicación arroja un error: Assertion failure (D:\Projects\MemData.pas, line 7161), luego al salir del foco del componente aparece el mensaje de que el DataSet no esta en Edit o Insert Mode... Recuerda que estoy trabajando sobre un VirtualTable llamado vt_Carrito, de modo que la única forma que conozco de saber que se realizo bien es mediante la visualizacion de sus registros en la grilla. Saludos Última edición por darkamerico fecha: 11-07-2018 a las 16:28:00. |
#7
|
||||
|
||||
Cita:
Normalmente ese error ocurre cuando intentas cambiar un Dataset (un valor de un campo) estando en el estado "incorrecto". Las líneas en el orden correcto serían algo así; Revisa que las estés haciendo correctamente
Revisa las líneas donde estés cambiando campos del Dataset y asegurate de que el Dataset está en modo Edit; Haz debug paso a paso y dinos exactamente la línea que está fallando.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema para actualizar fecha | oscarac | OOP | 3 | 31-01-2018 01:33:27 |
Actualizar freepascal para programar con XE2 para iOS | David Jiménez | FireMonkey | 0 | 18-04-2013 11:19:21 |
Problema con Stored Procedure para actualizar tabla con datos de otra tabla. | Adrian Murua | MySQL | 4 | 04-02-2012 02:54:49 |
Problema para actualizar el servidor | papulo | Firebird e Interbase | 42 | 04-09-2008 11:15:28 |
Problema Para Actualizar Un Registro | sdiaz1983 | Conexión con bases de datos | 3 | 21-01-2008 04:00:10 |
![]() |
|