Newsgroup: it.comp.lang.delphi
Titolo: Problema stranissimo sotto Win95-98

Il problema è che il mio programma funziona bene con Windows Me e 2000, ma
non con Windows 95 e 98!!!
Ho un programma creato con Delphi 5 che si connette via ODBC a un DB
Postrges su di un server Linux.
Il mio prog. ha una Dbgrid collegata a un datasource, che viene riempito con
una query.
Il problema è nato quando questa query dove prelevare dal database una
tabella con 14000 record...
Il tempo di esecuzione della query(una semplice select) è uguale su
qualsiasi versione di windows, ma se per caso voglio scorrere i record nella
DBgrid, per esempio dal primo all'ultimo, su win2000 e Me ci mette 3
secondi, mentre su Win95-98 ci mette 35 secondi!!!).
I PC su cui ho testato il progr. avevano la stessa versione di driver per
Postgres e soprattutto avevano almeno 128 mega di ram, per cui non doveva
esserci il bisogno di swappare su hard disk i record.
Vi prego aiutatemi perché non ho proprio idea di come risolvere il problema.
Grazie.
Daniel.
--------------------------------
Inviato via 
http://usenet.libero.it

Protocolli di rete?
Magari su Win9x hai qualche protocollo in + (ipx/spx ad esempio...) rispetto
alle macchine che hanno versioni + nuove di Winsozz?
Le impostazioni del DSN sono identiche?
Spazio libero su disco delle macchine win9x che ti danno il problema?
Hai avuto altri problemi di rete da quelle macchine?
Hai verificato se sulle macchine incriminate vi sono dei conflitti di
dma/irq sulla scheda di rete?
Bye
A.

Certo non è il massimo mettere 14'000 record o quanti siano a video,
soprattutto in una DBGrid collegata via ODBC ad un server Linux!
Credo che anche i 3 secondi sul 2000 non è il massimo che puoi ottenere...
Ciao,
  Fabio

 dma/irq sulla scheda di rete?
Non c'è nessun conflitto.
Comunque secondo me non è un problema di rete perchè la select la esegue in
modo giusto su tutte le versioni di Windows.
Il problema nasce quando, nella dbgrid, cerco di andare all'ultimo record
cliccando sulle frecce al lato della dbgrid. In teoria i record deve a quel
punto averli tutti in ram, infatti ho visto che il prog. non si riconnette
alla rete, ma comincia però a comunicare con l'hard disk, come se avesse
messo il risultato della query su di un file... è possibile che lo faccia e
soprattutto che abbia bisogno di farlo quando il PC ha 256 mega di ram?
Inoltre il PC con Win Me su cui gira benissimo ha meno ram!!!


> Tutte le macchine utilizzano il protoccolo client per reti microsoft.
il client è una cosa il protocollo un altra.
Hai solo tcp/ip oppure hai anche ntebeui e ipx/spx o magari qualche
protocollo per as400?


Ho solo il TCP/IP, ma ti ripeto che secondo me il problema non stà nella
connessione di rete.
Non concordi con me nel fatto che i record dovrebbero essere tutti in ram e
che caso mai il problema è che win95-98 swappa su Hard Disk senza doverlo
fare?


adesso non ho sottomano un macchina con Winsozz9x.
Mi sembra si possa indicare la dim del file di swap.
al momento sai quanto è grande?
A.

 al momento sai quanto è grande?
Per quanto riguarda il file di swap di Win, sia sui Pc in cui il prog.
funziona, sia in quelli su cui non funziona hanno impostato una grandezza
automatica scelta da windows.


Se riesci a vedere la dim di quello attuale prova ad aumentare.
Inoltre, non è che il cluient di postgres ha qualche readme.txt che spiega
magari qualche settaggio particolare in base alle varie piattaforme su cui
gira?
Bye
A.

Ma non credo sia un problema di postgres, se Daniel fa un pò di prove questo
ritardo lo noterebbe un pò per tutti i DB. Io credo che sia la quantità di
dati che scarica, forse sarà esagerata, altrimenti la DBGrid non ci
metterebbe tanto tempo.
Un prova valida è scaricare soltanto una colonna della stessa query (tipo il
campo chiave)  e, invece di lasciare fare tutto alla DBGrid, mettere questo
campo in una listbox. Se il tempo impiegato su OS 9x è istantaneo, vuol dire
che l'analisi del programma non è corretta, altrimenti bisogna cominciare a
pensare a qualche settaggio dell'OS.
Ciao,
  Fabio