PDA

Ver la Versión Completa : Crear TTable a partir de un TQuery


ContraVeneno
23-06-2005, 18:29:35
Trabajo con delphi 5, SQL Server 2000 con conexción remota utilizando los componentes SQL Direct.
Tengo la información que necesito en un TSDQuery y me gustaría saber si puedo crear un TTable a partir del query. Lo que requiero es simular que el programa esta trabajando sobre una tabla local para poder conectar una TdxDBGrid (Dev Express QuantumGrid v2.2) y me permita modificar la información ya que si lo conecto a traves de SQL Direct (conexión remota) no me permite modificar el contenido del grid.

¿Puedo simular un TTable a partir del Query?

fredo
23-06-2005, 18:37:40
conectale a la query un DataSetProvide, luego a este un ClienDataset, con ello ya puedes modificar, en caso que sea una solo la tabla de tu query bastara con Applyupdate para actualizar tos registros..., para mas deberas hacer una query que te actualice e incerte los cambios en el Clientdataset.

Ojala te sirva.

jachguate
23-06-2005, 18:39:17
No estoy seguro de entender lo que pretendes.. pero mirá la idea de copiar el contenido devuelto por el query a un ClientDataSet.

Pero si vas a permitir modificar los registros, cómo los devolveras a la BD?
Saludos.

fredo
23-06-2005, 18:46:23
clientdatase.applyupdate...

eso postea los cambios

fredo
23-06-2005, 18:50:15
mirando bien tu post usas SQLDiect, los he usado, funcionan bien todos los comandos de edicion, no entiendo porque no te funcionan... :confused: te da algun mensaje al postear un cambio, dame mas informacion, si puedes la query tambien...

ContraVeneno
23-06-2005, 18:50:42
Gracias, voy a probar la sugerencia y luego les cuento....
sobre el posteo será el siguiente tema :D por lo pronto lo que requiero es hacer el TdxDBGrid me permita modificar la información.
Cuando el TdxDBGrid lo conecto a una base local, puedo modificar perfectamente.
Pero cuando lo conecto a la base de datos del servidor no me lo permite.

jachguate
23-06-2005, 19:08:19
clientdatase.applyupdate...

eso postea los cambios

Si está conectado a través de un provider y el dataset implementa las interfaces necesarias, si...

jachguate
23-06-2005, 19:11:09
Cuando el TdxDBGrid lo conecto a una base local, puedo modificar perfectamente.
Pero cuando lo conecto a la base de datos del servidor no me lo permite.

Esto no lo creo... para el Grid, es irrelevante de donde vienen los datos. De hecho, no creo que lo sepa, puesto que únicamente sabrá comunicarse con datasets, y por este lado, no conozco un dataset que se comporte diferente en base a si la base de datos es local o si es remota. La mayoría, si no es que todos, incluso ignoran también esa información.

Hasta luego.

;)

ContraVeneno
23-06-2005, 22:03:02
El problema es que para hacer la conexión remota, estan utilizando unos procesos que generarón externamente años antes de que yo empezara a trabajar con esto. Y hacen la conexión Utilizando un DataModule dentro del cuál utilizan componentes SQLDirect (SDDatabase y SDQuery). Cada dataset que se crea, se genera con la propiedad ReadOnly=True por lo que no puedo editar y postear, solo consultar, a menos que cambie el query a un Insert y luego hacer un ExecSQL ... Esa es la razón por la que no me deja modificar la información que cargo ya sea en un TdxDBGrid o en un TDBGrid.

Cada vez que quiero hacer un edit al dataset me marca "no se puede editar un dataset que es de solo lectura" y cuando trato de cambiar la propiedad de solo lectura a falso el sistema se congela, crash y se acabo....

En fin, muchas gracias por su tiempo, de cualquier manera buscaré otra opciones de realizar lo que quería hacer sin utilizar DBGrids.

fredo
23-06-2005, 22:29:28
¿tienen la propiedad requestLive... tus componentes....?

ContraVeneno
23-06-2005, 22:38:49
Nop los componentes SQLDirect no tienen la propiedad RequestLive