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)
-   -   Puedo modificar los resultados sql de un Tquery? (https://www.clubdelphi.com/foros/showthread.php?t=12983)

Capo 03-08-2004 00:30:40

Puedo modificar los resultados sql de un Tquery?
 
Hola Amigos, Gracias de antamano
Tengo un databases intocable en Access, solo debo accesarlo para consultarlo y/o extraer informacion de él y luego pasarla a excel, eso lo he podido hacer utilizando un Tquery y un RxDbGrid. Pero......
Algunos campos de ese tquery los intento editar para cambiar sus valores, pero me dice que no lo puedo hacer.....que otro componente puedo usar? o que puedo hacer para modificarlo?

Gracias..capo.:(

__marcsc 03-08-2004 00:38:21

Hola,

dále un vistazo a este hilo del histórico, te servirá

http://www.clubdelphi.com/foros/show...ht=RequestLive

Saludos!

Capo 03-08-2004 01:08:08

Gracias Marcsc,
Gracias por la respueta, Hermano.
Pero yo no quiero borrar nada de las tablas, solo quiero modificar, editar etc la consulta sql en el Tquery.

Modificar los registros de la consulta SQL pero en el Tquery. no en la tabla.

//Saludos
Capo.

Paoti 03-08-2004 03:00:06

pon la propiedad requestlive del query a true (si te permite establecerla puedes modificar los datos, si no no) si esta en true y no puedes modificar, tendria que ser con un TTable

jachguate 03-08-2004 04:48:03

Cita:

Empezado por Paoti
pon la propiedad requestlive del query a true (si te permite establecerla puedes modificar los datos, si no no) si esta en true y no puedes modificar, tendria que ser con un TTable

si le asocias un objeto TUpdateSQL podes poner requestLive a True aunque la consulta no sea modificable según el estándar (joins, group by, subconsultas, etc).

Para aprender a usar el TUpdateSQL te recomiendo la lectura del libro La Cara Oculta de delphi, de ian marteens.

Hasta luego.

;)

roman 03-08-2004 08:50:28

Q
 
Ni RequestLive ni UpdateSQL servirán.

Pero esto es así porque el problema de Capo es un problema de concepto. Cualquiera de los dos métodos harán que se modifique la tabla original- que es lo que quiere evitar. El punto es que el Query no es una rejilla de datos independiente de la fuente de datos. O es modificable o no lo es. Y sí lo es (o se fuerza a serlo usando UpdateSQL) entonces se modificarán los datos originales.

Lo único que Capoo tiene que hacer es vaciar un campo e una variable, modificar la variable y pasar el valor modificado a Excel.

So lo que quiere es que el usuario modifique tales valores visualmente entonces tendrá que presentárselos de otra manera, por ejemplo, vaciando los resultados del Query en un StringGrid.

// Saludos

jachguate 03-08-2004 09:10:19

Tenes toda la razón román... obvie leer detenidamente el planteamiento original.

Sin embargo, aunque parezca retorcido... yo me atrevería a decir que hay una solución:

Iniciar una transacción antes de cualquier modificación... mantener estas en cache, y por último, terminar desechando el cache y haciendo un rollback.

Se que no es lo óptimo, e ignoro las capacidades de access para trabajar con transacciones, pero es una posibilidad.

Hasta luego.

;)

ruina 03-08-2004 10:30:04

ufff, no reinventemos la rueda...

veamos, segun lo veo yo la solución de usar controles no dataware complica la programación y ofrece menos flexibilidad. Lo de usar transacciones me parece que es como matar moscas a cañonazos, asi que se me ocurren un par de soluciones:

1 usar el MemoryTable de las Rx, aunque el proceso de copiar los registros deberias implementarlo tu a mano.

2 usar ClientDataset con el modelo de briefcase. Esta es la que mas me gusta ^_^ simplemente saca un Clientdatase y un provider, en el momento de abrir la consulta los conectas y luego los desconectas:
Código Delphi [-]
...
    DataSetProvider1.DataSet:=Query1;
    ClientDataSet1.ProviderName:=DataSetProvider1.Name;
    ClientDataSet1.FetchOnDemand:=false;
    ClientDataSet1.Active:=true;
    DataSetProvider1.DataSet:=nil;
...

y encima tienes la posibilidad de grabar a XML

Capo 03-08-2004 17:40:58

Garcias a todos por las anotaciones, son muy amables.

Roman atino a lo que estoy necesitando, pero veo que la cosa esta como complicada, la idea es pasar toda la consulta a excel, pero tengo que modificar unas cosas en los resultados de la consulta en el Tquery o podria ser un strinGrid.

La idea de Ruina, la voy a desarrollar, habia visto ese componente en lo Rx pero niidea que esa "vaina" podia servirme, agradesco su colaboracion y ojala pudiera tirarme un link en donde pueda saber mas de este componente. RxMemoryData.

Gracias a todos
//Saludos..Capo.


La franja horaria es GMT +2. Ahora son las 11:59:50.

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