PDA

Ver la Versión Completa : Editar datos de un wwDbGrid...asociado a un Qry!!!


Diana Carolina
18-07-2011, 18:05:48
Hola,
Estoy tratando de que cuando me situe sobre los datos que me muestra una grilla al darle en el boton editar pueda modificar la informacion de la fila sobre la que me encuentro.
No se que evento debo programar, coloque los campos del qry en su propiedad ReadOnly:False, pero no me permite editar, que debo hacer???

Casimiro Notevi
18-07-2011, 18:14:47
No dices qué componente exacto estás usando, ni la base de datos, ni... nada ;)

Si estás usando, por ejemplo, un TDataSet y has rellenado las sentencias select, update, etc. entonces te es suficiente con hacer doble click en el Grid (por ejemplo) y pasará al modo de edición.
Y en todo caso lo haces tú a mano:

GridDblClick(Sender:etc...)
begin
dataset.edit;
end;


Recuerda poner en el OnAfterPost del Dataset algo así como:
DataSet.OnAfterPost
begin
Dataset.transaction.commit;
end

Para confirmar el cambio.

Casimiro Notevi
18-07-2011, 18:17:00
Y si acaso, mira este (http://www.clubdelphi.com/foros/showthread.php?t=68708) hilo.

Diana Carolina
18-07-2011, 18:32:54
Ok, el componente que tiene la consulta es un TQry, que se conecta a un TDataSource, la base esta en sqlserver2008, y trabajo con delphi 6.

Tengo una pantalla en la que estan los componentes DBEdit, los cuales los lleno consultando otras tablas, y complemento una informacion en Componentes Edit, toda esta informacion (La que se carga en los DBEdit y en los Edit) se guarda en una nueva tabla, el Qry al que se conecta la Grilla hace una consulta a esa tabla.

Lo que intento es colocarle un boton a la pantalla para poder editar los datos que aparecen en la grilla y aplicarlos a la tabla.

Programe este evento para traer los datos de la tabla y la grilla a los DBEdits y Edits, efectivamente los carga, pero solo trae la primera fila que arroja la consulta, ademas al colocar el cursor sobre alguno de estos compnentes se borra la informacion que tienen.

procedure TFrmSponCuent.wwDBGSponDblClick(Sender: TObject);
begin
DtmSpon.QryConsultaSpon.close;
DtmSpon.QryConsultaSpon.open;
DtmSpon.ValidarCuenta;
DBEdNombre.Text := DtmSponCuent.QryConsultaSponnom_clie.AsString;
DBEdTipIden.Text := DtmSponCuent.QryConsultaSponTip_Iden.AsString;
DBEdNumIden.Text := DtmSponCuent.QryConsultaSponNit_Clie.AsString;
DBEdCuenta.Text := FloatToStr(DtmSponCuent.QryConsultaSponCon_Cuen.asfloat);
DBEdNomCta.Text := DtmSponCuent.QryConsultaSponCtanom_cuen.AsString;
DBEdPais.Text := DtmSponCuent.QryConsultaSponCtaDescripcion.AsString;
EdCod_Spon.Text := DtmSponCuent.QryConsultaSponCodigo.AsString;
EdBolsa_Origen.Text := DtmSponCuent.QryConsultaSponBolsa.AsString;

end;

No se que programarle y si el metodo que intento es el mas adecuado...

Neftali [Germán.Estévez]
19-07-2011, 10:42:26
¿Cual es el query que estás utilizando?

Es posible que sea una consulta NO-ACTUALIZABLE.

Diana Carolina
19-07-2011, 21:41:08
Gracias,,,Resolvi el problema coenctando la consulta a un Client Data Set...:p