У меня есть одно приложение Delphi
, которое подключается к MS-SqlServer-2008R2
через BDE + ODBC
. Разработано с использованием Delphi 7
.необычный счетчик записей в TQuery.Record count
Доступ к данным с использованием TDatabase, TTable, TQuery
компонентов.
Адрес TDatabase
указывает на псевдоним в BDE и другие компоненты, использующие функцию TDatabase.Databasename
.
В таблице основных транзакций содержится более 300 000 записей.
в главном приложении Когда я запрашиваю таблицу, TQuery
дает количество записей в размере 2,5 миллиона, но моя таблица имеет всего 300 тысяч записей. После того, как запрос открывается, приложение просто разбилось. в чем проблема?
Если я отлаживаю код, он дает "Memory Error"
по адресу TQuery.Open
. но при запуске приложения он не выдавал никаких ошибок, и просто приложение было разбито.
Я проверил использование памяти в диспетчере задач, прежде чем открыть запрос, это просто 20 MB
, но после открытия запроса приложение использует более 700 MB memory
.
Скопировал тот же запрос и запустил студию управления SQL-сервером и получил 45000 записей.
Опять только что создали еще одно маленькое приложение, с одной формы и одного TQuery
, TDatabase
и побежал запрос, он дает правильный подсчет 45000.
Почему это дает необычное количество записей в главном приложении?
Пожалуйста, проверьте ваш запрос, должно быть что-то не так с JOINS –
Существует так много возможных проблем, и вы не дали достаточной информации для того, чтобы кто-либо дал ответ. Вы подключаетесь к той же БД. Являются ли ваши настройки соединения одинаковыми. В SQL Server вы используете одну и ту же схему/пользователя? Вам действительно нужен BDE? Он официально устарел. –
Пожалуйста, покажите свой запрос, чтобы мы могли начать копаться в нем. – AlexSC