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 Buscar Temas de Hoy Marcar Foros Como Leídos

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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 12:41:16.


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