【问题标题】:Stack corruption when using TSQLConnection.SetTraceEvent?使用 TSQLConnection.SetTraceEvent 时堆栈损坏?
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-03-26
    • 1970-01-01
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多