Me gusto mucho esa solucion,
porque acortas bastante el codigo,
ya no presenta el error cuando agregaba otro producto,
pero ahora me presenta un error en el segundo boton,
se tranca en la linea que esta descrita abajo,
y entonces no crea las tablas ni borra la temporal tampoco.
creo que podemos aplicar la misma tecnica que arriba,
intentare a ver como me va
mira aqui:
Código Delphi
[-]
procedure TForm1.Button2Click(Sender: TObject);
Var
Codigo:String;
begin
DataSourceBD.Enabled:= False;
ZQueryBD.Close;
ZQueryBD.SQL.Text:= 'Insert Into RFac (Monto, Fecha, Hora) Values ('+Monto+', Date(), Time())';
ZQueryBD.ExecSQL;
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Text:= 'Select Max(CodigoFactura) as CodigoFactura From RFac';
ZQuery1.Open;
Codigo:= ZQuery1.FieldByName('CodigoFactura').AsString;
ZQueryBD.Close;
ZQueryBD.SQL.Text:= 'Create Table F_'+Codigo+' (NumArticulo Integer Not Null Primary Key AutoIncrement, Articulo Char(48), Cantidad Integer, Precio Decimal)';
ZQueryBD.ExecSQL;
ZQueryBD.Close;
ZQueryBD.SQL.Text:= 'Insert Into F_'+Codigo+' (Articulo, Cantidad, Precio) Select Articulo, Cantidad, Precio From Factura';
ZQueryBD.ExecSQL;
ZQueryBD.Close;
ZQueryBD.SQL.Text:= 'Insert Into F_'+Codigo+' (Precio) Values ('+Monto+')';
ZQueryBD.ExecSQL;
ZQueryBD.Close;
ZQueryBD.SQL.Text:= 'Delete From Factura';
ZQueryBD.ExecSQL;
Monto:='';
Edit3.Text:='0.00 BsF';
Edit1.Text:='';
end;