|
v7: Кто работал с 1sqlite.dll. В многопользовательском режиме зависает. | ☑ | ||
---|---|---|---|---|
0
Snikers_OLD
25.09.13
✎
16:34
|
Доброго времени. У клиента стоит 7.7. Достаточно большой справочник Номенклатуры. Для быстрого поиска предыдущий разработчик применил библиотеку 1sqlite.dll для прямых запросов, насколько я понял. Пока работа была в однопользовательском режиме все работало хорошо, но потом клиент решил подключить 2 комп. И тут возникла проблема, когда работает одновременно 2 комп., то тот на котором запустили 1с последним фичи с использованием 1sqlite.dll зависают.
С 1sqlite.dll не доводилось работать, не подскажите в чем причина. 1с r27 файловая. 1sqlite.dll (1.0.2.3). Сама длл-ка загружается в "ПриНачалеРаботыСистемы()" |
|||
1
viktor_vv
25.09.13
✎
17:05
|
Использую. Не встречал такого. Правда у меня, там где это работает, все в терминале работают.
|
|||
2
IVT_2009
25.09.13
✎
17:30
|
сама по себе эта субд однопользовательская, точней не дает возможности писать в таблицу в два и более потока. Или нужно колдовать с ее параметрами или вообще невозможно.
|
|||
3
hogik
25.09.13
✎
22:04
|
Попробуйте использовать режим "NeedTransaction=0".
|
|||
4
Aleksey
25.09.13
✎
22:08
|
(2) так ворде бы тут не в записи дело, идет стандартный запрос на чтения в памяти к БД
|
|||
5
Aleksey
25.09.13
✎
22:08
|
(3) эээ, а почему не
запрос.ВыполнитьЗапрос("PRAGMA journal_mode = WAL"); |
|||
6
hogik
25.09.13
✎
23:10
|
(5)
эээ, а потому не... :-) Вот диалог. Aleksey: "PRAGMA journal_mode = WAL или OFF Для внешней SQLite базы понятно. А если запрос выполняется к таблицам 1С" orefkov: "Тогда фиолетово." http://www.1cpp.ru/forum/YaBB.pl?num=1214205575/571 Дальше тему не читал. Возможно Вам удалось разубедить Орефкова Александра. ;-) |
|||
7
hogik
25.09.13
✎
23:41
|
(5)(0)
Если "подключить 2 комп"(с), то скорость выполнения запроса при использовании разных значений NeedTransaction может измениться в пятнадцать раз. http://infostart.ru/public/57165/ |
|||
8
Холст
26.09.13
✎
00:19
|
(0) работа по сети ? конечно кеширование теряется
используй http://www.wirth.ru/load/v7dbnet/1-1-0-2 |
|||
9
Dolly_EV
27.09.13
✎
08:33
|
(0) если не хочешь вникать и разбираться - сделай из одной машины терминал, и второго пользователя - в терминал.
|
|||
10
ЧеловекДуши
27.09.13
✎
08:43
|
(0) Может вы запрос написали не корректно...
Дайте взглянуть на код Запроса, где подвисает? |
|||
11
Snikers_OLD
27.09.13
✎
19:23
|
(10) //РазбиваемаяСтрока=СтрЗаменить(РазбиваемаяСтрока,"'","''");
РазбиваемаяСтрока=СтрЗаменить(СокрЛП(стрПоиска)," ",РазделительСтрок); текст="SELECT |code Код, |Артикул, |id [Товар :Справочник.Номенклатура], |Поставщик [Поставщик :Справочник.Контрагенты] |FROM Номенклатура |WHERE isfolder=2 and ismark <> '*'"; ПолеПоиска= СписокПолейПоиска.ПолучитьЗначение(СписокПолейПоиска.ТекущаяСтрока()); Если ПолеПоиска="Наименование" Тогда ПолеПоиска="descr"; ИначеЕсли ПолеПоиска = "ПолноеНаименование" Тогда ПолеПоиска = "ПолнНаименование" КонецЕсли; Для Индекс=1 По СтрКоличествоСтрок(РазбиваемаяСтрока) Цикл Слово=СтрПолучитьСтроку(РазбиваемаяСтрока,Индекс); Если ПустоеЗначение(Слово)=0 Тогда текст=текст+" |AND "+ПолеПоиска+" LIKE '%"+Слово+"%'"; КонецЕсли; КонецЦикла; |
|||
12
hogik
27.09.13
✎
19:51
|
(11)
Еще раз. ;-) http://infostart.ru/public/57165/ NeedTransaction=0 Время выполнения запроса: 2513 NeedTransaction=1 Время выполнения запроса: 161 NeedTransaction Тип: Число Чтение/Запись Описание: 1 - автоматически начинать транзакцию 1С при выполнении запроса в момент первого обращения к таблицам 1С, 0 - не начинать. При создании объекта SQLiteQuery свойство устанавливается в 0. В немонопольном режиме работы, при установке свойства в 1, в момент первого обращения к любой таблице 1С при выполнении запроса, если транзакция не начата, будет начата транзакция, и она же будет отменена сразу после выполнения запроса. При этом увеличивается скорость выполнения запроса, однако любая таблица 1С, из которой осуществлено чтение - будет недоступна для записи в других сеансах 1С. В монопольном режиме, независимо от значения свойства, транзакция будет начата, если она еще не открыта. |
|||
13
Snikers_OLD
05.10.13
✎
10:50
|
(12) прошу прощения, я туплю конечно, где установить этот NeedTransaction=1?
|
|||
14
Snikers_OLD
05.10.13
✎
10:57
|
(12),(13) Нашел, Спасибо большое помогло.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |