Newsgroup: it.comp.programmare.win32
Titolo: [MFC] Perch�mi carica tutte queste DLL con Oracle?

Ciao a tutti. Ho creato un'applicazione tramite MFC 6.0 e in
essa gestisco un database Oracle 8.0.5 
con tecniche ODBC. Il problema è il seguente: quando effettuo
delle semplici query (SELECT) su tale DB
la risposta mi arriva dopo diversi secondi, nonostante le query
siano estremamente semplici e il DB non
eccessivamente carico di informazioni. Eseguendo in modalità
debug l'applicazione ho scoperto che non appena 
viene eseguita una query, tramite la funzione Open legata al
recordset, vengono caricate tutte le seguenti DLL:
Loaded 'D:orantBINOCIW32.DLL',
Loaded 'D:orantBINORA805.DLL',
Loaded 'D:orantBINCORE40.DLL',
Loaded 'D:orantBINNLSRTL33.DLL',
Loaded 'D:orantBINNL80.DLL',
Loaded 'D:orantBINOTRACE80.DLL',
Loaded 'D:orantBINNS80.DLL',
Loaded 'D:orantBINNASNS80.DLL',
Loaded 'D:orantBINNZ80.DLL',
Loaded 'D:orantBINNNFG80.DLL',
Loaded 'D:orantBINNNCI80.DLL',
Loaded 'D:orantBINNNG80.DLL',
Loaded 'D:orantBINNMP80.DLL',
Loaded 'D:orantBINNPL80.DLL',
Loaded 'D:orantBINNR80.DLL',
Loaded 'D:orantBINNT80.DLL',
Loaded 'D:orantBINNCR80.DLL',
Loaded 'D:orantBINNMS80.DLL',
Loaded 'D:orantBINNNFD80.DLL',
Loaded 'D:orantBINNNFN80.DLL',
Loaded 'D:orantBINNI80.DLL',
Loaded 'D:orantBINNTT80.DLL',
ma la cosa strana è che non sempre tali librerie vengono
caricate, ovvero alcune volte sì e altre volte no.
Perchè accade questo? Il loro caricamento è proprio
necessario? Non si può evitarlo? 
Mi rallentano il responso della query...
Grazie mille anticipatamente per l'aiuto, Sergio

Ciao a tutti. Ho creato un'applicazione tramite MFC 6.0 e in
essa gestisco un database Oracle 8.0.5 con tecniche ODBC. Il
problema e' il seguente: quando effettuo delle semplici query
(SELECT) su tale DB la risposta mi arriva dopo diversi secondi,
nonostante le query siano estremamente semplici e il DB non
eccessivamente carico di informazioni. Eseguendo in modalita'


ma la cosa strana e' che non sempre tali librerie vengono 
caricate, ovvero alcune volte sì e altre volte no. 
Perche' accade questo? Il loro caricamento e' proprio 
necessario? Non si puo' evitarlo? Mi rallentano il responso


 della query... 
Sono le DLL che consentono al tuo programma di accedere al database 
oracle via ODBC. Pià che rallentare il responso della query, rendono 
possibile l'esecuzione della query stessa!
Se la tua applicazione apre e chiude la connessione al DB è possibile 
che le DLL vengano scaricate solo dopo un certo intervallo di tempo e 
che quindi due query in tempi ravvicinati possano sfuttare le DLL già 
in memoria. Prova a tenere aperta la connessione durante l'esecuzione 
del programma (eventualmente chiudendola e riaprendola solo in caso di 
errore) e controlla se le performance migliorano.
-- 
Valter Minute
vmi...@inwind.it
 (the reply address of this message is invalid)

Ho adottato questa tecnica: imposto eventualmente il filtro sul
recordset (m_strFilter), apro la tabella (Open) e poi la chiudo
(Close) dopo avere eseguito la query. Se dovesse servirmi
uovamente la stessa tabella allora riutilizzo la Open. O pensi
sia più opportuno aprire tutte le tabelle di interesse nella
funzione InitInstance (dico ad esempio) e chiuderle quindi
nella ExitInstance? Grazie, Sergio
