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 01-07-2005
Avatar de unoccio
unoccio unoccio is offline
Registrado
 
Registrado: feb 2005
Posts: 5
Poder: 0
unoccio Va por buen camino
Question Delphi 6 - ADO y Transacciones Anidadas

Buenas foristas, les hago una consulta.
Estoy trabajando con Delphi 5 y me conecto a SQL Server 2000 utilizando ADO.
Quiero trabajar con transacciones anidadas desde Delphi, pero
Al hacer algo así:

ADOConnection1.BeginTrans
...
...
...
//y nuevamente volver a iniciar una transaccion
ADOConnection1.BeginTrans
Obtengo el siguiente error: No se pueden iniciar más transacciones en esta sessión.

Alguien sabe a qué se debe este Error?.

Gracias.
Responder Con Cita
  #2  
Antiguo 01-07-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Consulta la ayuda referente a ADOConnection1.CommitTrans
__________________

Responder Con Cita
  #3  
Antiguo 04-07-2005
Avatar de unoccio
unoccio unoccio is offline
Registrado
 
Registrado: feb 2005
Posts: 5
Poder: 0
unoccio Va por buen camino
A qué te referís con que lea la ayuda con ese tema?

Lo que he leído es sobre beginTrans y dice que aumenta el contador de transacciones activas, por lo que al realizar un nuevo beginTrans cuando ya había hecho otra anteriormente (y sin hacer commit o rollback) no debería darme error sino que debería abrir una nueva transacción.
Responder Con Cita
  #4  
Antiguo 28-08-2007
Avatar de JoseAntonio
JoseAntonio JoseAntonio is offline
Miembro
 
Registrado: abr 2006
Ubicación: Lima - Ciudad de los Reyes.
Posts: 87
Poder: 19
JoseAntonio Va por buen camino
Question Transacciones Anidadas

bueno yo tengo el siguiente codigo y tampoco funciona, alguien tiene idea de por que

Código Delphi [-]
    begin
      dm_datos.ADOConnection1.BeginTrans;
      try
      DM_Datos.ADO_TFamiliaStock.Edit;
      DM_Datos.ADO_TFamiliaStock.FieldByName('Nombre').AsString := ed_Nombre.Text;
      DM_Datos.ADO_TFamiliaStock.FieldByName('CodFamiliaStock').AsString := ed_CodFamiliaStock.Text;
      DM_Datos.ADO_TFamiliaStock.FieldByName('Descripcion').AsString := ed_Descripcion.Text;
      DM_Datos.ADO_TFamiliaStock.FieldByName('UnidadDeMedida').AsString := ed_UnidadDeMedida.Text;
      idfst:= dm_datos.Ado_TFamiliaStock.Fieldbyname('IdFamiliaStock').AsInteger;
      //DM_Datos.ADO_TFamiliaStock.FieldByName('Cantidad').AsString := ed_Cantidad.Text;
      DM_Datos.ADO_TFamiliaStock.Post;
      MessageDlg('Los datos fueron modificados para el registro: '+#13+ed_Nombre.Text,mtWarning,[mbOk],0);
      iStockActual:= dm_datos.GivmeStockActual(idfst);
      iStockDeseado:= StrToInt(ed_cantidad.text);
      bIsSerial0:= dm_datos.IsSerial0(idfst);
      if (iStockDeseado <> IStockActual) and bIsSerial0 then
       if iStockDeseado > iStockActual then
         dm_datos.CrearStock( idfst, IStockDeseado-IStockActual)
                                        else
         dm_datos.EliminarStock(idfst, IStockActual- IStockDeseado);
      //BCancelar.Click;
      BEditar.Caption := '&Editar';
      except
        on E:Exception do dm_datos.ADOConnection1.RollbackTrans;
      end;//try
    end;

pero cuando le quito la transaccion, el codigo si trabaja bien, cabe indicar que los procedimientos : dm_datos.CrearStock y dm_datos.EliminarStock, hacen uso de la misma conexion de la transaccion, pero no usan transacciones, o eso creo
__________________
nuestro carácter está reflejado en cada línea de código que escribimos.
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


La franja horaria es GMT +2. Ahora son las 08:05:48.


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