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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-01-2008
crcmartell crcmartell is offline
Registrado
 
Registrado: dic 2007
Posts: 1
Poder: 0
crcmartell Va por buen camino
Ayuda en anidación de transacciones

Les mando el procedimiento donde tengo las transacciones, aqui una tabla depende de la otra, ya que es su llave foranea, lo que pasa que al ejecutar ese procedimiento tarda un poco, es por eso que mando el código para que me ayuden a mejorar el rendimiento.

Saludos.
Código Delphi [-]
procedure TFrmCreditos.Grabar_credito;
begin
  LimpiarConsulta;
  Tabla.Add('creditos');
  If Modifica Then
  Begin
    Try
      With Valores Do
      Begin
        Add('folio = ' + QuotedStr(Trim(seFolio.Text))+ ',');
        Add('sedesol = ' + QuotedStr(Trim(seSedesol.Text)) + ',');
        Add('no_mens = ' + QuotedStr(Trim(sePagos.Text)) + ',');
        Add('monto_mens = ' + QuotedStr(Trim(seMonto.Text)) + ',');
        Add('login = ' + QuotedStr(Trim(Login)) + ',');
        Add('beneficiario = ' + QuotedStr(Trim(seSoli.Text)) + ',');
        Add('banco = ' + IntToStr(scCuentas.KeyValue));
      End;
      Condicion.Add('credito = ' + QuotedStr(Trim(seCredito.Text)));
      If Not Modificar(Tabla, Valores, Condicion) Then
        SkMesg.MessageDlg('El registro no pudo ser guarado en la BD', mtWarning, [mbOK], 0);
      Modifica := False;
    Except
      SkMesg.MessageDlg('No se pudo modificar el credito', mtWarning, [mbOK], 0);
    End
  End
  Else
  Begin
    Try
      LimpiarConsulta;
      Tabla.Add('creditos');
      Campos.Add('GEN_ID(creditos_gen, 0)');
      If Not Consultar(Tabla, Campos, Condicion, Grupo, Orden, False, DM.qBuscar) Then
      Begin
        SkMesg.MessageDlg(DM.qBuscar.FieldByName('GEN_ID').AsString, mtWarning, [mbOK], 0);
        Exit;
      End;
      LimpiarConsulta;
      Tabla.Add('creditos');
      With Campos Do
      Begin
        Add('folio, sedesol, programa, pie, no_mens, monto_mens, fec_posesion,');
        Add('login, beneficiario, cap_cre, banco, activo');
      End;
      With Valores Do
      Begin
        Add(QuotedStr(Trim(seFolio.Text)) + ',');
        Add(QuotedStr(Trim(seSedesol.Text)) + ',');
        Add(IntToStr(scPrograma.KeyValue) + ',');
        Add(IntToStr(0) + ',');
        Add(QuotedStr(Trim(sePagos.Text)) + ',');
        Add(QuotedStr(Trim(seMonto.Text)) + ',');
        Add(QuotedStr(FormatDateTime('mm/dd/yyyy', sdPosesion.Date)) + ',');
        Add(QuotedStr(Trim(Login)) + ',');
        Add(QuotedStr(Trim(seSoli.Text)) + ',');
        Add(QuotedStr(FormatDateTime('mm/dd/yyyy hh:mm:ss', Now)) + ',');
        Add(IntToStr(scCuentas.KeyValue) + ',');
        Add(QuotedStr('O'));
      End;
      If Not Insertar(Tabla, Campos, Valores) Then
        SkMesg.MessageDlg('El registro no pudo ser guardado en la BD', mtWarning, [mbOk], 0);
      Try
        LimpiarConsulta;
        Tabla.Add('mejoramiento');
        Campos.Add('paquete, credito, tipo_paquete');
        With Valores Do
        Begin
          Add(IntToStr(scPaquete.KeyValue) + ',');
          Add(QuotedStr(IntToStr(DM.qBuscar.FieldByName('GEN_ID').AsInteger + 1)) + ',');
          If srAmplia.Checked Then
            Add(QuotedStr(Trim('A')))
          Else
            Add(QuotedStr(Trim('P')));
        End;
        If Not Insertar(Tabla, Campos, Valores) Then
          SkMesg.MessageDlg('El registro no pudo ser guardado en la BD', mtWarning, [mbOk], 0);
        seCurp.SetFocus;
      Except
        SkMesg.MessageDlg('No se pudo guardar el credito', mtWarning, [mbOK], 0)
      End
    Except
      SkMesg.MessageDlg('No se pudo guardar el pie de casa', mtWarning, [mbOK], 0)
    End
  End;
  DM.qCreditos.Close;
  DM.qCreditos.Transaction.Active := False;
  Limpiar(False);

Última edición por jachguate fecha: 04-01-2008 a las 08:00:33. Razón: añadir etiqueta delphi
Responder Con Cita
 



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
Cursores y anidación de procedimientos almacenados david.rguez SQL 1 02-08-2007 17:06:31
Ayuda con transacciones en IBX gorsan Conexión con bases de datos 2 20-07-2007 00:27:52
Transacciones juanmdq Oracle 3 12-01-2007 14:59:42
Transacciones en punto de venta Ayuda !!! lroblesco Varios 2 23-05-2005 10:56:39
Transacciones radiohead Conexión con bases de datos 2 16-11-2004 09:29:50


La franja horaria es GMT +2. Ahora son las 08:16:19.


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