Ciao a tutti ,
sto affrontando la conversione da DAO ad ADO e sto scoprendo sulla mia pelle e su quella dei clienti le varie rogne che ci sono quando entrambi ESISTONO sul medesimo progetto ...
Lo so è una pazzia ma nel progetto ci sono circa 530 finestre e non è possibile fare una conversione integrale .
La grana grossa è che se usi DAO , ADO ci mette circa 2 secondi a vedere i cambiamenti e viceversa . UN DISASTRO !!!
Pensate ad una distinta base che calcola i costi convertita con ADO e i vari inserimenti della distinta fatti con DAO , un casino ....
La routine che esegue la query non vede mai l'ultimo record , non si accorge della sua esistenza prima dei famigerati 2 secondi . Quindi i prezzi vengono tutti sbagliati .
NON esiste refresh che tenga ... ho provato con :
WS.Databases.Refresh
DBEngine.Idle dbRefreshCache
JetCache.RefreshCache ADODBCONN
Nulla ! Il problema rimane (anche se misterioso poichè alla fine entrambi usano quella porcheria chiamata JET ) .
La soluzione è quella di convertire tutte le varie finestre collegate tra loro in modo che i dati siano sempre aggiornati .
Alla fine sorge un'altro enorme problema : i reports !!!!!
Crystal usando l'apertura del database con jet HA LO STESSO PROBLEMA ...
vede i dati dopo qualche secondo e quindi non stampa qualche record (pensate alle risate quando si stampano le fatture...)
Ed ecco il nocciolo del problema ... devo rifarmi 250 reports o posso intervenire
in runtime e cambiare l'apertura del database da DAO a ADO ?
Sapete se c'è un metodo migliore per fare una conversione del genere ? (Ricordate però le 530 finestre zeppe di recordset e codice ...)