Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Crear TTable a partir de un TQuery (https://www.clubdelphi.com/foros/showthread.php?t=22688)

ContraVeneno 23-06-2005 18:29:35

Crear TTable a partir de un TQuery
 
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

ojo...
 
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

Cita:

Empezado por fredo
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

Cita:

Empezado por ContraVeneno
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


La franja horaria es GMT +2. Ahora son las 19:53:46.

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