Per implementare tutto ciò, sui client ho utilizzato un componente
TClientDataset che si aggancia ad un provider per reperire la lista di
domande dal server centrale e le salva su un file (utilizzo il metodo
savetofile).
Per operare in modo disconnesso basta sganciare il Client dataset dal
provider e con il metodo loadfromfile reperire i dati dal file di
appoggio precedentemente salvato.
Il tutto sembrava funzionare a meraviglia fino a che non sono
incominciati a sorgere dei problemi "intermittenti"... a volte capita
che il file di appoggio è di 0 KB (quindi la savetofile fallisce) e di
conseguenza, quando si invoca il metodo loadfromfile ricevo l'errore
"missing data provider or data packet".
Mi è sorto il dubbio che il problema potrebbe derivare da qualche DLL
che utilizzo (ad esempio midas.dll).
Qualcuno può darmi una dritta ?
Grazie in anticipo per l'interessamento
Il fatto che la savetofile faccia casino mi sembra strano.
I cds non sono il massimo della robustezza, ma i casini vengono fuori in
casi limite, tipo blackout durante la loro scrittura.
> Mi è sorto il dubbio che il problema potrebbe derivare da qualche DLL
> che utilizzo (ad esempio midas.dll).
la midas.dll è il cuore di midas.
>
> Qualcuno può darmi una dritta ?
1) controlla che vi sia una sola copia di midas.dll sui pc dove
riscontri il problema.
2) verifica che l'installazione del tuo software preveda la
self-registration di midas.dll
Pochi sanno che midas, x alcune operazioni, deve essere registrata
3) verifica la versione di midas.dll
In teoria dovrebbero funzionare tutte allo stesso modo, in realtà,
sopratutto tra quella di d5 e quella di d7 credo esistano delle
differenze, se pur minime
4) a livello di codice, controlla di non avere delle kazzate di questo tipo:
try
// operazione sul clinetdataset
except
end
Questo nasconde eventuali eccezioni sollevate dalla tua app.
E' difficile correggere gli errori senza vederli.... ;)
--
Alberto Salvati
A NEAPOLITAN Delphi Developer who is studing c# and .net
"Dicette 'o pappece 'nfaccia 'a noce dammi 'o tiempo che pure te spertoso"
Dipende dalla versione di Delphi: con la 6, per esempio, la proprietą
FileName non funziona bene. E' possibile che faccia scherzi del genere.
> 2) verifica che l'installazione del tuo software preveda la
> self-registration di midas.dll
> Pochi sanno che midas, x alcune operazioni, deve essere registrata
Alternativamente, in caso del SOLO USO della Midas.dll per il CDS, puņ
semplicemente aggiungere la unit MidasLib nella uses e liberarsi dalla
dipendenza.
Ciao,
Andrea