SQLite for Clarion (Fork)
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7680
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 68 раз
SQLite for Clarion (Fork)
Привет всем !
Имею непреодолимое желание апнуть ископаемый класс SQLite и у меня для этого есть 5 причин:
1. Направление интересное само по себе, а в контексте взаимодействия с Android / Web - незаменимое;
2. Расширены возможности, устранены известные ограничения и проблемы (подозреваю, что добавлены новые);
3. За годы (десятилетия !) накопились всевозможные исправления и доработки в куче разных мест;
4. Как-то хотелось бы вот это вот всё, собрать где-то в одном месте, что бы использовать по назначению;
5. Приглашаю всех кому не пофиг предыдущие пункты к обсуждению и развитию этого свободного проекта.
Буду потихоньку собирать и показывать на примерах решение реальных задач.
Имею непреодолимое желание апнуть ископаемый класс SQLite и у меня для этого есть 5 причин:
1. Направление интересное само по себе, а в контексте взаимодействия с Android / Web - незаменимое;
2. Расширены возможности, устранены известные ограничения и проблемы (подозреваю, что добавлены новые);
3. За годы (десятилетия !) накопились всевозможные исправления и доработки в куче разных мест;
4. Как-то хотелось бы вот это вот всё, собрать где-то в одном месте, что бы использовать по назначению;
5. Приглашаю всех кому не пофиг предыдущие пункты к обсуждению и развитию этого свободного проекта.
Буду потихоньку собирать и показывать на примерах решение реальных задач.
- Вложения
-
- tSQLite.zip
- Версия от 05.02.2023 г.
- (724.03 КБ) 173 скачивания
Последний раз редактировалось Игорь Столяров 07 Сентябрь 2024, 18:12, всего редактировалось 3 раза.
Make Clarion Great Again !
- Admin
- Администратор
- Сообщения: 3996
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 46 раз
- Поблагодарили: 26 раз
- Контактная информация:
SQLite for Clarion (Fork)
DLL здесь https://sqlite.org/2022/sqlite-dll-win3 ... 400100.zip
ну и Libmaker в руки
ну и Libmaker в руки
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- Игорь Столяров
- Ветеран движения
- Сообщения: 7680
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 68 раз
SQLite for Clarion (Fork)
SQLite DLL / LIB добавлю в следующий релиз.
И конечно, для работы с БД нужен DB Browser for SQLite: https://sqlitebrowser.org/
И конечно, для работы с БД нужен DB Browser for SQLite: https://sqlitebrowser.org/
Make Clarion Great Again !
- Admin
- Администратор
- Сообщения: 3996
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 46 раз
- Поблагодарили: 26 раз
- Контактная информация:
SQLite for Clarion (Fork)
Или плагин SQLiteDB для Far Manager. Но не уверен что там редактирование естьИгорь Столяров писал(а): ↑03 Февраль 2023, 12:16 И конечно, для работы с БД нужен DB Browser for SQLite: https://sqlitebrowser.org/
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4873
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 43 раза
SQLite for Clarion (Fork)
Давно использую старый класс Тейлора, как раз для формирования данных в формате sqlite и размещении их на хостинге и мобильных устройствах. Плюс в том, что можно просто скопировать файл/файлы в этом формате и сразу начать работать с данными в них в вебе или на мобильном устройстве, без дополнительной загрузки, преобразования и т.п. Для этих целей старый класс покрывает потребности, так как работа происходит с помощью sql запросов. Можно развивать эту тему, наподобии работы с json. Например, взаимодействие с кьшками и группами, чтобы не писать запросы вручную. Если есть задачи и свободное время. С другой стороны, sqlite не заменяет tps, так как он не предназначен для многопользовательской работы, связанной с модификацией данных. И имеет свои особенности синтаксиса, поэтому вряд ли его запросы получится безболезненно использовать в других sql серверах.
Недавно общались с разработчиком, тоже из старой школы. Он сделал систему, условно наподобии 1с77. Там визуальный форматер оконных структур и репортов, встроенный редактор кода с подсветкой синтаксиса, интерпретатор скриптов и т.п. Причем скрипты конвертируются из 1с77 без переписывания, в этом основная фишка. База данных на sqlite плюс нечто из серии ip сервера. Пересеклись на том, что он сдеалал недавно на базе этого учетную систему для небольших магазинов. Если кому интересно будет, ссылка http://sfsys.ru Когда разговаривали про простые вещи, отвечал бодро, когда начались сложные, быстро свернул обсуждение. Тем не менее, такие системы интересны сами по себе для общего развития. Вот он убеждал, что база на sqlite хорошо себя показывает на десятке другом пользователей. Про архитектуру базы умолчал. SQLite это просто файлики, к которым обращаемся через синтаксис sql с помощью сишной либы. То есть там, как в tps, может быть в одном файле много таблиц, а можно иметь несколько разных файлов (только обычные транзакции невозможны при их модификации).
Недавно общались с разработчиком, тоже из старой школы. Он сделал систему, условно наподобии 1с77. Там визуальный форматер оконных структур и репортов, встроенный редактор кода с подсветкой синтаксиса, интерпретатор скриптов и т.п. Причем скрипты конвертируются из 1с77 без переписывания, в этом основная фишка. База данных на sqlite плюс нечто из серии ip сервера. Пересеклись на том, что он сдеалал недавно на базе этого учетную систему для небольших магазинов. Если кому интересно будет, ссылка http://sfsys.ru Когда разговаривали про простые вещи, отвечал бодро, когда начались сложные, быстро свернул обсуждение. Тем не менее, такие системы интересны сами по себе для общего развития. Вот он убеждал, что база на sqlite хорошо себя показывает на десятке другом пользователей. Про архитектуру базы умолчал. SQLite это просто файлики, к которым обращаемся через синтаксис sql с помощью сишной либы. То есть там, как в tps, может быть в одном файле много таблиц, а можно иметь несколько разных файлов (только обычные транзакции невозможны при их модификации).
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7680
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 68 раз
SQLite for Clarion (Fork)
Почему бы и нет ... кому и кобыла невеста (С) 12 стульев.
Но если посмотреть вглубь веков и почитать как и для чего создавался SQLite - то это всего лишь хранение настроек.
Именно так он и используется в продуктах мировых гигантов IT, например Microsoft.
И на эту тему будет отдельный релиз tSQLite.
Make Clarion Great Again !
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4873
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 43 раза
SQLite for Clarion (Fork)
Чем не устраивают обычные текстовые ini файлы? Вроде с ними проблем никогда не было. Точнее, было, но крайне редко.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7680
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 68 раз
SQLite for Clarion (Fork)
Всем устраивают. Но бывают разные задачи.
Например, когда нужно хранить большие текстовые массивы или графические образы (логотип, схема проезда).
Есть вопросы целостности, например INI файл может быть частично утрачен и как бы нет проблем (что у меня было).
Нужен большой оптимизм, что бы организовать в INI хранение настроек для каждого пользователя из списка.
В INI cложно выполнять групповое изменение настроек, любая операция или запрос - это тупо загрузка всего файла.
Make Clarion Great Again !
- Игорь Столяров
- Ветеран движения
- Сообщения: 7680
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 68 раз
SQLite for Clarion (Fork)
В первом сообщении темы релиз tSQLite от 04.02.2023 г.
------------------------------------------------------------------------
- Устранены помарки (спасибо всем кто подсказал);
- В комплект добавлены DLL / LIB SQLite3;
- Добавлено больше комментариев для методов класса;
- Небольшая турбулентность синтаксиса (правило "IsBlob" заменено на "IsFile");
- Добавлен метод: QueueToTable() - запись произвольного списка в таблицу;
- Обновлён пример.
------------------------------------------------------------------------
- Устранены помарки (спасибо всем кто подсказал);
- В комплект добавлены DLL / LIB SQLite3;
- Добавлено больше комментариев для методов класса;
- Небольшая турбулентность синтаксиса (правило "IsBlob" заменено на "IsFile");
- Добавлен метод: QueueToTable() - запись произвольного списка в таблицу;
- Обновлён пример.
Make Clarion Great Again !
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4873
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 43 раза
SQLite for Clarion (Fork)
Хранить графические образы в базе данных - возможно я когда-нибудь пойму, но точно, не в этой жизни.Игорь Столяров писал(а): ↑03 Февраль 2023, 15:10Всем устраивают. Но бывают разные задачи.
Например, когда нужно хранить большие текстовые массивы или графические образы (логотип, схема проезда).
Есть вопросы целостности, например INI файл может быть частично утрачен и как бы нет проблем (что у меня было).
Нужен большой оптимизм, что бы организовать в INI хранение настроек для каждого пользователя из списка.
В INI cложно выполнять групповое изменение настроек, любая операция или запрос - это тупо загрузка всего файла.
Если sqlite утрачен, то он утрачен совсем.
У меня у каждого пользователя свой отдельный ini файл, он относительно небольшого размера и к нему обращается (за редким исключением) только один пользователь.
Групповые изменения крайне редки. Например, если админ хочет что-то установить у всех пользователей и это что-то вдруг хранится в ini файле.
Что быстрее, полностью прочитать и потом перезаписать небольшой текстовый файл, или обновить запись в sql, это не однозначный вопрос. В любом случае, это доли секунды.
В sqlite удобно, что все хранится в виде строк переменной длины. Ему пофиг, что написано в декларации полей. Например, объявили строку 100 байт, а записать и прочитать спокойно можно 200.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7680
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 68 раз
SQLite for Clarion (Fork)
То да ! Всегда завидовал коллегам на "нормальных" языках. Объявили TEXT (STRING) и не парятся о его длине.
Да, Вы говорили, в мобильном приложении под Android у Вас для того что бы посмотреть картинку с образцом товара
нужно иметь доступ в сеть, у предприятия должен быть сайт с картинками и собственно загрузить эту картинку с сайта.
Ладно. А предположим нужно обновить на том же сайте пакет с прайс-листом и парой тысяч картинок образцов ?
Папки, архивы, распаковки, проверки соответсвия файлов записям ? А если это простое торговое предприятие без ботана ?
Make Clarion Great Again !
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4873
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 43 раза
SQLite for Clarion (Fork)
Если я правильно помню, если картинка была подгружена, то она отображается и без наличия сети. Давно оценивал, картинок было много (20-30 тыс). Решено было не загружать все на мобильные девайсы, а подкачивать из сети по мере обращения. Сам список товаров загружается целиком и в дальнейшем работать с ним (просматривать цены, принимать заказы) можно без доступа в интернет.
Обновление на сайте происходит полностью автоматически. Данные в формате sqlite, они сразу используются в том виде, как сформированы. Картинки передаются в виде обычных jpeg, без упаковки, отдельными файлами. Но только те, в которых были изменения с момента последней передачи. В кларионовское приложении пользователю достаточно нажать кнопку. Или это происходит ночью по расписанию, если сервер работает в круглосуточно режиме.
Обновление на сайте происходит полностью автоматически. Данные в формате sqlite, они сразу используются в том виде, как сформированы. Картинки передаются в виде обычных jpeg, без упаковки, отдельными файлами. Но только те, в которых были изменения с момента последней передачи. В кларионовское приложении пользователю достаточно нажать кнопку. Или это происходит ночью по расписанию, если сервер работает в круглосуточно режиме.
C6/C11, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4873
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 43 раза
SQLite for Clarion (Fork)
То есть концепция такая, что все нужное формируем на стороне кларионовского приложения в готовом виде, а на сайте или мобильном приложении сразу с этим работаем без каких-либо дополнительных телодвижений. Достаточно просто скопировать файлики по ftp. А на мобильном девайсе подгрузить файл прайс по http.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7680
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 68 раз
SQLite for Clarion (Fork)
Вам и мне - да. Особенно если FTP протокол настроен и не банится (как опасный уже большинством провайдеров).
А вот менеджеру Анатолию хотелось бы просто нажать кнопку "Обновить прайс" и не думать об вот этом вот всём.
Make Clarion Great Again !
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4873
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 43 раза
SQLite for Clarion (Fork)
Не понял. Я же написал, что для обновления прайса достаточно нажать кнопку или оно само по расписанию.
Если программа лезет куда-то по ftp, то её может заблокировать брэндмауэр или антивирус. Поэтому можно сказать, что да, в таких случаях надо сделать некоторые телодвижения на компьютере пользователя. Со стороны провайдера проблем не замечал, у меня обмен по ftp на около сотне компьютеров используется. А какая альтернатива для публикации данных на хостинге?
Если программа лезет куда-то по ftp, то её может заблокировать брэндмауэр или антивирус. Поэтому можно сказать, что да, в таких случаях надо сделать некоторые телодвижения на компьютере пользователя. Со стороны провайдера проблем не замечал, у меня обмен по ftp на около сотне компьютеров используется. А какая альтернатива для публикации данных на хостинге?
C6/C11, ШВС, tps/btrieve.