|
1 / 1 / 0
Регистрация: 29.06.2015
Сообщений: 134
|
|
RAD XE3+ Где лучше хранить большую текстовую базу?09.09.2023, 10:35. Показов 6410. Ответов 86
Здравствуйте!
Столкнулся с проблемой. У меня есть база в Memo1 -занимает 100 000 строк. Ищет в случае обращения поиском по данному мемо если всё хранить в нёпочемуто долго, а если рядом созраняю с прогой текстовый файл и ищу по нему то тоже долго, есть ли какойто быстрый вариант для работы с бальшими базами данных именно в Delphi? Спасибо за ответ(ы). С уважением, Денис.
0
|
|
| 09.09.2023, 10:35 | |
|
Ответы с готовыми решениями:
86
Где лучше хранить данные
Где лучше всего хранить базу данных больших размеров ? |
|
1076 / 515 / 42
Регистрация: 05.05.2022
Сообщений: 3,671
|
|||||||||||
| 24.09.2023, 21:10 | |||||||||||
|
Ну зажата кем-то твоя база, может ее редактором.
Ты сделал вращающийся кубик с текстурой, осталось доделать остальной 3D-шутер. С полями запроса можно работать по-разному. Можно обращаться к ним по имени, по индексу,
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 29.06.2015
Сообщений: 134
|
||
| 24.09.2023, 23:52 [ТС] | ||
Добавлено через 44 минуты Друзья, всем благослвенного вечера! для окончательного сравнения скорости обращения циклом к БД с имеющимся работающим методом взаимодействия с мемо, осталось совсем немножко. Уже просто очень интересно, будет ли действительно быстрее работать программа или останется также по времени. Благодаря Вам я многое узнал, за что Вам спасибо. В этом сообщении я прикрепил мой образец/исходник, если не затруднит Вас, Ребята посмотрите ктонибудь, что нужно подправить чтобы всё заработало? Т.е. по сути осталось чтобы база показывалась в DBGrid и произвести по ней поиск нужной строки... С уважением, Денис.
0
|
||
|
1076 / 515 / 42
Регистрация: 05.05.2022
Сообщений: 3,671
|
|
| 25.09.2023, 00:19 | |
|
Грид показывает данные, если его датасет активен. Поиск делается методом Locate у грида. Обычно, нужно не грузить все, а выбрать нужные данные SQL-запросом. Отображать пользователю таблицу со 100к значений бессмысленно. Либо делать фильтрацию на датасете, для чего надо прописывать свойство Filter, беря имена полей в [], почему не знаю, но у меня только так работало, и переключать Filtered.
0
|
|
|
3765 / 2272 / 706
Регистрация: 29.05.2013
Сообщений: 9,622
|
|
| 25.09.2023, 01:24 | |
Сообщение было отмечено Ltybcrf как решение
Решение
0
|
|
|
3765 / 2272 / 706
Регистрация: 29.05.2013
Сообщений: 9,622
|
||
| 25.09.2023, 13:36 | ||
|
0
|
||
|
1076 / 515 / 42
Регистрация: 05.05.2022
Сообщений: 3,671
|
|||||||
| 25.09.2023, 14:19 | |||||||
|
Выглядело так:
У Access, конечно, свой дебильный диалект. И для меня загадка, почему он не подмножество MS SQL-Server.
0
|
|||||||
|
3765 / 2272 / 706
Регистрация: 29.05.2013
Сообщений: 9,622
|
||
| 25.09.2023, 15:14 | ||
|
0
|
||
|
1076 / 515 / 42
Регистрация: 05.05.2022
Сообщений: 3,671
|
|
| 25.09.2023, 15:28 | |
|
Я его до недавнего времени вообще не использовал, когда-то очень давно еще с ADO пробовал, но это оказалось так себе, а тут понадобилось делать быструю фильтрацию, чтобы она успевала без лага отработать в onChage Edit'а, лезть в этом случае с SQL-запросом на сервер, или даже в файл будет так себе идеей. В данном случае синхронизатор Access, как локальной БД, например, на планшете и центральной БД на MS SQL Server.
0
|
|
|
|
||
| 25.09.2023, 16:08 | ||
|
вроде везде кроме MS для этого используются кавычки а что там в фильтрах наворочено - вообще без понятия (
0
|
||
|
1 / 1 / 0
Регистрация: 29.06.2015
Сообщений: 134
|
|
| 25.09.2023, 22:33 [ТС] | |
|
Спасибо за образец и помощь!!!
Добавлено через 3 часа 54 минуты При переносе появилась проблемка, правильно ли я понимаю что в стринговую переменную чтобы получить строку в которой есть слово Москва, надо написать SQL запрос? Поиск в предложенном образце происходит по фильтру. Однако неважны совпадения. По сути дела надо чтобы, в появившейся визуально таблице городов, произошел: 1. поиск слова Москва 2. определился этот номер строки 3. Взять в переменную str := строку где будет и (слово Москва и её айди и координаты..) ... Это возможно как это вобще выглядеть должно?
0
|
|
|
1076 / 515 / 42
Регистрация: 05.05.2022
Сообщений: 3,671
|
||||||
| 25.09.2023, 23:07 | ||||||
|
Я показывал. Нужно обращаться к запросу по имени, или индексу поля.
Возвращается то значение на котором в датасете стоит курсор.
0
|
||||||
|
1 / 1 / 0
Регистрация: 29.06.2015
Сообщений: 134
|
|||||||||||
| 26.09.2023, 06:06 [ТС] | |||||||||||
|
Интересный парадокс:
В прорисованой в DBGrid базе, даже если и не прорисовывать а просто в памяти искать, предположим (хороший пример) город "Днепр", то может найтись Днепродзержинск, Днепровское, Днепровое и т.д. В результате искал Днепр к примеру а в переменную добавилось нечто другое, неподходящее в будущем, негативно влияющее на автоматизацию процесса.
Посмотрите пожалуйста на код и скажите как его подправить, чтобы искался сразу нужный город? Например как я делал это из Мемо1.
Как сделать тоже самое из нашей теперешней БД, не знаю. Есть выход из сложившейся ситуации, по правде говоря так не хочется к Мемо возвращаться ... С уважением, Денис.
0
|
|||||||||||
|
1076 / 515 / 42
Регистрация: 05.05.2022
Сообщений: 3,671
|
|
| 26.09.2023, 08:28 | |
|
Like именно так и работает, может искать вхождение слева, справа, в центре, надо просто правильно строку поиска прописать. Плюс учет\неучет регистра.
SQL - это сложно. Даже на базовом уровне.
0
|
|
|
3765 / 2272 / 706
Регистрация: 29.05.2013
Сообщений: 9,622
|
|||||||||||||||||
| 27.09.2023, 02:00 | |||||||||||||||||
ПС: Для поиска по полному названию достаточно убрать символ '%' из кода, но так будет менее удобно:
1
|
|||||||||||||||||
|
1 / 1 / 0
Регистрация: 29.06.2015
Сообщений: 134
|
||||||
| 27.09.2023, 16:55 [ТС] | ||||||
|
- Прогуливаясь, зашёл в библиотеку, и купил толстую книу в глянцевом переплёте, PHP и SQL!
На вечер вкусняха обеспечена! Что не говорите, а бумажный экземпляр да ещё и от издателя BHV это "сладкая конфета"! - Господин Пытливый Всевыш-ий, видит Вашу искреннюю помощь, разумеется как и других ребят, она вернётся Вам может быть в другом виде, но обязательно Вы получите помощь откуда не будете ждать. ----------------------------------- Благословенного дня! Друзья! Отчёт по скорости взаимодействия еще будет, но уже понятно что БД быстрее. Добавляю я базу, провожу поиск строки и выбираю каждую из 6ти ячеек этой строки так:
1. Надо ли проводя аналогию с TStringList, в конце работы закрывать чтото, освобождать память? (Ts.free; - я образно написал) 2. Єту базу из образно 100 тысяч строк мы используем. Но у меня есть ещё несколько баз поменьше где 1000 строк и по 100-200 строк. Вопрос: Для добавления скажем новой базы из 1000 строк так чтобы не мешать работе этой БД из 100т. строк, нужно добавлять новые компоненты FDConnection2 , FDQuery2, DataSource2, FDPhysSQLiteDriverLink2, FDSQLiteFunction2 и саму DBGrid2? Разумеется заранее создав в SQLLite базу *.bd3? С уважением, Денис.
0
|
||||||
|
1076 / 515 / 42
Регистрация: 05.05.2022
Сообщений: 3,671
|
||||||
| 27.09.2023, 18:36 | ||||||
|
Проще всего 1 коннекшен на 1 базу. Вопрос, не лучше ли данные слить в 1 базу, разные таблицы?
Close закроет, если нужно. Впрочем, у меня в DBProcs давно определены функции вида OpenFDQuery, которые закрывают запрос, чистят SQL и могут кидать эксепшен, а могут и не кидать, например, если открытие происходит периодически. Вообще вот так делать:
Во-2, так писать долго. Во-3, а если Open не откроется, например, связь с сервером пропала, тогда что?
1
|
||||||
|
Модератор
|
|||
| 28.09.2023, 05:00 | |||
|
0
|
|||
|
3765 / 2272 / 706
Регистрация: 29.05.2013
Сообщений: 9,622
|
||
| 28.09.2023, 10:28 | ||
|
0
|
||
| 28.09.2023, 10:28 | |
|
Как и где хранить текстовую информацию для программы тестирования? Как лучше хранить большую корзину (больше 140-170 товаров)? Как лучше сделать большую базу данных? Где хранить базу данных? Где лучше хранить информацию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|