-2

我有一个Delphi连接到MS-SqlServer-2008R2via的应用程序BDE + ODBC。使用Delphi 7.

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

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

主事务表有超过 300 000 条记录。

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

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

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

复制相同的查询并在 SQL Server Management Studio 中运行并获得 45000 条记录。

再次使用一个表单和一个TQuery,创建了一个小应用程序TDatabase,然后运行查询,它给出了正确的计数 45000。

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

4

1 回答 1

2

检查数据库组件属性“参数”。如果任何参数设置为 RowSet Size = -1。如果它在那里,则将其删除。这就是问题的原因。

于 2015-03-15T16:08:44.330 回答