我有多线程的应用程序,其中为每个线程创建新的TSQLConnection。如果我尝试使用跟踪(TSQLConnection.SetTraceEvent或TSQLMonitoring),我会按预期得到跟踪结果,但在此之后,当我尝试使用任何数据库功能时,主线程似乎是服务器。应用程序在0x004dffcf处发出访问冲突:写入地址0xfffffff2,IDE中的调用堆栈显示“7c90327a ntdll.RlConvertUlongToLargerInteger + 0x3c”和“7c90e48a ntdll.KiUserExceptionDispatcher + 0xe”的重复行,第一行是“Controls”。 ReadControlName(???)”。使用TSQLConnection.SetTraceEvent时堆栈损坏?
那么,是跟踪功能越野车,不适用于多线程应用程序或在我的应用程序中是否存在隐藏的错误?如何找出答案?
我使用德尔福2007年
编辑它看起来像异常,甚至在主线程两个独立的连接提高。我会尝试创建测试应用程序。
您需要登录后才能发表评论 – 2010-08-08 23:31:02
DbConnection1.SetTraceEvent(MyEvent)就够了。 – Harriv 2010-08-08 23:37:23
你想看什么?我无法发布整个应用程序,否则很简单。包含SQL连接的数据模块被多次创建。 – Harriv 2010-08-09 06:39:16