PDA

Ver la Versión Completa : Tomar el valor de una celda de un dbgrid


Petolansa
07-09-2005, 22:31:28
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:

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.


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

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