2010-08-08 119 views
1

我有多线程的应用程序,其中为每个线程创建新的TSQLConnection。如果我尝试使用跟踪(TSQLConnection.SetTraceEvent或TSQLMonitoring),我会按预期得到跟踪结果,但在此之后,当我尝试使用任何数据库功能时,主线程似乎是服务器。应用程序在0x004dffcf处发出访问冲突:写入地址0xfffffff2,IDE中的调用堆栈显示“7c90327a ntdll.RlConvertUlongToLargerInteger + 0x3c”和“7c90e48a ntdll.KiUserExceptionDispatcher + 0xe”的重复行,第一行是“Controls”。 ReadControlName(???)”。使用TSQLConnection.SetTraceEvent时堆栈损坏?

那么,是跟踪功能越野车,不适用于多线程应用程序或在我的应用程序中是否存在隐藏的错误?如何找出答案?

我使用德尔福2007年

编辑它看起来像异常,甚至在主线程两个独立的连接提高。我会尝试创建测试应用程序。

+0

您需要登录后才能发表评论 – 2010-08-08 23:31:02

+0

DbConnection1.SetTraceEvent(MyEvent)就够了。 – Harriv 2010-08-08 23:37:23

+0

你想看什么?我无法发布整个应用程序,否则很简单。包含SQL连接的数据模块被多次创建。 – Harriv 2010-08-09 06:39:16

回答

0

问题解决了,我加载了旧的(显然是越野车)版本的InterXpress驱动程序,我只是没有意识到它是问题的一部分。