hola tengo un problema cuando intenmnto insertar varios registros nuevos a la ves con un ciclo while en la tabla el primero me lo acepta pero en el segundo me da key violation este es el codigo que estoy utilizando
Código Delphi
[-]
if edt2.Text=edt1.Text then
begin
qry1.Active:=False;
qry1.SQL.Text:='SELECT MAX(NUM_REG) AS NUM_REG FROM '+Tab+'';
qry1.Active:=True;
A:= qry1.fieldbyname('NUM_REG').AsInteger+1;
qry2.Active:=False;
qry2.SQL.Text:='select * from Modelos where NUM_REG='+frmPrincipal1.dbedtNUM_REG.Text+'';
qry2.Active:=True;
try
qry2.First;
While not qry2.Eof do
begin
qry1.Active:=False;
qry1.SQL.Text:='SELECT MAX(NUM_REG) AS NUM_REG FROM '+Tab+'';
qry1.Active:=True;
A:= qry1.fieldbyname('NUM_REG').AsInteger+1;
tbl1.Insert;
tbl1.FieldByName('NUM_REG').AsInteger := A+1;
tbl1.FieldByName('TIPO_POLI').AsString := cbb1.Text;
tbl1.FieldByName('NUM_CTA').AsString := qry2.FieldByName('NumCta').AsString;
tbl1.FieldByName('CONCEP_PO').AsString := qry2.FieldByName('ConcepPoliz').AsString;
tbl1.FieldByName('DEBE_HABER').AsString := qry2.FieldByName('DebeHaber').AsString;
tbl1.FieldByName('MONTOMOV').AsFloat := qry2.FieldByName('Monto').AsFloat;
tbl1.FieldByName('NUMDEPTO').AsInteger := qry2.FieldByName('Depto').AsInteger;
tbl1.FieldByName('TIPCAMBIO').AsFloat := qry2.FieldByName('NUM_REG').AsFloat;
tbl1.FieldByName('REFERENCIA').AsString := qry2.FieldByName('TipoCambio').AsString;
tbl1.FieldByName('NUM_PART').AsInteger := qry2.FieldByName('Partidas').AsInteger;
tbl1.FieldByName('CONTRAPAR').AsString := '0';
tbl1.FieldByName('NUM_POLIZ').AsString := ' '+dbedtNUM_REG.Text;
tbl1.FieldByName('FECHA_POL').AsDateTime := qry2.FieldByName('Fecha').AsDateTime ;
tbl1.Post;
qry2.Next;
end;
ShowMessage('La Partida ha sido contavilizada');
frmPrincipal1.Query1.Active:=False;
frmPrincipal1.Query1.SQL.Text:='UPDATE INTCOI01 SET STATUSCLI='+QuotedStr('C')+' WHERE NUM_REG='+frmPrincipal1.dbedtNUM_REG.Text+'';
frmPrincipal1.Query1.ExecSQL;
except
ShowMessage('La partida ya ha sido contavilizada con anterioridad');
end;
gracias por la ayuda