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)
-   -   Tomar el valor de una celda de un dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=24963)

Petolansa 07-09-2005 22:31:28

Tomar el valor de una celda de un dbgrid
 
Buenas gente, cuando hago una consulta sql y me devuelve determinados campos en un dbgrid como hago para que haciendo doble click en una celda me tome el valor que esta ahi, ejemplo quiero tomar ese valor y pasarselo a un edit de otro form.

desde ya muchas Gracias.
Delphi 7 y SQL

delphi.com.ar 07-09-2005 22:34:36

No tomas el dato del DBGrid, porque este no hace mas que mostrar los datos del DataSet que tenga enlazado. Entonces lo que haces es tomar el dato del DataSet, que es el objeto que tiene todas las propiedades y métodos al respecto, por ejemplo:
Código Delphi [-]
Edit1.Text := DataSet.FieldByName('MiCampo').AsString;

Saludos!

Petolansa 07-09-2005 22:50:00

Muy agradecido Federico

Darth Delphi 07-09-2005 23:34:41

Creo, que de esta manera puede funcionar perfectamente, no lo he probado.
Sin embargo quisiera saber la forma de copia un campo de una query representado en un DBgrid a otro DBgrid que esta ligado a otra query.
por su ayuda mil gracias

jmariano 07-09-2005 23:48:11

Pues actuarías de forma similar a como ha dicho Federico, pero almacenando el valor en el Query correspondiente y no en un TEdit.

Código Delphi [-]
  DataSet.Edit;
  DataSet.FieldByName('MiCampoDestino').Value := DataSet.FieldByName('MiCampoOrigen').Value;
  DataSet.Post;

Saludos!

vtdeleon 08-09-2005 01:48:08

Saludos
[quote=Darth Delphi...quisiera saber la forma de copia un campo de una query representado en un DBgrid a otro DBgrid que esta ligado a otra query.[/QUOTE]El dbgrid no tiene que ver mucho para tu solucion, ya que quien en realidad contiene los datos es el dataset(Query).
Código Delphi [-]
   DataSetDestino.Edit;
  DataSetDestino.FieldByName('Campo').Value := DataSetOrigen.FieldByName('Campo').Value;
  DataSetDestino.Post;
Pd: es el mismo ejemplo que propuso jmariano, pero con un peque~o cambio, ya que haciar referencia al mismo dataset

jmariano 08-09-2005 03:14:15

Cita:

Empezado por vtdeleon
Pd: es el mismo ejemplo que propuso jmariano, pero con un pequeño cambio, ya que haciar referencia al mismo dataset

Ups! Gracias por la corrección vtdeleon! (efectívamente, el DataSet origen no va a ser el mismo que el DataSet destino ;) )

Saludos!

Darth Delphi 09-09-2005 00:07:03

Cual seria la propiedad de la query para poderla modificar

lucasarts_18 09-09-2005 00:16:57

Hola:

No se pueden modificar directamente ya que los datos están cargados en memoria (en definitiva es una consulta), si puedes modificar los datos directos sobre una tabla enlazada a un DBGrid..
Recuerdo también haber hecho esto con el componente UpdateSQL.

Saludos.

vtdeleon 09-09-2005 02:33:34

Saludos

Como dice lucasarts_18, en un query solo puedes consultar, pero usando el componente TUpdateSQL (o TSqlUpdate no me acuerdo:p) podrias enlazarlo a tu query y usar los metodos edit, insert,.... Por otra parte, tambien puedes usar sentencias SQL como update, insert, delete para realizar los movimientos necesarios que necesite tu DB.


La franja horaria es GMT +2. Ahora son las 12:47:41.

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