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)
-   -   Modificar campos en un DBGrid en tiempo de ejecuciòn (https://www.clubdelphi.com/foros/showthread.php?t=31658)

maravert 13-05-2006 19:34:01

Modificar campos en un DBGrid en tiempo de ejecuciòn
 
Hola, espero podran a darme un empujòn

Trabajo en Delphi7 con Paradox.

Tengo una tabla Pedidos.db (Con estos campos clv_art_ok, can, prec) conectada con su dataset y su Dbgrid respectivamente.

En el dbgrid el usuario tecleara informaciòn y el programa buscarà informacion en otras tablas y esa informaciòn la traera de nuevao al DBGrid y lo debe de almacenar en unos de sus campos. El codigo que uso para grabar informaciòn desde un formulario (form5) al Form3 (donde esta el dbgrid es el siguiente).

En el Form5 realizo una consulta como esta:

Código Delphi [-]
procedure TForm5.DBGrid1CellClick(Column: TColumn);
begin
mclave := (query1.fieldByname ('clv_art').asString);
mdescr := (Query1.fieldByname ('descr').asString);
 
form3.table2.edit;
form3.table2.fieldbyname ('clv_art_ok').asstring := mclave;
form3.Table2.Post;
end;






Cuando ejecuto el programa me dice que no se encuentra el campo ('clv_art_ok') y pues eso es falso porque el campo si existe.

Código Delphi [-]
form3.table2.fieldbyname ('clv_art').asstring := mclave;





Por favor diganme como actualizar una table con un dbgrid en tiempo de ejecuciòn con informaciòn generada con codigo.

Gracias

Alemar:confused:

judit25 13-05-2006 20:05:24

a mi me ha dado varias veces que no encuentra un campo en una tabla y lo he solucionado agregando todos los campos en la tabla mediante el field editor, no se si eso te podra ayudar en tu caso, a mi me ha funcionado

saludos

maravert 13-05-2006 23:48:28

Gracias Judith, voy a probar eso

Lepe 14-05-2006 08:37:41

Con lo dicho por judit25 va que chuta, pero si lo quieres hacer todo por código... pues se hace ;)

Para el caso de un DBGrid que puede estar asociado a varias consultas SQL al mismo tiempo, esa solución no sirve de mucho; Para un TTable que no tenemos los campos persistentes creados pues más de lo mismo, así que lo hacemos por código:

Código Delphi [-]
procedure TForm5.DBGrid1CellClick(Column: TColumn);
begin
mclave := (query1.fieldByname ('clv_art').asString);
mdescr := (Query1.fieldByname ('descr').asString);

Table2.FieldsDefs.Update; // actualizamos la definición de los campos
DBGrid1.Columns.RebuildColumns; // con esa nueva definición actualizamos las
                                            //columnas del grid
 
form3.table2.edit;
form3.table2.fieldbyname ('clv_art_ok').asstring := mclave;


form3.Table2.Post;
end;

Saludos


La franja horaria es GMT +2. Ahora son las 05:06:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi