Форум программистов, компьютерный форум, киберфорум
SQLite
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 02.02.2023
Сообщений: 11

SQLite, FireDAC, out of memory

02.02.2023, 14:18. Показов 1159. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подключаю SQLite базу через FireDAC, с помощью BasebcConnection:TFDConnection
Много раз создаю и выполняю запросы, затем удаляю
Delphi
1
2
3
4
5
6
              FDQ := TFDQuery.Create(Self);
              FDQ.Connection := BasebcConnection;
              FDQ.SQL.Text:= 'Select * from ...' ;
              FDQ.Open;
              ...
             FDQ.Free;
вроде все хорошо, но через несколько тысяч раз выпадает ошибка out of memory
Подскажите, пожалуйста, как правильно очищать память после удаления запроса
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.02.2023, 14:18
Ответы с готовыми решениями:

FireDac out of memory
Есть FireDac, БД SQLite с таблицей на примерно на 150 млн строк. В программе пытаюсь создать индекс на эту таблицу, ошибка "OUT OF...

FireDAC + sqlite
В БД sqlite есть таблица-справочник содержащая некоторое количество полей типа TEXT(100), в приложении реализован интерфейс для добавления,...

FireDAC и иже с ним. Работа с SQLite
Доброго времени суток! История конечно печальна) Установил XE6 из за любопытства да и из за кроссплатформенности под ведро! ставился...

9
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
02.02.2023, 14:22
close перед free не помешало бы, хотя скорее всего датасет и так закрывается при уничтожении
0
1 / 1 / 0
Регистрация: 02.02.2023
Сообщений: 11
02.02.2023, 14:27  [ТС]
Пробовал, ничего не изменилось.
Похоже данные удаляются, а страница, выделенная под данные остается.
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
03.02.2023, 08:08
А положить компонент на форму и просто текст запроса очищать, а не маяться ерундой с созданием/удалением - это не наш метод? Только экстрим, только хардкор? Ну процедуру FreeAndNil() тогда уж используйте.
0
1 / 1 / 0
Регистрация: 02.02.2023
Сообщений: 11
03.02.2023, 09:16  [ТС]
На форму положить не получается, количество и название полей меняются динамически, заранее не просчитаешь
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
03.02.2023, 09:51
Цитата Сообщение от aws71 Посмотреть сообщение
количество и название полей меняются динамически
И что? Вот лежит себе компонент на форме - и лежит, никого не трогает. Вы меняете только текст запроса (свойство SQL компонента). И этот текст Вы, таки да, формируете динамически. А создавать-то сам компонент каждый раз зачем?
0
1 / 1 / 0
Регистрация: 02.02.2023
Сообщений: 11
03.02.2023, 10:12  [ТС]
Создал элемент на форме, запусти и ничего не изменилось. Походу не в запросах дело, а в самом SQLite!
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
03.02.2023, 10:48
Цитата Сообщение от aws71 Посмотреть сообщение
Походу не в запросах дело
Может и не в них. Запросто может быть, что в Вашем приложении память "течет". А где - без кода не сказать... Да и не в разделе же СУБД обсуждать утечки памяти приложения на Delphi!
0
1 / 1 / 0
Регистрация: 02.02.2023
Сообщений: 11
03.02.2023, 11:02  [ТС]
Дело не в запросах, а в самой СУБД SQLite. Код на Paradox работал исправно, а здесь 10-15 % проходит и кричит памяти не хватает.
0
1 / 1 / 0
Регистрация: 02.02.2023
Сообщений: 11
10.02.2023, 11:42  [ТС]
Дело оказалось не в запросах и не в СУБД, а в небрежно написаном коде. TStringList создаваемый в цикле, а убиваемый после цикла давал утечку памяти.
Тему можно закрывать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.02.2023, 11:42
Помогаю со студенческими работами здесь

FireDAC sqlite Как подключится к базе в интернете?
FireDAC sqlite Как подключить базу из интернета? https://servir.ru/files/test.db (файл доступен по этому адрису тут адрес изменен) ...

Внесение данных в БД на SQLite через FireDAC Delphi 10
Доброго времени суток. Возникла проблема при выполнении запроса на добавление записей в БД, что напрямую через Connection, что через...

SQLite, FireDAC, Delphi. Подключение, работа с BLOB (SELECT, INSERT)
Здравствуйте! Решил потренироваться и сделать небольшое приложение на последней версии Embarcadero® Delphi® XE5. Так как я ранее...

Failed to load image from memory. Reason: Out of memory
Доброго времени суток. Делал игру 64битную, все работало хорошо, подключил все библиотеки все по инструкции, потом решил собрать 32 битную...

Create an in memory bitmap and draw directly to the memory
Здравствуйте! У меня есть пара вопросов. Знаю, что рисовать в HDC можно только с одного потока. Но узнал такую вещь, что можно создать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru