Hola
Cuando se inserta, se actualiza etc, no se abre la tabla o el query, se ejecuta la accion con ExecSQL.
No estoy seguro que en ZEos sea asi, pero casi podria estar seguro que de no serlo habra un equivalente:
Código Delphi
[-]
procedure TForm1.Button2Click(Sender: TObject);
Var
Codigo:String;
begin
DataSourceBD.Enabled:= False;
ZQueryBD.Close;
ShowMessage('Insertamos');
ZQueryBD.SQL.Text:= 'Insert Into RFac (Monto, Fecha, Hora) Values ('+Monto+', Date(NOW()), Time(NOW()))';
ShowMessage('Escrito');
ZQueryBD.ExecSQL; ShowMessage('Insertado');
ZQueryBD.Close;
ZQueryBD.SQL.Text:= 'Select Max(Codigo) as Codigo From RFac';
ZQueryBD.Open;
Codigo:= ZQuery1.FieldByName('Codigo').AsString;
ZQueryBD.Close;
ZQueryBD.SQL.Text:= 'Create Table F'+Codigo+' (Articulo Char(48), Cantidad Integer, Precio Decimal)';
ZQueryBD.Open;
ZQueryBD.Close;
ZQueryBD.SQL.Text:= 'Insert Into F'+Codigo+' Values (Select * From Factura)';
ZQueryBD.ExecSQL; ZQueryBD.Close;
ZQueryBD.SQL.Text:= 'Insert Into F'+Codigo+' (Articulo, Monto) Values (Total:, '+Monto+')';
ZQueryBD.ExecSQL; ZQueryBD.Close;
ZQueryBD.SQL.Text:= 'Delete From Factura';
end;
Por otro lado seria bueno que usaras parametros en la consulta.
Saludos