Salutation,
en croisade contre mes bugs, je lutte toujours
alors voici mon hypothèse actuelle:
a l'origine, c'était un CGI tres gros.
Le main avait un WebModule déclaré dans un cadre (le conteneur accessible dans le gestionnaire de projet). Dans son conteneur, il y avait une ADOQuery, ADOConnection etc.
Et donc dans le code, pas besoin de faire de ADOQuery.create etc.
Maintenant que j'ai séparer la gestion SQL du reste du CGI en créant une DLL, une erreur persiste.
Elle est aléatoire, mais se manifeste aussi sur des cas particuliers (mais pas très intéressants à expliquer).
Ça veut dire que dans 90% des cas, ça fonctionne tres bien.
J'ai du créer les ADOQuery etc pour faire fonctionner la DLL, et utiliser CoInitialize. Je me demande si je n'ai pas oublier quelques chose que le conteneur faisait lui.
voila un bout de code pour montrer l'initialisation et la fin:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 CoInitialize(nil); ADOQuery:=TADOQuery.Create(nil); ADOConnection:=TADOConnection.Create(nil); ADOQuery.Connection:=ADOConnection; // traitement ADOQuery.Free; ADOConnection.Close; ADOConnection.Free; CoUninitialize;
Dans le traitement, il y a des ADOConnection.close et .open
Mais pas de ADOQuery.open
Voila ça craint, mais si un génie passe par la
merci
Partager