Actualizar TFDMemTable
Hola a todos, tengo la siguiente situación y me gustaría me ayudaran. Necesito leer los datos de una tabla en una base Firebird y que el usuario refresque los datos mostrados a gusto. Para tal efecto utilizo un TFDStoredProc que arroja los datos que necesito mostrar a el enlazo un TFDMemTable, que guardara los datos en memoria y finalmente un TDataSource que enlaza los datos a una grilla de datos, hasta aqui todo bien, los datos se muestran en forma correcta, el problema ocurre cuando intento refrescar los datos mostrados utilizando la siguiente instrucción:
No refresca los datos, existiendo cambios que visualizar (los modifique directamente en la tabla). Ahora, probé esto mismo utilizando TFDStoredProc -> TDataSetProvider -> TClientDataSet -> TDataSource y Y funciona....Ustedes me podrán decir porque no utilizo un ClientDataSet en vez de un FDMemTable, pero la idea es ir migrando mis aplicaciones a FireDac... Espero me puedan ayudar, les recuerdo que solo necesito leer datos. Gracias |
Si estamos usando Firedac para accesar los datos no hay razón de peso para usar TFDMemTable como un componente indiviudal, ya que cada dataset de Firedac implementa un TFDMemTable interno.
Con esto quiero decir que puedes realizar directamente las actualizaciones y refresco sobre el componente TFDStoredProc sin necesidad de "trucos" adicionales ya que siempre hay internamente un TFDMemtable para cachear los datos.. Esto es, puedes conectar directamente el datasource a tu FDStoredproc y en el código realizar FDStoredProc.Refresh. Debería funcionar. Saludos, |
Gracias orodriguezca, por tu respuesta, podrias profundizar mas referente a:
Cita:
Entendido lo anterior, la instrucción: debería funcionar, ya que el comportamiento base de este componente es similar a un ClientDataSet Gracias |
No soy un experto pero, basado en algunos desarrollos que he realizado y en la documentación consultada, puedo decirte que componentes como TFDQuery, TFDStoredProc y TFDTable hacen uso internamente de TFDMenTable para almacenar los datos de las consultas. En el caso del TFDStoredProc es como si tuvieramos un TStoredProc+TDataSetProvider+ClientDataSet en un solo componente.
Entonces, cuando utilizar un TFDMemtable?, Cuando no estamos usando Firedac para accesar los datos y deseamos utilizar la potencia del TFDMemTable o cuando necesitamos utilizar datos tabulares que no provienen de una base de datos relacional, por ejemplo, cargar datos de un archivo cvs. Puedes consultar esta información: http://docwiki.embarcadero.com/RADSt...able_Questions |
La franja horaria es GMT +2. Ahora son las 07:02:24. |
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