Hola.
Al parecer te falta la condición, vg.:
Código Delphi
[-]
QryGuardaDet.SQL.Clear;
QryGuardaDet.SQL.Append('insert into detalle');
QryGuardaDet.SQL.Append('(articulo,cantidad,comprobante)');
QryGuardaDet.SQL.Append('values');
QryGuardaDet.SQL.Append('(:art, :cant, :com),');
QryGuardaDet.SQL.Append('WHERE CAMPO_CLAVE = :PARAM');
for ....
begin
QryGuardaDet.ParamByName('art').AsString := datos.CDSDetalleFarticulos.Value;
QryGuardaDet.ParamByName('cant').Value := datos.CDSDetalleFcant.AsFloat;
QryGuardaDet.ParamByName('com').AsInteger := codfact
QryGuardaDet.ParamByName('PARAM').Value := (lo que corresponda)
...
Saludos