Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-08-2004
Avatar de Capo
Capo Capo is offline
Miembro
 
Registrado: jul 2004
Posts: 64
Poder: 20
Capo Va por buen camino
Unhappy 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.
Responder Con Cita
  #2  
Antiguo 03-08-2004
Avatar de __marcsc
__marcsc __marcsc is offline
Miembro
 
Registrado: may 2003
Ubicación: Girona
Posts: 577
Poder: 22
__marcsc Va por buen camino
Hola,

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

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

Saludos!
Responder Con Cita
  #3  
Antiguo 03-08-2004
Avatar de Capo
Capo Capo is offline
Miembro
 
Registrado: jul 2004
Posts: 64
Poder: 20
Capo Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 03-08-2004
Avatar de Paoti
Paoti Paoti is offline
Miembro
 
Registrado: may 2003
Ubicación: Monterrey. N.L., México
Posts: 612
Poder: 21
Paoti Va por buen camino
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
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás...

análisis de información
análisis y diseño de sistemas

Paoti Rios Reséndiz
Responder Con Cita
  #5  
Antiguo 03-08-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

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.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 03-08-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #7  
Antiguo 03-08-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #8  
Antiguo 03-08-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Poder: 20
ruina Va por buen camino
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
__________________
todo el mundo debe creer en algo... yo creo que voy a tomarme otra copa.
Responder Con Cita
  #9  
Antiguo 03-08-2004
Avatar de Capo
Capo Capo is offline
Miembro
 
Registrado: jul 2004
Posts: 64
Poder: 20
Capo Va por buen camino
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:49:29.


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
Copyright 1996-2007 Club Delphi