【发布时间】:2010-08-08 23:23:36
【问题描述】:
我有一个多线程应用程序,其中为每个线程创建了新的 TSQLConnection。如果我尝试使用跟踪(TSQLConnection.SetTraceEvent 或 TSQLMonitoring),我会按预期获得跟踪结果,但之后当我尝试使用任何数据库功能时,主线程似乎变得狂暴。应用程序抛出异常“在 0x004dffcf 处的访问冲突:写入地址 0xfffffff2”,IDE 中的调用堆栈显示重复行“7c90327a ntdll.RlConvertUlongToLargerInteger + 0x3c”和“7c90e48a ntdll.KiUserExceptionDispatcher + 0xe”,最上面一行是“Controls. ReadControlName(???)"。
那么,跟踪功能是否存在错误并且不适用于多线程应用程序,或者我的应用程序中是否存在隐藏错误?怎么查?
我使用的是 Delphi 2007。
编辑 看起来即使在主线程中有两个单独的连接也会引发异常。我将尝试创建测试应用程序。
【问题讨论】:
-
您需要发布代码...
-
DbConnection1.SetTraceEvent(MyEvent) 就够了..
-
你想看什么?我不能发布整个应用程序,否则很简单。包含 SQL 连接的数据模块被多次创建。
-
通过在 SQL Server 中查询
master数据库发布显示此行为的示例应用程序或单元。
标签: delphi debugging dbexpress