Переключение на Главную Страницу Страницы: 1 ... 39 40 [41] 42 43 ... 79 ОтправитьПечать
Очень популярная тема (более 25 ответов) 1sqlite (число прочтений - 532414 )
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #600 - 25. Ноября 2010 :: 13:21
Печать  
ТочноеЯдро писал(а) 25. Ноября 2010 :: 10:34:
ыыыыыы Печаль
первое же обращение к базе SQLite ложит её намертво.
При попытке подключиться к ней после этого через SQLite Dev выдаёт ошибку "ERROR: file is encrypted or is not a database"
Плачущий
Кстати чем реанимировать базу SQLite в случае чего-то подобного ?
Бэкап само собой, но если нжно поднять то что есть на сию минуту.  Улыбка
_________

PS рядом с файлами базы начали создаваться файлы типа
ИмяБазы.db3-shm и ИмяБазы.db3-wal

Попробуй первым обращением к базе данных пошли запрос
Код
Выбрать все
pragma journal_mode=delete
 


или вместо delete - одно из TRUNCATE | PERSIST | MEMORY | OFF
См. http://www.sqlite.org/pragma.html#pragma_journal_mode
Походу у тебя пытается базу открыть в WAL режиме
http://www.sqlite.org/wal.html

И походу у тебя база не накрылась, а просто SQLite Dev не может работать с новым форматом баз.
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #601 - 30. Ноября 2010 :: 09:53
Печать  
Выкладываю на тест еще одну доработку.
Научил функцию date понимать входную дату в формате 1С - YYYYMMDD.
Если на вход поступает строка длиной 8 символов, то в нее вставляются '-' в нужных местах (приводится к формату YYYY-MM-DD) и при возврате они убираются. В остальных случаях все работает как раньше.
Теперь можно просто писать
Код
Выбрать все
date(Ж.date, '+5 days') 


  

1sqlite_011.zip ( 426 KB | Загрузки )
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: 1sqlite
Ответ #602 - 30. Ноября 2010 :: 10:21
Печать  
Прикольно!
А то у меня даже спец. метод был написан "ДатаВSQL()", который то же самое делал..
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #603 - 30. Ноября 2010 :: 11:48
Печать  
Спасиб!
У меня тоже есть ф-ия под названием "ДатаВФорматБД"
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
1sqlite и дата
Ответ #604 - 02. Декабря 2010 :: 01:53
Печать  
CaBaT писал(а) 30. Ноября 2010 :: 10:21:
Прикольно!
А то у меня даже спец. метод был написан "ДатаВSQL()", который то же самое делал..
JohnyDeath писал(а) 30. Ноября 2010 :: 11:48:
Спасиб!
У меня тоже есть ф-ия под названием "ДатаВФорматБД"

Может, я немного отстал от жизни, нго приведите, пожалуйста, пример, где подобный метод затребован?
Всегда передавал дату параметром и не возникало вопросов...
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
1sqlite и --
Ответ #605 - 02. Декабря 2010 :: 03:40
Печать  
Обнаружил зависание 1sqlite при попытке комментирования строки в запросе при помощи "--" в начале строки.
Ошибки не вызвало, но 1С зависла и начала зверзки жрать память.
Комментарий добавил на автомате, отлаживая запрос в консольке, но такое поведение нелогично, ИМХО - или пусть оно ругается или же пусть комментирует.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite и дата
Ответ #606 - 02. Декабря 2010 :: 07:00
Печать  
Dmitry The Wing писал(а) 02. Декабря 2010 :: 01:53:
CaBaT писал(а) 30. Ноября 2010 :: 10:21:
Прикольно!
А то у меня даже спец. метод был написан "ДатаВSQL()", который то же самое делал..
JohnyDeath писал(а) 30. Ноября 2010 :: 11:48:
Спасиб!
У меня тоже есть ф-ия под названием "ДатаВФорматБД"

Может, я немного отстал от жизни, нго приведите, пожалуйста, пример, где подобный метод затребован?
Всегда передавал дату параметром и не возникало вопросов...

Саша один из вариантов уже написал:
Код
Выбрать все
date(Ж.date, '+5 days') //СмещениеДаты5дней 


раньше приходилось выкручиваться через substr, отчего записи становились громоздкими и нечитаемыми
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: 1sqlite и дата
Ответ #607 - 02. Декабря 2010 :: 07:27
Печать  
JohnyDeath писал(а) 02. Декабря 2010 :: 07:00:
раньше приходилось выкручиваться через substr, отчего записи становились громоздкими и нечитаемыми

Кажется, начинаю понимать, - это когда надо получить доки за определенный период, задаваемый не параметрами, а результатами запроса ... хотя реального приложения такой надобности пока не могу придумать...
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #608 - 02. Декабря 2010 :: 07:54
Печать  
Еще, например, необходимо получить в запросе номер недели или возвращать 1/0 в зависимости от того был ли день выходным или нет. Много всякого...
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #609 - 02. Декабря 2010 :: 07:57
Печать  
Кстати, Саш, а можешь добавить ф-ию, возвращающую номер квартала?
Или по аналогии с этим:
Цитата:
%d            day of month: 00
%f            fractional seconds: SS.SSS
%H            hour: 00-24
%j            day of year: 001-366
%J            Julian day number
%m            month: 01-12
%M            minute: 00-59
%s            seconds since 1970-01-01
%S            seconds: 00-59
%w            day of week 0-6 with Sunday==0
%W            week of year: 00-53
%Y            year: 0000-9999
%%            %

Добавить какой-нибудь %q, который бы это делал?
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #610 - 02. Декабря 2010 :: 14:34
Печать  
попробую.
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #611 - 03. Декабря 2010 :: 06:28
Печать  
В функцию strftime добавлен модификатор %q - выводит номер квартала переданной даты: 1-4

Пример:
Код
Выбрать все
select
    date,
    date [Дата :Дата],
    strftime("%q квартал %Y года", date)  Квартал
from Журнал
limit 500 


  

1sqlite_012.zip ( 426 KB | Загрузки )
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #612 - 03. Декабря 2010 :: 06:42
Печать  
Класс! Спасибо.
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: 1sqlite
Ответ #613 - 03. Декабря 2010 :: 06:57
Печать  
orefkov писал(а) 03. Декабря 2010 :: 06:28:
добавлен модификатор

А про комментарии можешь что рассказать?
Почему оно повисло?
вот: Dmitry The Wing писал(а) 02. Декабря 2010 :: 03:40:
--

  
Наверх
 
IP записан
 
CaBaT
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 718
Местоположение: Санкт-Петербург
Зарегистрирован: 26. Октября 2007
Пол: Мужской
Re: 1sqlite
Ответ #614 - 03. Декабря 2010 :: 07:07
Печать  
Dmitry The Wing писал(а) 03. Декабря 2010 :: 06:57:
А про комментарии можешь что рассказать?
Почему оно повисло?

Постоянно использую комментарии в запросах, ни разу ничего не висло..
Правда пока все еще использую версию 1.0.2.3
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 39 40 [41] 42 43 ... 79
ОтправитьПечать