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)
-   -   guardar de un DBGrid a una Tabla Paradox7 (https://www.clubdelphi.com/foros/showthread.php?t=50713)

megaredoxk 26-11-2007 17:54:11

guardar de un DBGrid a una Tabla Paradox7
 
un saludo muy especial...., compañeros me pueden ayudar a corregir este problemita..lo siguiente.

tablas paradox7 - Delphi6

tengo un DBGrid en el cual se insertan datos los cuales son
codigo cantidad producto valorunitario subtotal
1110 1 carro 5000 5000
1212 2 muñeco 1000 2000
1515 3 gafas 2000 6000

estos datos se deben guardar en la tabla3 = ventadetallada pero solamente se guarda el ùltimo registro ("solo un registro")
1515 3 gafas 2000 6000

el codigo que utilizo es el siguiente:
//Tabla Venta Detallada pero solo se guarda el primer campo y no todos los datos.

Table3.Append;
Table3.FieldByName('Código').Asinteger:= Dbgrid1.Columns[0].Field.Asinteger;
Table3.FieldByName('Producto').AsString:= Dbgrid1.Columns[2].Field.AsString;
Table3.FieldByName('Cantidad').Asinteger:= Dbgrid1.Columns[1].Field.AsInteger;
Table3.FieldByName('Valor').AsFloat:= Dbgrid1.Columns[3].Field.AsFloat;
Table3.FieldByName('SubTotal').AsFloat:= Dbgrid1.Columns[4].Field.AsFloat;
Table3.Post;
Table3.Next;

les agradezco mucho.

eduarcol 26-11-2007 18:24:10

tienes que hacer un ciclo recorriendo el dataset relacionado con el dbgrid, y por cada registro en este ejecutas el codigo que tienes alli, pero el origen no es de dbgrid sino del dataset relacionado

Genner 27-11-2007 21:07:46

por error de dedo comento en el siguiente mensaje

Genner 27-11-2007 21:09:00

Tomando la respuesta de eduarcol, la cual me parece correcta el codigo quedaria asi
Código Delphi [-]
while not DataSetGrid.EoF do
begin
Table3.Append;
Table3.FieldByName('Código').Asinteger:= Dbgrid1.Columns[0].Field.Asinteger;
Table3.FieldByName('Producto').AsString:= Dbgrid1.Columns[2].Field.AsString;
Table3.FieldByName('Cantidad').Asinteger:= Dbgrid1.Columns[1].Field.AsInteger;
Table3.FieldByName('Valor').AsFloat:= Dbgrid1.Columns[3].Field.AsFloat;
Table3.FieldByName('SubTotal').AsFloat:= Dbgrid1.Columns[4].Field.AsFloat;
Table3.Post;
DataSetGrid.Next;
end;

megaredoxk 28-11-2007 00:21:56

Muchas Gracias Compañeros...ya Pudimos Solucionar Este Problemita..gracias De Todo Corazòn


La franja horaria es GMT +2. Ahora son las 16:47:43.

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