Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-01-2015
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
Invalid transaction object en DataSnap

Hola amigos, tengo una transaccion para insertar clientes en DataSnap, y accedo con la aplicacion cliente.
El caso es que inicio la aplicacion e inserto correctamente el primer cliente, pero si quiero volver a insertar me dice: REmote error:Invalid transaction object.

Osea los procedimientos estan bien, se me hace que faltaria destruir el objeto de transaccion, y crearlo cuando se llama al procedure, la verdad no se.

Código Delphi [-]
function TServerMethods1.insertarcliente(idlocalidad,DNI,cuit,cuil,cupodias:integer;
descuento,cupocheques,cupopesos,cupochequestroouble;domicilio,nombreyape,direccion,email:string):b  oolean;

var
uubicacion,upersona,ucliente:integer;
tr:tdbxTransaction;
exito:boolean;
begin

         SUCURSAL.Open;
         tr:=SUCURSAL.BeginTransaction();


              try

                begin
                  with qipersona do
                    begin
                      Close;
                      ParamByName('DNI').AsInteger:=DNI;
                      ParamByName('nombreyape').AsString:=nombreyape;
                      ParamByName('direccion').AsString:=direccion;
                      ParamByName('email').AsString:=email;
                      ExecSQL();
                      Free;

                    end
                  end
                    except
                      SUCURSAL.RollbackFreeAndNil(tr);

                 end;
         try
          begin
              with qicliente do
                begin
                Close;
                ParamByName('idpersona').AsInteger:=qucli.ExecSQL();
                ParamByName('cuit').AsInteger:=cuit;
                ParamByName('cuil').AsInteger:=cuil;
                ParamByName('deuda').AsFloat:=0.00;
                ParamByName('cupodias').AsInteger:=cupodias;
                ParamByName('cupocheques').AsFloat:=cupocheques;
                ParamByName('cupopesos').AsFloat:=cupopesos;
                ParamByName('cupochequestro').AsFloat:=cupochequestro;
                ParamByName('descuento').AsFloat:=descuento;
                ExecSQL();
                Free;
                SUCURSAL.CommitFreeAndNil(tr);

                exito:=True;
            end
            end
              except

                SUCURSAL.RollbackFreeAndNil(tr);
                end;
                Result:=exito;

end;

function TServerMethods1.insertartelefonoscliente(numero,idtipotel:integer;descripciontel:string):boolean;
var
tr:TDBXTransaction;
exito:boolean;
begin
          SUCURSAL.Open;
          if (SUCURSAL.InTransaction=False) then
          tr:=SUCURSAL.BeginTransaction()
          else
          begin
            try
              begin
                with qtelefono do
                  begin

                    Close;
                    ParamByName('numero').AsInteger:=numero;
                    ParamByName('idtipotel').AsInteger:=idtipotel;
                    ParamByName('descripcion').AsString:=descripciontel;
                    ExecSQL();

                    Free;
                  end;
              end;
        // si no se pudo
            except
              begin
                SUCURSAL.RollbackFreeAndNil(tr);
                exito:=false;
              end;
         try
              with telcli do
                begin
                  Close;
                  ParamByName('idc').AsInteger:=qucliente.ExecSQL();
                  ParamByName('idt').AsInteger:=qut.ExecSQL();
                  ExecSQL();

                  Free;
                end;
        except
                SUCURSAL.RollbackFreeAndNil(tr);
                exito:=false;

         end;
         SUCURSAL.CommitFreeAndNil(tr);

              end;
              Result:=exito;
          end;

end;

function TServerMethods1.insertarubicacionescliente(idlocalidad:Integer;domicilio,descripcion:string):boolean  ;

var
tr:TDBXTransaction;
exito:boolean;
begin
        SUCURSAL.Open;
        if (SUCURSAL.InTransaction=False) then

          tr:=SUCURSAL.BeginTransaction()
          else
          begin
       try
        with qiubicacion do
          begin

            Close;
            ParamByName('idlocalidad').AsInteger:=idlocalidad;
            ParamByName('domicilio').AsString:=domicilio;
            ParamByName('descripcion').AsString:=descripcion;
            ExecSQL();

            Free;

          end;
        // si no se pudo
      except


          SUCURSAL.RollbackFreeAndNil(tr);
          exito:=false;

        end;
         try

              with quper do
                begin
                  Close;
                  ParamByName('idp').AsInteger:=qup.ExecSQL();
                  ParamByName('idu').AsInteger:=quu.ExecSQL();
                  //ParamByName('descripcion').AsString:=descripcion;
                  ExecSQL();
                  Free;
                end;
                    SUCURSAL.CommitFreeAndNil(tr);

            except


                SUCURSAL.RollbackFreeAndNil(tr);
                exito:=false;

              end;
              Result:=exito;
          end;
end;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Acceso a un <object></object> carpato18 HTML, Javascript y otros 1 22-01-2008 09:18:01
Transaction Log Luis Castillo MS SQL Server 4 04-10-2007 16:28:51
Sobre error "Object reference not set to an instance of an object" fer21unmsm .NET 2 11-05-2007 21:56:46
Error invalid transaction... pichi Vignola Firebird e Interbase 3 06-10-2006 20:23:16
Transaction e IBDataSet (IBX) T-man Firebird e Interbase 8 14-10-2004 16:14:08


La franja horaria es GMT +2. Ahora son las 19:45:58.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi