![]() |
Firedac añadiendo registro ya existente al paquete actual
Hola de nuevo Amigos,
Les planteo mi inquietud: Utilizando Firedac con Delphi Berlin tengo lo siguiente un Formulario con un DBGrid en el cual realizo busquedas conectado a un FDQuery, en dicho formulario un toolbar para realizar distintas tareas(insertar, modificar, etc) un (CRUD), estas tareas la realizo en un formulario modal conectado a otro FDQuery, la idea es que si realizo busquedas en el primer FDQuery y dicho FDQuery tiene ya un conjunto de resultados al yo añadir un registro en el formulario Modal con el otro FDQuery ver el nuevo registro sin perder el conjunto de resultados anterior del primer FDQuery. Saludos, |
Y la pregunta es...
|
Hola Casimiro, disculpas
La Pregunta es ¿Como puedo incluir un registro insertado en un dataset A en el paquete de registros ya consultados de otro dataset B? Ojo con el metodo Refresh de los FDQuery se puede refrescar la consulta y obtener el registro siempre y cuando este coincida con las condiciones de los filtros actuales. Pero la idea es que aunque no coincidan los filtros actuales aparezca el registro insertado y que el usuario se percate de que este se inserto. |
Veamos si lo he entendido. Ejemplo, tienes un select:
Y luego tienes otro select: Y quieres que el registro del segundo select se añada al primer select. Obviamente eso no es posible. La verdad es que no se me ocurre el motivo de querer complicarte la vida con eso. |
Cita:
Tomando como ejemplo la misma consulta
si tengo un FDQuery que tiene esta consulta y me las muestra en un grid a lo mejor trae muchos registros y las actualizaciones las estoy realizando en un FDQuery que se limita a un registro
Cuando inserto dicho registro utilizando este segundo FDQuery lo que deseo es que aparezca en el resultado del primero aunque el primero tenga una condición distinta al que estoy insertando para que el usuario se percate de que se inserto. Con los DatasetProvider y ClientDataset esto se realiza fácilmente por lo que en Firedac debe ser igual de fácil. En una aplicación en 3 capas en el afterApplyUpdate del Provider puedo realizar una consulta condicionándola por el registro insertado y añadiendola al paquete que registros que tiene cargado el primero y luego en el afterApplyUpdate del ClientDataset con el metodo AppendData() en la capa de presentación puedo visualizar el registro junto con los que tiene cargado. Estoy evita tener que consultar de nuevo el paquete de registros completo ademas de que las actualizaciones se realizan utilizando un dataset configurado exclusivamente para actualizaciones mientras que el otro que esta orientado exclusivamente a consultas |
Buscando y buscando ya lo encontre
Ahí esta por si alguno de los compañeros se le presenta algo similar.
|
¿Qué es ADQuery1.Table?
|
Hola Casimiro
Cita:
El link de donde busque la informacion esta aquí, si alguien lo ha podido mejorar, agradezco su colaboración. Fetching and Populating Questions (FireDAC) |
La programación se trata de prueba y error, al fin di con el cometido
Si se trata el FDQuery como un FDMemTable, con una sola linea esta resuelto Código:
TFDMemTable(FDQuery1).AppendData(FDQuery2); Con ello se incluye el registro insertado en el FDQuery2 al paquete de registros abiertos de FDQuery1 |
La franja horaria es GMT +2. Ahora son las 03:23:08. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi