Вверх ↑
Этот топик читают: Гость
Ответов: 1821
Рейтинг: 168
#1486: 2017-10-23 22:58:29 ЛС | профиль | цитата
Извиняюсь, ошибся темой, в начале думал, что данный функционал присутствует и в SQLite. В большей мере помощь была нужна именно в составлении логики запроса (точно не знаю, как это правильно назвать), ибо получение названия месяца гуглится несколько секунд
карма: 5

0
Ответов: 952
Рейтинг: 4
#1487: 2017-11-14 22:32:03 ЛС | профиль | цитата
Нашел странное явление. По каким-то причинам при запущенном эмуляторе Nox - вылетает с рунтаймом часть прог для БД SQLite. Стоит закрыть эмулятор - всё работает.
На Ноксе запущен андроид.
карма: 0

0
Ответов: 4621
Рейтинг: 746
#1488: 2018-01-31 15:50:32 ЛС | профиль | цитата
Ковырял компоненты SQLite. Если в функции sqlite3_exec() указывается 5-ый параметр, то он должен быть освобождён по sqlite3_free():
https://sqlite.org/c3ref/exec.html писал(а):
If the 5th parameter to sqlite3_exec() is not NULL then any error message is written into memory obtained from sqlite3_malloc() and passed back through the 5th parameter. To avoid memory leaks, the application should invoke sqlite3_free() on error message strings returned through the 5th parameter of sqlite3_exec() after the error message string is no longer needed.

Надо поправить в файлах:
hiSQLite_QueryScalar.pas
hiSQLite_Query.pas
hiSQLite_Exec.pas
hiDS_SQLite.pas

Сделал модификацию этих компонентов - добавил свойство Charset[ANSI, UTF-8], чтобы можно было без лишних телодвижений пользоваться кодировкой UTF-8.

Также:

1) Причесал код, выбросил лишнее
2) hiCharset.pas
- Причёсана функция CodePage1ToCodePage2
- Добавлены функции StringToUTF8, UTF8ToString для удобочитаемости
3) SqLite3Api.pas
- Косметические изменения
- Добавлены несколько объявлений пока не используемых функций
- Объявлен тип PCharPointers/TCharPointers для использования в TExecCallBack (раньше похожее было объявлено в каждом компоненте)
4) Из стандартного примера "SQLLite_Demo.sha" выброшены сохранение/загрузка положения окна и имени файла из реестра

SQLite components mod 2018-04-04.zip

Редактировалось 2 раз(а), последний 2018-04-04 13:09:28
карма: 26

0
Ответов: 952
Рейтинг: 4
#1489: 2018-02-08 12:47:03 ЛС | профиль | цитата
А есть пример в котором БД позволяет сохранять в неё изображения?
Или это намного усложнит и замедлит работу с БД?
Изображения - сканы ч\б.
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#1490: 2018-02-08 13:32:18 ЛС | профиль | цитата
user_asm писал(а):
А есть пример в котором БД позволяет сохранять в неё изображения?

Вот тут что-то когда-то мутили -- http://forum.hiasm.com/topic/55254/0#p173093
И вот тут еще по этой теме что-то есть -- http://forum.hiasm.com/post/60521

Редактировалось 1 раз(а), последний 2018-02-08 13:46:58
карма: 22

0
Ответов: 952
Рейтинг: 4
#1491: 2018-02-09 09:38:24 ЛС | профиль | цитата
Блин, там без поллитра не разгребешь...
Может хранить в БД только ссылки на изображения, а сами сканы валить в одну папку где-нибудь на сервере в локалке...
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#1492: 2018-02-09 13:02:38 ЛС | профиль | цитата
user_asm писал(а):
Блин, там без поллитра не разгребешь...

Да там ничего шибко сложного-то и нет. Блин, потерял классную схему по записи/чтению картинок в/из базы, никак найти не могу.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#1493: 2018-02-09 22:57:51 ЛС | профиль | цитата
user_asm писал(а):
Может хранить в БД только ссылки на изображения, а сами сканы валить в одну папку где-нибудь на сервере в локалке...
Можно так, а можно хранить в таблице БД двумя способами - оба описаны в этой теме раньше. Ищи.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#1494: 2018-02-10 00:03:34 ЛС | профиль | цитата
Во, нашел пример записи и чтения картинки в blob поля. Быстродействие, конечно, не ахти, но для мелких картинок пойдет
карма: 22

0
файлы: 1Example_SQLite_BlobToImg_&_ImgToBlob.zip [5.4KB] [655]
Ответов: 952
Рейтинг: 4
#1495: 2018-02-11 23:44:40 ЛС | профиль | цитата
Ага, значит картинка 8Кб сразу увеличивает БД до 10Кб. Ну что ж, закономерно. Видимо таки хранить ссылки будет оптимальнее, ибо заказов у меня 500-1000 в год.
Но тут другой вопрос, для облегчения поиска лучше завести доп. файл БД или сделать отдельную таблицу?
Почему собственно возник вопрос. В некоторых случаях критически важно слова и сочетания которые указаны в письме заказчика.
Именно поэтому собираюсь внедрить некую систему хранения сканов заказа.
Локалка и сервер с постоянным бэкапом в наличии.
В данный момент я вношу все сведения о заказе в БД - исх.№, дата, вх.№, объект и т.д. А вот при возникновении вопросов - приходится лохматить бумагув папке Заказы. Что не совсем удобно.

П.С. Спасибо nesco за схему. Клик по Read ничего не дает. Что-то видимо не так.

Редактировалось 3 раз(а), последний 2018-02-11 23:49:37
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#1496: 2018-02-12 00:38:36 ЛС | профиль | цитата
user_asm писал(а):
Клик по Read ничего не дает. Что-то видимо не так.

Да ну

Редактировалось 1 раз(а), последний 2018-02-12 00:39:40
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 952
Рейтинг: 4
#1497: 2018-03-07 09:34:13 ЛС | профиль | цитата
Возникла странная проблема с выгрузкой выборки в CSV. Почему то в полученном файле значение поля из БД разбивается на несколько эксель ячеек. Соответственно открывая файл Экселем я наблюдаю разбросанные данные.
Вот содержание поля БД которое разбрасывает при экспорте:
/ 2017-12-19 Договор возвращен /
/ 2018-01-12 Приостановлено /
/ 2018-01-29 предос документ /
/ 2018-01-04 Сдано /
/ 2018-02-02 Отказ /
Это поле создается в элементе РичЭдит.
Что не так? Как адекватно экспортировать?

П.С. Сторонним софтом, типа sqliteadmin экспорт идет корректно.

Редактировалось 1 раз(а), последний 2018-03-07 09:59:46
карма: 0

0
Ответов: 4621
Рейтинг: 746
#1498: 2018-03-07 11:52:03 ЛС | профиль | цитата
Ну, так посмотри структуру получаемого файла CSV. Поля должны быть разделены разделителем (например, ","), а если в значении поля встречается разделитель, то поле должно быть обрамлено символами " (или другими, если предусмотрено). Чтобы не заморачиваться можно обрамлять все поля. Если в значении поля встречается символ обрамления - он должен быть удвоен.
карма: 26

0
Ответов: 952
Рейтинг: 4
#1499: 2018-03-08 08:40:45 ЛС | профиль | цитата
Нет в содержании ; ни до ни после ни внутри.
Именно этот знак установлен как разделитель.
Именно поэтому и спрашиваю, может еще какие-то причины.
Символы слэша похоже каким-то образом нарушают структуру получаемого файла. Беда...

Редактировалось 1 раз(а), последний 2018-03-08 08:54:13
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#1500: 2018-03-08 09:53:54 ЛС | профиль | цитата
user_asm писал(а):
Нет в содержании ; ни до ни после ни внутри.
А кто говорил про ";"?
Без обид : По умению шифровать вопросы ты бесспорно чемпион!
справка по RichEdit писал(а):
Замечания
В компоненте замечена проблемма с кирилическими символами при работе с компонентом как с массивом данных.
(Кто бы исправил на русский : проблема с кириллическими)
Может здесь собака зарыта.
user_asm писал(а):
создается в элементе РичЭдит.
А зачем RichEdit ?
Что получить csv-файл прямым запросом к БД, как это делает sqliteadmin, никак?

Редактировалось 2 раз(а), последний 2018-03-08 10:01:31
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)