Newsgroup: it.comp.lang.vo-clipper
Titolo: Problemi con CEMAIL e VO27RUN.DLL

Ciao a tutti volevo sapere se qualcuno di voi ha riscontrato un problema con 
CEmail, io quando apro un dbserver mi crasha vo27run.dll e non capisco il 
motivo dato che le chiamate alla funzione che mi apre il dbserver funzionano 
tutte tranquillamente.
La classe MyPop l'ho presa dall'esempio del programma di posta che c'č con 
VO27.
Di seguito riporto il codice che ho scritto.
METHOD RiceviPosta CLASS GestorePosta
 LOCAL oPop AS MyPop
 LOCAL nList, nMail AS DWORD
 LOCAL oProgWin AS WinProg
 LOCAL cTitle, cMessage AS STRING
 LOCAL nMailTrovate := 0 AS DWORD
 LOCAL cOggetto := "" AS STRING
 oProgWin := WinProg{SELF}
 oProgWin:Caption := "Downloading delle instestazioni dei messaggi."
 oProgWin:SubTitle := "Accesso al server mail..."
 oProgWin:Show(ShowCentered)
 SELF:Pointer := Pointer{POINTERHOURGLASS}
 oPop := MyPop{SELF, AllTrim(aServerMail[DEF_POP3])}
 IF 
oPop:Logon(AllTrim(aServerMail[DEF_UTENTE]),AllTrim(aServerMail[DEF_PASSWORD]))
  oPop:GetStatus()
  oProgWin:SubTitle := "Ottenuta la lista dei messaggi..."
  nList := ALen(oPop:ListMail())
  oProgWin:BarTotal := nList
  DebugOutput("Controllo delle intestazioni - Mail trovate", nList)
  FOR nMail := 1 UPTO nList
   oProgWin:UpDateBar(nMail)
   oProgWin:SubTitle := "Caricamento " + NTrim(nMail) + " of " + 
NTrim(nList)
   cOggetto := AllTrim(oPop:GetMailInfo(nMail)[4])
   IF !Empty(cOggetto)
    IF At(Upper("Richiesta d'autorizzazione"), Upper(cOggetto)) > 0 .or.;
      At(Upper("Richiesta d'annullamento"), Upper(cOggetto)) > 0
     nMailTrovate++
     IF oPop:GetMail(nMail)
      oEmail := oPop:Email
// Fin quě tutto ok, ho scaricato il messaggio
// Entro in questo metodo che mi salva sul dbf
      SELF:SalvaMessaggio(cOggetto,nPostaInArrivo,;
       oEmail:DestList, oEmail:FromName, oEmail:FromAddress, 
oEmail:MailDate,;
       oEmail:MailTime, AllTrim(oEmail:cText))
//--------------------------------------------------------------------
METHOD SalvaMessaggio(cObject, nIdCartella,;
  NomeFile, aDestList, cName, cAddress, ;
  dDate, cTime, cText) CLASS GestorePosta
 LOCAL oSrv AS DbServer
 LOCAL cToAddre := "" AS STRING
 LOCAL nMail := 0 AS DWORD
 IF IsArray(aDestList)
   FOR I := 1 TO ALen(aDestList)
    cToAddre := cToAddre + iif(!Empty(cToAddre),";","") + aDestList[I]
   NEXT
  ELSE
   cToAddre := aDestList
 ENDIF
// Arrivo a questa funzione che ho scritto per aprire i dbf
 oSrv := ApriDb("PROG_MAIL.DBF",,TRUE)
//-----------------------------------------------------------
FUNCTION ApriDb(nDbf,cOrder,lExclusive)
 LOCAL TimeOut := 0 AS DWORD
 LOCAL nTimeOut := 5000 AS DWORD
 LOCAL oSrv AS DbServer
 DO WHILE TRUE
  IF lExclusive
    // E qua' mi crasha sulla libreria vo27run.dll
    // Il problema non sussiste con tutte le altre chiamate a questa 
funzione
    // solo dopo eseguite tutte queste operazioni mi va in crash
    oSrv := DbServer{PercorsoDbf + nDbf, DbExclusive}
    //--------------------------------------------------------
   ELSE
    oSrv := DbServer{PercorsoDbf + nDbf, TRUE, FALSE}
  ENDIF
  IF !IsNil(cOrder)
   IF !Empty(AllTrim(cOrder))
    oSrv:SetOrder(cOrder)
   ENDIF
  ENDIF
  TimeOut++
  IF nTimeOut == TimeOut
   oTb := TextBox{, "Attenzione!", "Non riesco ad aprire il database: " + 
nDbf +;
    CHR(13) + CHR(10) + "Vuoi riprovare ?"}
   oTb:Type := BoxIconQuestionmark + ButtonYesNo
   IF (oTb:Show() == BoxReplyYes)
     TimeOut := 0
    ELSE
     Quit
   ENDIF
  ENDIF
  IF oSrv:Used
    EXIT
   ELSE
    oSrv:Close()
    LOOP
  ENDIF
 END DO
RETURN oSrv
Spero tanto che qualcuno mi aiuti a capire che cosa c'č che non va.
Io uso VO27B.
Ciao a tutto il ng
Massimo Friargiu
Area Medica Soft
Grazie anticipatamente per ogni aiuto/consiglio.
P.s. dimenticavo una funzione simile scritta sempre con VO27B mi funziona 
perfettamente 

 ha scritto nel messaggio 
news:440f09d1$0$29099$5fc...@news.tiscali.it...


 > Spero tanto che qualcuno mi aiuti a capire che cosa c'è che non va.


 ha scritto nel messaggio 
news:441013b4$0$18294$4faf...@reader1.news.tin.it...


Ciao a tutti.
Il problema non esisteva, non avevo sbagliato io ma c'era qualcosa che mi 
bloccava l'applicazione nelle classi MyPop e MySmtp scritte da Geoff. Mi 
sono andato quindi a scaricare l'ultimo aggiornamento delle due classi fatte 
da Geoff e ho risolto il problema.
Saluti
Massimo