Ver Mensaje Individual
  #1  
Antiguo 22-08-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Reputación: 13
edgar_prospero Va por buen camino
actualizar base de datos desde dbgrid

que hay amigos aqui estoy con un problema tengo un dbgrid al cual agrego registros y los guardo en mi base de datos en mysql, hasta ahi todo bien el problema lo tengo cuando esos datos los vuelvo a mostrar en ese dbgrid y por decir agrego ese registro y guardo me vuelve a guardar todos, como le puedo hacer para que si agrego uno nomas me grabe ese y no los demas que ya estan guardados en la base de datos el codigo con el que guardo es el siguiente:

Código Delphi [-]
DBGrid1.DataSource.DataSet.First; 
While not (DBGrid1.DataSource.DataSet.Eof) do
begin
  
    query.SQL.Clear;
    query.Close;
    query.SQL.Add
    ('insert into entradas( serie, folio, fecha, codigo, nombre, cantidad, precio, importe, id, documento, unidad) ' +
     ' values(: pserie, : pfolio, : pfecha, : pcodigo, : pnombre, : pcantidad, : pprecio, : pimporte, : pid, : pdocumento, : punidad) ' +
      'on duplicate key update nombre=: pnombre  ' );
    query.ParamByName('pserie').Value:=DBGrid1.DataSource.DataSet.FieldByName('serie').value;
    query.ParamByName('pfolio').Value:=DBGrid1.DataSource.DataSet.FieldByName('folio').value;
    query.ParamByName('pfecha').Value:=DBGrid1.DataSource.DataSet.FieldByName('fecha').value;
    query.ParamByName('pcodigo').Value:=DBGrid1.DataSource.DataSet.FieldByName('codigo').value;
    query.ParamByName('pnombre').Value:=DBGrid1.DataSource.DataSet.FieldByName('nombre').value;
    query.ParamByName('pcantidad').Value:=DBGrid1.DataSource.DataSet.FieldByName('cantidad').value;
    query.ParamByName('pprecio').Value:=DBGrid1.DataSource.DataSet.FieldByName('precio').value;
    query.ParamByName('pimporte').Value:=DBGrid1.DataSource.DataSet.FieldByName('importe').value;
    query.ParamByName('pid').Value:=DBGrid1.DataSource.DataSet.FieldByName('id').value;
    query.ParamByName('pdocumento').Value:=DBGrid1.DataSource.DataSet.FieldByName('documento').value;
    query.ParamByName('punidad').Value:=DBGrid1.DataSource.DataSet.FieldByName('unidad').value;
    
query.ExecSQL;
 
  DBGrid1.DataSource.DataSet.Next;
end;
Responder Con Cita