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 16-10-2007
Avatar de Espartaco
[Espartaco] Espartaco is offline
Miembro Premium
 
Registrado: oct 2005
Posts: 107
Poder: 19
Espartaco Va por buen camino
Problema con Try Except

Hola amigos de nuevo aquí con mis dudas pidiendo ayuda.

Resulta que en un bucle Try Except realizo varios post, pero el problema es que cuando falla algun post, resulta que los anteriores ya se han grabado en la BD. Mi pregunta es ¿en el bucle try, si falla algo, todo vuelve a su estado anterior?

Uso Delphi 5 y tablas paradox.

el código es el siguiente:
Código Delphi [-]
TRY
        DbLiquid['NMAQUINA']:=DbMaquinas['NMAQUINA'];
        DbLiquid['FLIQUID']:=DateTimePicker1.Date;
        DbLiquid['HUCHA']:=DbEdit1.Text;
        DbLiquid['RECAUDACION']:=DbEdit2.Text;
        DbLiquid['EXCAMBIO']:=DbEdit3.Text;
        DbLiquid['LECTURAX']:=DbEdit4.Text;
        DbLiquid['LECTURAZ']:=DbEdit5.Text;
        DbLiquid['UBICACION']:=DbMaquinas['UBICACION'];
        DbLiquid['DOMICILIO']:=DbMaquinas['DOMICILIO'];
        DbLiquid['NIF']:=DbMaquinas['NIF'];
        DbLiquid['OBSERVACIONES']:=Edit46.Text;
        DbLiquid['CARGADOR']:=DbLookupComboBox1.Text;
        DbLiquid['BILLETES']:=DbEdit6.Text;
        DbLiquid['PORCENTAJE']:=DbMaquinas['PORCENTAJE'];
        DbLiquid['FULTLIQ']:=DateTimePicker1.Date;
        DbLiquid.Post;
        if DbDevoluc.Locate('NMAQUINA',DbMaquinas['NMAQUINA'],[]) then
        begin
        DbDevoluc.Edit;
        DbDevoluc['FULTLIQ']:=DateTimePicker1.Date;
        DbDevoluc.Post;
        end
        else
        begin
        DbDevoluc.Append;
        DbDevoluc['NMAQUINA']:=DbMaquinas['NMAQUINA'];
        DbDevoluc['FULTLIQ']:=DateTimePicker1.Date;
        DbDevoluc.Post;
        end;
        for i:=0 to 41 do
        begin
                if (ALabels[i].Caption<>'') and (AEdits[i].Text<>'') then
                begin
                DbDLiquid.Append;
                DbDLiquid['NMAQUINA']:=DbMaquinas['NMAQUINA'];
                DbDLiquid['FLIQUID']:=DateTimePicker1.Date;
                DbDLiquid['ABREVIA']:=ALabels[i].Caption;
                //DbDLiquid['UNIDADES']:=AEdits[i].Text;
                DbProducto.Locate('ABREVIA',ALabels[i].Caption,[]);
                DbDLiquid['PRODUCTO']:=DbProducto['PRODUCTO'];
                DbDLiquid['VENTAS']:=AEdits[i].Text;
                DbDLiquid['EXISTENCIAS']:=AEdits2[i].Text;
                DbDLiquid.Post;
                end;
        end;
        for i:=0 to 41 do
        begin
                if (ALabels[i].Caption<>'') and (AEdits[i].Text<>'') then
                begin
                if not DbResultPL.Locate('NMAQUINA;ABREVIA', VarArrayOf([DbMaquinas['NMAQUINA'],ALabels[i].Caption]),[])then
                begin
                        DbResultPL.Append;
                        DbResultPL['NMAQUINA']:=DbMaquinas['NMAQUINA'];
                        DbResultPL['FLIQUID']:=DateTimePicker1.Date;
                        DbResultPL['ABREVIA']:=ALabels[i].Caption;
                        DbProducto.Locate('ABREVIA',ALabels[i].Caption,[]);
                        DbResultPL['PRODUCTO']:=DbProducto['PRODUCTO'];
                        DbResultPL['EXISTANT']:=AEdits2[i].Text;
                        DbResultPL['PRCOSTO']:=DbProducto['PRCOSTO'];
                        DbResultPL['PRPUBLICO']:=DbProducto['PRPUBLICO'];
                        DbResultPL['TOTCOSTO']:=DbResultPL['ENTRADAS']*DbResultPL['PRCOSTO'];
                        DbResultPL['TOTPUBLICO']:=DbResultPL['ENTRADAS']*DbResultPL['PRPUBLICO'];
                        DbResultPL.Post;
                end
                else
                begin
                        DbResultPL.Edit;
                        DbResultPL['EXISTANT']:=AEdits2[i].Text;
                        DbResultPL.Post;
                end;
                end;
        end;
        QDatos.Close;
        Close;
except
        application.MessageBox('¡HA OCURRIDO UN ERROR AL INTENTAR GRABAR LOS DATOS!'+#13+#13+
        'Compruebe:'+#13+'- Si los campos obligatorios están rellenos.',
        '¡Atención!', mb_iconStop + mb_Ok);
        end

Muchas gracias por vuestra ayuda.
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


La franja horaria es GMT +2. Ahora son las 12:09:14.


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