J'ai une application multithread dans laquelle une nouvelle TSQLConnection est créée pour chaque thread. Si j'essaie d'utiliser le traçage (TSQLConnection.SetTraceEvent ou TSQLMonitoring), j'obtiens les résultats de la trace comme prévu, mais après cela, le thread principal semble se détériorer lorsque j'essaie d'utiliser n'importe quelle fonctionnalité de base de données. Application jette excpetion "violation d'accès à 0x004dffcf: écriture de l'adresse 0xfffffff2" et la pile d'appels dans IDE affiche des lignes répétitives de "7c90327a ntdll.RlConvertUlongToLargerInteger + 0x3c" et "7c90e48a ntdll.KiUserExceptionDispatcher + 0xe", et la ligne supérieure est "Controls. ReadControlName (???) ".Corruption de pile lors de l'utilisation de TSQLConnection.SetTraceEvent?
Donc, la fonction de traçage est-elle boguée et ne fonctionne pas avec une application multithread ou y a-t-il un bogue caché dans mon application? Comment savoir?
J'utilise Delphi 2007.
Modifier Il ressemble à l'exception est soulevée même avec deux connexion séparée en fil conducteur. Je vais essayer de créer une application de test.
Vous aurez besoin de code postal ... –
DbConnection1.SetTraceEvent (MyEvent) est assez .. – Harriv
Qu'est-ce que vous voulez voir? Je ne peux pas poster toute l'application, et sinon c'est assez simple. Le datamodule qui contient la connexion SQL est créé plusieurs fois. – Harriv