Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

HELP: ClientDataset, SaveToFile, Missing data provider or data packet

27 views
Skip to first unread message

Sergio

unread,
Dec 10, 2004, 6:42:25 AM12/10/04
to
Ciao a tutti,
spiego brevemente qual'è il mio problema: ho sviluppato una semplice
applicazione Client/Server utilizzando come ambiente il "borland
delphi 7 professional" e come DB firebird.
Il Server contiene una tabella con dei campi di testo simili a domande
a cui gli operatori che utilizzano i client devono rispondere in uno
scenario in cui non esiste la connettività con il DB centrale.
Inoltre, nel corso del tempo è possibile aggiungere nuove domande sul
server e quindi periodicamente i client devono essere aggiornati con
le nuove domande.

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

Alberto Salvati

unread,
Dec 11, 2004, 9:56:47 AM12/11/04
to
>
> 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".

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"

Andrea Raimondi

unread,
Dec 12, 2004, 4:55:31 AM12/12/04
to
Alberto Salvati wrote:
> 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.

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

0 new messages