Query.Record计数中的异常记录计数

时间:2015-03-13 05:42:20

标签: sql-server delphi bde tquery

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

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

TDatabase指向BDE中的别名,以及使用属性TDatabase.Databasename的其他组件。

主要交易表有超过30万条记录。

主应用程序中的

当我查询表时,TQuery给出的记录数为250万,但我的表只有300k记录。查询打开应用程序后崩溃了。这有什么问题?

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

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

复制相同的查询并在SQL Server管理工作室中运行并获得45000条记录。

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

为什么它会在主要应用程序中给出不寻常的记录数?

1 个答案:

答案 0 :(得分:2)

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