TQuery.Record 条中的异常记录数

unusual record count in TQuery.Record count

我有一个 Delphi 应用程序通过 BDE + ODBC 连接到 MS-SqlServer-2008R2。使用 Delphi 7 开发。

使用 TDatabase, TTable, TQuery 组件访问数据。

TDatabase在BDE中指向别名,其他组件使用属性TDatabase.Databasename

主要任务运行saction table 有超过 300 000 条记录。

在主应用程序中当我查询table时,TQuery给出的记录数为250万,但我的table只有30万条记录。查询打开应用程序后刚刚崩溃。这里有什么问题?

如果我调试代码,它会在 TQuery.Open 处给出 "Memory Error"。但是当 运行 应用程序运行时它没有给出任何错误,只是应用程序崩溃了。

我在打开查询之前在任务管理器中检查了内存使用情况只是 20 MB,但是在打开查询之后应用程序使用了超过 700 MB memory

在 SQL server management studio 中复制了相同的查询和 运行 并获得了 45000 条记录。

再次创建了一个小应用程序,其中包含一个表单和一个 TQueryTDatabase 和 运行 查询,它给出了正确的计数 45000。

为什么它在主应用程序中给出异常的记录数?

检查数据库组件 属性 'Params'。如果任何参数设置为 RowSet Size = -1。如果它在那里然后删除它。这就是问题的原因。