Переключение на Главную Страницу Страницы: 1 ... 48 49 [50] 51 52 ... 79 ОтправитьПечать
Очень популярная тема (более 25 ответов) 1sqlite (число прочтений - 487817 )
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: 1sqlite
Ответ #735 - 27. Октября 2014 :: 07:55
Печать  
Я не помню ужо, давно это было.
Откатился в своё время на 24 релиз.
Как-нить потестю твою вк на досуге - щас просто не на чем, все на снеговике ужо.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: 1sqlite
Ответ #736 - 31. Октября 2014 :: 08:32
Печать  
Djelf, можешь посмотреть по поводу ошибки метода УложитьТЗ для больших чисел? Может у тебя получится ее исправить.

И еще  вопрос - а почему именно 3.7.11, а не последняя (уже 3.8.7.1 http://www.sqlite.org/changes.html)?
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 634
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: 1sqlite
Ответ #737 - 31. Октября 2014 :: 08:43
Печать  
alyuev писал(а) 31. Октября 2014 :: 08:32:
Djelf, можешь посмотреть по поводу ошибки метода УложитьТЗ для больших чисел? Может у тебя получится ее исправить.

И еще  вопрос - а почему именно 3.7.11, а не последняя (уже 3.8.7.1 http://www.sqlite.org/changes.html)?

Тест с ошибкой, плиз. Посмотрю.

Ну а по поводу 3.8.7 тут такое дело:
всегда проще обновлять до ближайшей версии
ну 3.8.7 то я завел... но там изменился планировщик и 1sqlite ему уже не правильные подсказки дает, поэтому запросы не взлетают, а медленно ползают.


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


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: 1sqlite
Ответ #738 - 31. Октября 2014 :: 09:01
Печать  
Здесь упоминали об ошибке с примером: http://www.1cpp.ru/forum/YaBB.pl?num=1214205575/593#593
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 634
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: 1sqlite
Ответ #739 - 31. Октября 2014 :: 09:54
Печать  
УложитТЗ укладывает ничего не обрезая, но тип ставит LargeInt в соответствии со своей документацие, и если засовывать не 25639874165897, а 25639874165897.1 то тип будет Float
ну в общем вместо
Select code From tempTZ
пишем
Select cast(code as float) as code From tempTZ
и не мучаемся
  
Наверх
www  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: 1sqlite
Ответ #740 - 31. Октября 2014 :: 10:19
Печать  
Ошибка была другая. 26 валился ну на совсем примитивных запросах. Просто форум поломался и половины сообщений потерялись, в том числе, в ветке про 1sqlite

+Были ошибки с граничными значениями в запросе
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: 1sqlite
Ответ #741 - 31. Октября 2014 :: 11:42
Печать  
Интересно, а на старой версии 1.0.2.4 этот финт
Код
Выбрать все
cast(code as float) 

не проходит - не ругается, но возвращает неверное значение для длинных чисел. За решение - Спасибо!
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
MegaDimich
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Местоположение: Киев
Зарегистрирован: 26. Июня 2011
Пол: Мужской
Re: 1sqlite
Ответ #742 - 31. Октября 2014 :: 12:17
Печать  
Добрый день!
Помогите преобразовать запрос под 1sqlite
Код
Выбрать все
	//Создание объекта типа Запрос
	Запрос = СоздатьОбъект("Запрос");
	ТекстЗапроса =
	"//{{ЗАПРОС(Сформировать)
	|Обрабатывать НеПомеченныеНаУдаление;
	|ТекущийЭлемент = Справочник.Номенклатура.ТекущийЭлемент;
	|ДатаИзмЦены = Справочник.Номенклатура.ДатаИзмЦены;
	|АС = Справочник.Номенклатура.Catalog.Number_Part;
	|Model = Справочник.Номенклатура.Catalog.Model;    
	|Груп = Справочник.Номенклатура.Catalog.ГруппаТовара;
	|Марка = Справочник.Номенклатура.Catalog.Model.Марка;
	|Группировка ТекущийЭлемент без групп;
	|"//}}ЗАПРОС
	;                                                      

	Если ПустоеЗначение(ВыбАС) = 0 Тогда
		ТекстЗапроса = ТекстЗапроса + "Условие(АС = ВыбАС);";    
	КонецЕсли;
	Если ВыбМарка.Выбран() = 1 Тогда
		ТекстЗапроса = ТекстЗапроса + "Условие(Марка = ВыбМарка);";
	КонецЕсли;  
	Если ВыбМодель.Выбран() = 1 Тогда
		ТекстЗапроса = ТекстЗапроса + "Условие(Model = ВыбМодель);";
	КонецЕсли;    
	Если ВыбГруппа.Выбран() = 1 Тогда
		ТекстЗапроса = ТекстЗапроса + "Условие(Груп = ВыбГруппа);";
	КонецЕсли;
	Если Акт = 1 Тогда
		ТекстЗапроса = ТекстЗапроса + "Условие((ТекущаяДата() - ДатаИзмЦены) <= Константа.АктуальностьПрайсаДней);";    
	КонецЕсли;

	// Если ошибка в запросе, то выход из процедуры
	Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
		Возврат;
	КонецЕсли;

	Пока Запрос.Группировка() = 1 Цикл    
		Если ПустоеЗначение(Запрос.ТекущийЭлемент) = 0 Тогда  
			СпГруппы.ДобавитьЗначение(Запрос.ТекущийЭлемент);
		КонецЕсли;
	КонецЦикла;	  
 

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


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 634
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: 1sqlite
Ответ #743 - 16. Ноября 2014 :: 16:32
Печать  
Eprst писал(а) 31. Октября 2014 :: 10:19:
Ошибка была другая. 26 валился ну на совсем примитивных запросах. Просто форум поломался и половины сообщений потерялись, в том числе, в ветке про 1sqlite

+Были ошибки с граничными значениями в запросе

Это очень печально, что все потерялось... Погуглил по сабжу, но нашел только сообщения такого вида "Eprst > 1.0.2.6 глючная" Подмигивание
Судя по изменениям в 1sqlite 1.0.2.3 от 1.0.2.5 не сильно отличаюся (1.0.2.4 нету в svn, а репозитарий на fosill сдох), кроме замены движка sqlite т.е. виноват был все таки он.

alyuev писал(а) 31. Октября 2014 :: 11:42:
Интересно, а на старой версии 1.0.2.4 этот финт
Код
Выбрать все
cast(code as float) 

не проходит - не ругается, но возвращает неверное значение для длинных чисел. За решение - Спасибо!

Так и должно быть. Передача таких чисел между 1sqlite и sqlite была добавлена в неопубликованной версии 1.0.2.5

Проверил несколько движков sqlite 3.8.*, пошаманил с оптимизатором, все равно получается какая то ерунда, я ему вес 1 даю на индекс по Документ_Строки, а он все равно выберает сырое чтение... На одном моем запросе падение скорости в 100500 раз. Где косяк спрятался не очень пока понятно.

Ну да ладно, обновил движок sqlite до 3.7.17.0 (последний где оптимизатор не глючит).
Забавно, постенький запрос стал раза в полтора быстрее.
Код
Выбрать все
SELECT
	РегПар.Номенклатура	 [Номенклатура $Справочник.Номенклатура],
	sum(case DEBKRED when 1 then 0 else РегПар.Количество end)	 [КоличествоПриход $Число.15.5],
	sum(case DEBKRED when 1 then РегПар.Количество else 0 end)	 [КоличествоРасход $Число.15.5]
FROM Регистр_ПартииНаличие AS РегПар
WHERE РегПар.date BETWEEN :НачДата AND :КонДата
GROUP BY РегПар.Номенклатура
 



на более сложных запросах +10-15%

+ заработала оптимизация по IN (запросы на выбор индекса стали поступать в 1sqlite).

- оптимизация по IN может быть не адекватно обработана планировщиком sqlite http://www.1cpp.ru/forum/YaBB.pl?num=1418818749/6#6
« Последняя редакция: 20. Февраля 2015 :: 10:45 - Djelf »  

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: 1sqlite
Ответ #744 - 17. Ноября 2014 :: 08:06
Печать  
Спасибо, потестю на досуге (если не лень будет)
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: 1sqlite
Ответ #745 - 21. Ноября 2014 :: 11:36
Печать  
С новой версией перестал работать запрос (на старой 1.0.2.4 с sqlite 3.6.22 работает):

Код
Выбрать все
Select
	--Клиенты.СчетОсн as СчетОсн	-- Так работает
	Дв.Клиенты.СчетОсн as СчетОсн   -- Так не работает
From
	Регистр_Кредиты Дв
	Left Join Справочник_Клиенты Клиенты On Дв.Клиент=Клиенты.ID
LIMIT 1
 



Выдает ошибку: "no such column: Дв.Клиенты.СчетОсн"

Обратите внимание - "Клиенты" - это Таблица, а не поле! Я обращаюсь к ней как Дв.Клиенты.

Если определять поле не через двойную точку, а просто Клиенты.СчетОсн, то всё работает
« Последняя редакция: 21. Ноября 2014 :: 13:07 - alyuev »  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 634
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: 1sqlite
Ответ #746 - 21. Ноября 2014 :: 13:26
Печать  
Запрос sql это же не запрос 1С, он 3 точки не понимает.

В 1.0.2.4/3.6.22 и 1.0.2.6/3.7.10-3.7.11 sqlite игнорировал первый параметр в таком запросе, т.е. можно даже было написать
АТакТожеРаботает.Клиенты.СчетОсн as СчетОсн
все равно оно выполнялось как
Клиенты.СчетОсн as СчетОсн

Раз sqlite ругается значит где то между 3.7.11 и 3.7.17 сделали проверку на такую штуку, не отключать же ее?
Хотя, может  3.7.17 ищет в таблице Дв поле "Клиенты.СчетОсн" что тоже правдоподобно...


Разобрался. sqlite разирает эту строку так:
Дв.Клиенты.СчетОсн разбирается как
База данные = Дв, Таблица Клиенты, Поле СчетОсн



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


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: 1sqlite
Ответ #747 - 21. Ноября 2014 :: 14:04
Печать  
А как же в старой-то версии работает? В этой версии как раз игнорируется первая часть?
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 634
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: 1sqlite
Ответ #748 - 21. Ноября 2014 :: 15:53
Печать  
Все верно.
До версии sqlite 3.7.11 воспринимаются только 2 последних параметра разделенных точкой, в 3.7.17 уже 3 параметра, где первый имя базы, что логично, т.к. sqlite умеет подключать несколько баз.
В какой именно промежуточной версии было изменено поведение я не вижу смысла искать.
Плохо что в старой такое вообще работало.
Это не правильно, когда какая то часть запроса игнорируется и никаких сообщений об этом нет.

P.S. в sqlite 3.8.7.2 точно такая же реакция как и в 3.7.17, т.е. это не баг, а намеренное изменение.
  
Наверх
www  
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: 1sqlite
Ответ #749 - 21. Ноября 2014 :: 16:18
Печать  
Так это парсит sqlite? Не 1sqlite?
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 48 49 [50] 51 52 ... 79
ОтправитьПечать