Ver Mensaje Individual
  #3  
Antiguo 03-09-2008
lmhjob lmhjob is offline
Registrado
 
Registrado: sep 2008
Posts: 6
Reputación: 0
lmhjob Va por buen camino
Hola, depurando paso a paso el momento en que se cuelga es justo cuando entra en la llamada ApplyUpdates dentro de una de las iteraciones del bucle (nunca es la misma) y ya no sale nunca. Te pego un trozo del código:

Código Delphi [-]
 [...] 
TblEml->Insert();                                                                                                                                                                  
TblEml->Fields->Fields[ APP ]->AsString   = ModlCode;                          
TblEml->Fields->Fields[ OPC ]->AsString   = "ENTI";                            
TblEml->Fields->Fields[ FRA ]->AsString   = SmtpFrom;                          
TblEml->Fields->Fields[ FRN ]->AsString   = "SECCION";                         
TblEml->Fields->Fields[ RPL ]->AsString   = SmtpFrom;                          
TblEml->Fields->Fields[ TOA ]->AsString   = emlAlm;                             
TblEml->Fields->Fields[ TCC ]->AsString   = "";                                 
TblEml->Fields->Fields[ TBC ]->AsString   = "";                                 
TblEml->Fields->Fields[ FCH ]->AsDateTime = TS;                                    
TblEml->Fields->Fields[ TIT ]->AsString   = "título del mail";                  
TblEml->Fields->Fields[ MSG ]->AsString   = HtmlText;                             
TblEml->Fields->Fields[ NAT ]->AsInteger  = 0;                                      
TblEml->Fields->Fields[ ATN ]->AsString   = "";                                      
TblEml->Fields->Fields[ ATD ]->AsString   = "";                                      
TblEml->Fields->Fields[ STP ]->AsString   = "H";                                     
TblEml->Fields->Fields[ CNF ]->AsString   = "";                                      
TblEml->Fields->Fields[ HPR ]->AsString   = "";                                      
TblEml->Fields->Fields[ EST ]->AsString   = "P";                                     
TblEml->Fields->Fields[ ERR ]->AsInteger  = 0;                                      
TblEml->Fields->Fields[ NTR ]->AsInteger  = 0;                                      
TblEml->Fields->Fields[ TRC ]->AsString   = "";                                      
TblEml->Fields->Fields[ TMI ]->AsDateTime = Now();                                 
                                                                                          
TblEml->Post();                                                                    
Sleep(1000); // Este sleep lo he puesto por si había algún problema de concurrencia
result = TblEml->ApplyUpdates(-1); <---- AQUI MUERE                                
if (result > 0 )                                                                   
   {                                                                               
   Sleep(1000); // Para evitar clave duplicada en la tabla con el campo TMI        
   result = TblEml->ApplyUpdates(-1);                                              
   }                                                                               
[...]
Responder Con Cita