Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-02-2007
Tauro78 Tauro78 is offline
Miembro
 
Registrado: sep 2006
Posts: 88
Poder: 18
Tauro78 Va por buen camino
Error: Transaction is active

hola estoy usando D7, FB2, MDO; el problema es que cuando lo doy click en Aceptar me sale el error del titulo. No sé si estoy usando mal el componente
de transaccion o que puede ser?
MDOTCategoriaAlta es el componente de transaccion y lo tengo ligado a
MDOSPExistCatDesc y a MDOSPCategoriaAlta, estos son procedimientos almacenados, en el primero verifico si existe la categoria y en el segundo realizo el alta de los datos.
No se si debo tener desactivado el componente de transaccion al inicio y activarlo cuando lo uso y desactivarlo cuando termina de usarlo.
La idea es tratar de controlar más las cosas, si no pongo dmTablas.MDOTCategoriaAlta.StartTransaction; ni dmTablas.MDOTCategoriaAlta.Commit; no me da error pero no se si eso es
mejor. Gracias.


Código Delphi [-]
procedure TfrmCategoriasAltas.BitBtn1Click(Sender: TObject);
begin
if (Edit1.Text = '') then
  begin
    MessageDlg('Se deben completar todos los campos.', MtInformation, [MbOK], 0);
    Exit;
  end
    else
      begin
        dmTablas.MDOSPExistCatDesc.Close;
        dmTablas.MDOTCategoriaAlta.StartTransaction;
        dmTablas.MDOSPExistCatDesc.ParamByName('SP_DESCRIPCION').AsString := Edit1.Text;
        dmTablas.MDOSPExistCatDesc.Prepare;
        dmTablas.MDOSPExistCatDesc.ExecProc;
        dmTablas.MDOTCategoriaAlta.Commit;
        if (not dmTablas.MDOSPExistCatDesc.ParamByName('descripcion').IsNull) then
          begin
            MessageDlg('Ya existe una categoría con esta descripción.', MtInformation, [MbOK], 0);
            Exit;
          end
            else
              begin
                try
                  dmTablas.MDOTCategoriaAlta.StartTransaction;
                  dmTablas.MDOSPCategoriaAlta.ParamByName('SP_DESCRIPCION').AsString := UpperCase(Edit1.Text);
                  dmTablas.MDOSPCategoriaAlta.Prepare;
                  dmTablas.MDOSPCategoriaAlta.ExecProc;
                  dmTablas.MDOTCategoriaAlta.Commit;
                finally
                  dmTablas.MDOSPCategoriaAlta.UnPrepare;
                  dmTablas.MDOSPCategoriaAlta.Close;
                  Edit1.Text := '';
                end;
              end;
      end;
end;

Última edición por Tauro78 fecha: 09-02-2007 a las 03:47:48.
Responder Con Cita
  #2  
Antiguo 09-02-2007
Avatar de kalimero
kalimero kalimero is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 288
Poder: 22
kalimero Va por buen camino
Hola.
Antes de iniciar la transaccion con "startransaction" debes comprobar si esta actia ó no. No conozco esos componente pero en los que yo he usado era al go como
Código Delphi [-]
if not(transaccion.InTransaction) then
begin
 transaccion.startransaction;
end;

Saludos
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
Error invalid transaction... pichi Vignola Firebird e Interbase 3 06-10-2006 20:23:16
Error: "SQLConnection: there is no active transaction" jmlifi Conexión con bases de datos 3 26-06-2006 18:11:23
Error Transaction (Process ID 587) was deadlocked on thread mayte mtz SQL 0 05-05-2006 19:22:27
"Transaction not assigned error" T-man Firebird e Interbase 0 15-10-2004 13:16:14
Transaction active cmgenny Firebird e Interbase 2 31-05-2004 16:38:16


La franja horaria es GMT +2. Ahora son las 14:10:46.


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