PDA

Ver la Versión Completa : Columnas TDbgrid en modo edición


JAI_ME
11-09-2012, 17:12:02
Buenos días, he realizado una consulta (SQL) sobre varias tablas paradox y he mostrado el resultado en un Tdbgrid, relacionado con un TQuery y un TDatasourse. En esta consulta tengo dos columnas vacías dispuestas para que el usuario digite información sobre ellas. El problema es que como es un TQuery no permite que el TDbgrid se coloque en modo de edición, cosa que si hace el TTable la cuestión es que quisiera que el usuario registrara datos en estas columnas y se guardara en otra tabla.

TiammatMX
11-09-2012, 19:32:14
Buenos días, he realizado una consulta (SQL) sobre varias tablas paradox y he mostrado el resultado en un Tdbgrid, relacionado con un TQuery y un TDatasourse. En esta consulta tengo dos columnas vacías dispuestas para que el usuario digite información sobre ellas. El problema es que como es un TQuery no permite que el TDbgrid se coloque en modo de edición, cosa que si hace el TTable la cuestión es que quisiera que el usuario registrara datos en estas columnas y se guardara en otra tabla.

Por definición, un Query no te va a permitir insertar un dato, ya que es un conjunto de datos ligados por una característica en particular. Si puedes, continúa utilizando un TTable o genera una pantalla que recabe los datos para tu registro e insértalo con una construcción SQL de INSERT, con éso seguro resuelves el problema.

roman
11-09-2012, 19:36:17
Otra opción es usar un componente TUpdateSQL, el cual asocias al Query y te permite especificar cómo se actualiza y así poder editar directamente en el grid.

// Saludos

JAI_ME
11-09-2012, 20:00:31
Como puedo usar este componente, suena interesante me pueden orientar. gracias

ecfisa
11-09-2012, 20:30:02
Como puedo usar este componente, suena interesante me pueden orientar. gracias
Hola JAI_ME.


Pone un componente TUpdateSQL y asignalo a la propiedad UpdateObject del TQuery.
Estando seleccionado el componente TUpdateSQL -> click con el botón derecho del mouse -> elije la opción UpdateSQL Editor...
Ya en el UpdateSQL Editor -> click en botón Get Table Fields-> click en botón Select Primary Keys (selecciónala) -> click en el botón Generate SQL.
Por último el TQuery deberá tener la propiedad RequestLive en True.


Saludos.

JAI_ME
11-09-2012, 21:24:53
Gracias por sus respuestas, pero tengo un problema ya que la consulta mostrada en el TQuery es un sql sobre 3 tablas las cuales uso inner y left join.

por ejemplo

select ts.artic, ts.nombre, si.sisaldo, p.nombre, si.sifecha
from "c:\sofinf\crm\infvent\2012\saldos" ts
left join "c:\sofinf\cortes\bd\saldoinicial" si on si.siidproducto = ts.artic
inner join "c:\sofinf\crm\infvent\2012\proveedores" p on ts.tipoinv = p.codigo
where ts.artic <> '0'
order by ts.innombre

y el TUpdateSql me reconoce solo la primera tabla "c:\sofinf\crm\infvent\2012\saldos", y debo editar la información de la tabla "c:\sofinf\cortes\bd\saldoinicial".

JAI_ME
12-09-2012, 17:54:45
He intentado de miles formas y no he podido lograrlo, no puedo quitar el left join porque lo requiero y la actualización la debo hacer sobre la tabla relacionada con el left, en que me pueden ayudar. Gracias

cancun
12-09-2012, 21:45:21
Hola


Yo suelo utilizar una tabla en memoria, al hacer la consulta envio los datos a la tabla la cual es editada en el DBGrid y luego paso los datos capturados.


Saludos