Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Columnas TDbgrid en modo edición (https://www.clubdelphi.com/foros/showthread.php?t=80236)

JAI_ME 11-09-2012 18:12:02

Columnas TDbgrid en modo edición
 
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 20:32:14

Cita:

Empezado por JAI_ME (Mensaje 442783)
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 20: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 21:00:31

Como puedo usar este componente, suena interesante me pueden orientar. gracias

ecfisa 11-09-2012 21:30:02

Cita:

Empezado por JAI_ME (Mensaje 442805)
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 22: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

Cita:

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 18: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 22: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


La franja horaria es GMT +2. Ahora son las 02:34: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