Форум: "Начинающим";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
ВнизЗакрывается приложение Найти похожие ветки
← →
IgorMish (2007-04-16 15:41) [0]Уважаемые, подскажите. Есть приложение, заношу данные в базу (парадокс), и в один прекрасный момент при нахатии кнопки "сохранить" приложение закрывается без каких либо сообщений. Процедура заключается в записи данных из TQuery в TTable. При работе приложения в каталоге программы образуются файлы типа _QSQ1.DB и QSQ1.MB. На сколько мне известно это от SQL-запросов. Но вроде все запросы закрываю, а файлов образуется порядка 100-150. Может происходит какое-то переполнение и сброс программы из-за них. Что посоветуете ?
Спасибо.
← →
Desdechado © (2007-04-16 15:51) [1]> приложение закрывается без каких либо сообщений
Исключительные ситуации подавляешь, имхо.
> в каталоге программы образуются файлы типа _QSQ1.DB
А ты у Session.PrivateDir выстави.
> Что посоветуете ?
Не открывать много запросов с большими объемами данных.
← →
IgorMish (2007-04-16 16:01) [2]>А ты у Session.PrivateDir выстави.
Это где такое ? Можно поподробнее.
А запросов много вроде и не должно быть, выполняется запрос подсчета данных, после запроса пишу Query.Close, но после каждого запроса прибавляются по 5-6 новых файлов, а старые не пропадают. Может что-то нетак закрываю?
← →
Desdechado © (2007-04-16 16:10) [3]> но после каждого запроса прибавляются по 5-6 новых файлов а старые не пропадают
1 запрос - 1 файл (или 2, если с индексом).
> Может что-то не так закрываю?
Ctrl-F2 забудь.
← →
ЮЮ © (2007-04-17 06:07) [4]>и в один прекрасный момент при нахатии кнопки "сохранить" приложение закрывается без каких либо сообщений.
Вот что значит бездумно подавлять исключения.
← →
IgorMish (2007-04-17 08:04) [5]Никаких исключений в этой процедуре не подавляется, только Append и Post. Я нашел, что сброс программы происходит после запросов подсчета записей. Есть кнопка, по которой выполняются по два запроса для двух таблиц, все запросы закрываются (Query.Close). Я отключил все TQuery, но после 50-го нажатия на эту кнопку (данные не вносятся и не меняются, только пересчитываются) начинают появлятся вышеописанные файла (по 4) , а после 60-го нажатия программа закрывается.
ПЛИЗ , подскажите в чем может быть дело, что можно предпринять, в чем ошибка ???
← →
ЮЮ © (2007-04-17 08:24) [6]> подскажите в чем может быть дело, что можно предпринять,
> в чем ошибка ???
Ошибка исключительно в твоём коде, которого мы ек видим.
> подскажите в чем может быть дело, что можно предпринять
Выполнить всё то же под IDE c включенным Stop on Delphi Exceptions
← →
IgorMish (2007-04-17 08:45) [7]Вот код, 4 таких запроса, только меняется услове WHERE и присваивается значение разным переменным: SB и т.д.:
Query.Close;
Query.SQL.Clear;
Query.SQL.Append("SELECT TipOb, COUNT(*) FROM ""Oborud2.db"" WHERE Raion="""+Raion.FieldByName("Raion").AsString+""" GROUP BY TipOb, Raion");
Query.ExecSQL;
Query.Active := True;
SB := Query.FieldByName("Count(*)").AsInteger;
Query.Close;
← →
ЮЮ © (2007-04-17 08:52) [8]Query.ExecSQL; Убери совсем, не для этого этот метод. Кстати может быть причиной появления неуправляемых _QSQ1.DB
первый Query.Close; лишний, т.к.
1) в конце метода он закрыт
2) Изменение SQL (Clear, Append) закроет открытый НД автоматически
← →
IgorMish (2007-04-17 09:28) [9]СПАСИБО, ЮЮ. Файлы перестали появляться и приложение вроде не выскакивает.
P.S. Для общего развития: а в каких случаях нужен Query.ExecSQL ?
← →
ЮЮ © (2007-04-17 09:40) [10]Для запросов, не возвращающих набор данных. Чаще всего это INSERT, DELETE и UPDATE предложения.
Для запросов, возвращающих НД, используют метод Open (или Active := true).
← →
IgorMish (2007-04-17 09:49) [11]СПАСИБО.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c