Código Delphi
[-]procedure TServerMethods1.nuevoticket(numero,ids,idcliente:integer;importe,efectivo,vueltoouble;fechae,horae ,tipo:string);
var
tr:TDBXTransaction;
begin
if (SUCURSAL.InTransaction) then
raise Exception.Create('Hay una transacción pendiente');
SUCURSAL.Open;
try
try
tr:=SUCURSAL.BeginTransaction();
begin
with qticket do
begin
Close;
ParamByName('numero').AsInteger:=numero;
ParamByName('importe').AsFloat:=importe;
ParamByName('fechae').AsString:=fechae;
ParamByName('horae').AsString:=horae;
ParamByName('idsucursal').AsInteger:=ids;
ParamByName('idcliente').AsInteger:=idcliente;
ParamByName('tipo').AsString:=tipo;
ParamByName('efectivo').AsFloat:=efectivo;
ParamByName('vuelto').AsFloat:=vuelto;
ExecSQL();
end;
SUCURSAL.CommitFreeAndNil(tr);
end;
except
SUCURSAL.RollbackFreeAndNil(tr);
end;
finally
SUCURSAL.Close;
end;
end;
procedure TServerMethods1.nuevodetalleticket(idp:integer;cantidad,preciououble);
var
tr:TDBXTransaction;
begin
if (SUCURSAL.InTransaction) then
raise Exception.Create('Hay una transacción pendiente');
SUCURSAL.Open;
try
try
tr:=SUCURSAL.BeginTransaction();
quticket.Close;
begin
with qventa do
begin
Close;
ParamByName('idt').AsInteger:=quticket.ExecSQL();
ParamByName('idp').AsInteger:=idp;
ParamByName('cantidad').AsFloat:=cantidad;
ParamByName('preciou').AsFloat:=preciou;
ExecSQL();
end;
SUCURSAL.CommitFreeAndNil(tr);
end;
except
SUCURSAL.RollbackFreeAndNil(tr);
end;
finally
SUCURSAL.Close;
end;
end;
eso es en DataSnap
y dentro de quticket tengo last_insert_id(), como veras hice un showmessage... y veo un 1..