Переключение на Главную Страницу Страницы: 1 ... 71 72 [73] 74 75 ... 79 ОтправитьПечать
Очень популярная тема (более 25 ответов) 1sqlite (число прочтений - 458119 )
Djelf
God Member
*****
На связи


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: 1sqlite
Ответ #1080 - 31. Мая 2023 :: 10:57
Печать  
Ветер в поле писал(а) 31. Мая 2023 :: 06:28:
Большое спасибо! А я уж было подумал, что у меня какой-то невозможный глюк - у всех всё работает и не жалуются - один я с проблемой...


Рано было спасибо... Вот теперь проверяй!
Вроде исправлено в 1sqlite_3.40.1.28 https://cloud.mail.ru/public/9znr/ZJ6ULE9aR

При поиске по like без % в начале, сначала будет начат поиск индекса и предфильтра.
Т.е. при descr like 'аа%' сначала будет добавлен предфильтр по индексу, как descr between 'аа' and 'аб'
В соответствии с collate _1c в отобранные записи попадет 'аабxxx' и 'аасxxx', а ''абххх' не попадет.
То что осталось после фильтра прогонится через like.

P.S. Оно должно было бы работать, и имело шанс так работать, без моего вмешательства, но я где-то сломал кусочек кода (не могу найти где) Круглые глаза
Ибо запрос descr between 'аа' and 'аб' сломалось на смене версий 3.25-3.27
Посыпаю голову пеплом, такого теста у меня не было.
Это очень редкий случай использования collate _1c с between.
« Последняя редакция: 31. Мая 2023 :: 13:52 - Djelf »  
Наверх
www  
IP записан
 
zelenprog
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 42
Зарегистрирован: 03. Июня 2022
Пол: Мужской
Re: 1sqlite
Ответ #1081 - 02. Июня 2023 :: 07:49
Печать  
Здравствуйте!

Есть несколько вопросов по вашей компоненте.

1) По команде "ВыполнитьЗапрос(ТекстЗапроса)" возвращается ТаблицаЗначений с результатами.
Можно ли как-то сделать, чтобы результаты возвращались в ИндексированнойТаблице?
Или чтобы эта команда заполняла результатами запроса переданную в параметре ИндексированнуюТаблицу?

2) Можно ли с помощью этой компоненты создать локальную базу sqlite и поместить в нее результаты запроса? Если да, то как это сделать?

3) Можно ли эту компоненту использовать из 1С8-ки?
Есть мысль попробовать сделать выгрузку из 7-ки в sqlite-базу, а потом в 8-ке загрузить эти данные.
  
Наверх
 
IP записан
 
Djelf
God Member
*****
На связи


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: 1sqlite
Ответ #1082 - 02. Июня 2023 :: 14:31
Печать  
Сначала читаем читаем справку в chm: https://snegopat.ru/downloads/1sqlite/
По п.1. в ит запрос sqlite выгрузить можно (см.chm), загрузить из ит в sqlite сложно, из-за отсутствия строгой типизации колонок, поэтому это не реализовано.
По п.2. создаем базу не в памяти, а в файле (см.chm).
Дальше с этой файловой базой в формете sqlite можно работать стандартными sql командами/запросами.
Можно совмещать запросы к файловой базе в формате sqlite и к файловой базе 1С 7.7 в одном запросе.
По п.3. из 8ки базу нужно цеплять не этой ВК, а другой от того же автора https://forum.mista.ru/topic.php?id=882691

P.S. Автором этой ВК я не являюсь, я всего лишь "пропаданец" на ее сопровождение и некоторое развитие.
« Последняя редакция: 02. Июня 2023 :: 16:56 - Djelf »  
Наверх
www  
IP записан
 
zelenprog
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 42
Зарегистрирован: 03. Июня 2022
Пол: Мужской
Re: 1sqlite
Ответ #1083 - 04. Июня 2023 :: 08:22
Печать  
Djelf писал(а) 02. Июня 2023 :: 14:31:
Сначала читаем читаем справку в chm: https://snegopat.ru/downloads/1sqlite/

Справку прочитал. Но не все ответы я там нашел.

Djelf писал(а) 02. Июня 2023 :: 14:31:
По п.1. в ит запрос sqlite выгрузить можно (см.chm)...

Конкретно про "ИндексированнуюТаблицу" в справке не написано.
Вот что там написано:
"Если параметр Приемник объект, реализованный в других компонентах для приема результата запроса SQLite, то возвращаемое значение определяется этим объектом, и должно быть описано в документации к сторонней компоненте."
"При выполнении запросов на выборку, куда и как именно будут получены результаты запроса, и что будет возвращено методом, зависит от параметра Приемник, и переданного ему параметра ПараметрДляПриемника. В параметре Приемник должен быть передан объект, умеющий принимать результат выполнения запроса SQLite и формировать возвращаемое из метода значение. Такие объекты могут быть реализованы в других внешних компонентах."

Не понятно, как это отработает, если передать параметром ИндексированнуюТаблицу.
Надо наверно пробовать?

Djelf писал(а) 02. Июня 2023 :: 14:31:
По п.2. создаем базу не в памяти, а в файле (см.chm).
Дальше с этой файловой базой в формете sqlite можно работать стандартными sql командами/запросами.
Можно совмещать запросы к файловой базе в формате sqlite и к файловой базе 1С 7.7 в одном запросе.

Но ведь объект "SQLiteQuery" создается методом "НовыйЗапрос()" объекта "SQLiteBase". То есть он как бы "привязан" к конкретной базе (либо к базе в sqlite-формате, либо к 1С7.7-базе).
Если в тексте запроса будет обращение к двум разным базам, как это указывается?
  
Наверх
 
IP записан
 
zelenprog
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 42
Зарегистрирован: 03. Июня 2022
Пол: Мужской
Re: 1sqlite
Ответ #1084 - 04. Июня 2023 :: 08:31
Печать  
Djelf писал(а) 02. Июня 2023 :: 14:31:
По п.3. из 8ки базу нужно цеплять не этой ВК, а другой от того же автора https://forum.mista.ru/topic.php?id=882691

Прочитал спасибо! Появилась такая идея.
Возможно ли с помощью этих компонент (1sqlite и v8sqlite) из одной 1С-базы подключиться к другой 1С-базе и работать сразу с обеими базами?
Например, из 1С77 подключиться сразу к базе 1С8 (или наоборот), и сразу прямыми запросами извлекать нужные данные из обеих баз, конвертировать их, и записывать в "целевую" базу.
Можно так сделать?
  
Наверх
 
IP записан
 
Djelf
God Member
*****
На связи


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: 1sqlite
Ответ #1085 - 04. Июня 2023 :: 10:09
Печать  
Нет, напрямую через память никак, только через общий файл sqlite.
Но его можно открыть одновременно и из 7ки и из 8ки.
В принципе 7ку можно подцепить по ole и рулить ей со стороны 8ки.
Должно сработать...

Хотя... видимо можно передавать данные через строку в формате json
https://www.sqlite.org/json1.html
Тогда можно и через память. Как-то так должно быть:
Код (SQL)
Выбрать все
SELECT
	json_object(Автомобили.ID,trim(Автомобили.DESCR))
FROM Справочник_Автомобили AS Автомобили
 


Не проверял как оно по ole в 8ку поступит.
  
Наверх
www  
IP записан
 
zelenprog
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 42
Зарегистрирован: 03. Июня 2022
Пол: Мужской
Re: 1sqlite
Ответ #1086 - 04. Июня 2023 :: 11:05
Печать  
Djelf писал(а) 04. Июня 2023 :: 10:09:
...
В принципе 7ку можно подцепить по ole и рулить ей со стороны 8ки.
Должно сработать...

Но использование OLE исключает использование 1sqlite и прямых запросов для работы с данными 1С7-базы. Правильно я понимаю?

Значит, если захотеть работать прямыми запросами и с 1С7-кой и с 1С8-кой, то оптимальный вариант - это промежуточная sqlite-база.
Так?

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


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: 1sqlite
Ответ #1087 - 04. Июня 2023 :: 11:08
Печать  
Да нет, пишем обработку на стороне 7ки, дергаем ее по ole с параметрами из 8ки, обработка в 7ке пишет в базу sqlite, 8ка потом забирает.
И см. обновление выше. Через json видимо тоже должно сработать.
  
Наверх
www  
IP записан
 
zelenprog
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 42
Зарегистрирован: 03. Июня 2022
Пол: Мужской
Re: 1sqlite
Ответ #1088 - 04. Июня 2023 :: 11:36
Печать  
Djelf писал(а) 04. Июня 2023 :: 11:08:
Да нет, пишем обработку на стороне 7ки, дергаем ее по ole с параметрами из 8ки, обработка в 7ке пишет в базу sqlite, 8ка потом забирает.
И см. обновление выше. Через json видимо тоже должно сработать.

Понял, спасибо.

А еще подскажи пожалуйста по вопросам, которые я выше задавал, про ИндексированнуюТаблицу и про совмещение в одном запросе обращений к двум базам:
zelenprog писал(а) 04. Июня 2023 :: 08:22:
Конкретно про "ИндексированнуюТаблицу" в справке не написано.
Не понятно, как это отработает, если передать параметром ИндексированнуюТаблицу.
Надо наверно пробовать?

Но ведь объект "SQLiteQuery" создается методом "НовыйЗапрос()" объекта "SQLiteBase". То есть он как бы "привязан" к конкретной базе (либо к базе в sqlite-формате, либо к 1С7.7-базе).
Если в тексте запроса будет обращение к двум разным базам, как это указывается?

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


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: 1sqlite
Ответ #1089 - 04. Июня 2023 :: 11:58
Печать  
zelenprog писал(а) 04. Июня 2023 :: 11:36:
А еще подскажи пожалуйста по вопросам, которые я выше задавал, про ИндексированнуюТаблицу и про совмещение в одном запросе обращений к двум базам:
[quote author=243B323B302E2C31395E0 link=1214205575/1083#1083 date=1685866944]
Конкретно про "ИндексированнуюТаблицу" в справке не написано.
Не понятно, как это отработает, если передать параметром ИндексированнуюТаблицу.
Надо наверно пробовать?

Но ведь объект "SQLiteQuery" создается методом "НовыйЗапрос()" объекта "SQLiteBase". То есть он как бы "привязан" к конкретной базе (либо к базе в sqlite-формате, либо к 1С7.7-базе).
Если в тексте запроса будет обращение к двум разным базам, как это указывается?


ит=СоздатьОбъект("ИндексированнаяТаблица");
ВыполнитьЗапрос(ТекстЗапроса,ит);

Фишка 1sqlite в том что не либо, а одновременно!
И подключить можно несколько внешних sqlite баз (не 2 базы 1С 7.7, а только одна база 1С 7.7)
Код (SQL)
Выбрать все
База.НовыйЗапрос().ВыполнитьЗапрос("ATTACH DATABASE '"+ФайлБазы+"' AS '"+ИмяСхемы+"';",0); 


Обращение к базе sqlite, если имена таблиц не пересекаются, можно просто по имени, если пересекаются как JOIN ИмяСхемы.ИмяТаблицы AS МояПрелесть

У мне так все интеграции и сделаны, внешняя база в sqlite, поле ID там есть, типизация данных из базы sqlite в 7.7 работает.
Таблицы в запросах из разных источников связываются - нет проблем.
Транзакции тоже раздельные получаются... красота!
  
Наверх
www  
IP записан
 
zelenprog
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 42
Зарегистрирован: 03. Июня 2022
Пол: Мужской
Re: 1sqlite
Ответ #1090 - 04. Июня 2023 :: 12:42
Печать  
Djelf, все понял, спасибо!
Буду пробовать.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


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

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: 1sqlite
Ответ #1091 - 05. Июня 2023 :: 15:22
Печать  
Интересно, а с какого момента имена полей в запросе стали регистрозависимыми? Перестал работать поиск по реквизту в справочнике. Стало ругаться, что что такого поля нет. Версия 1sqlite 3.40.1.25. Откатил до 3.25.1 - работает. Буду искать, где перестало...
  

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


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

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: 1sqlite
Ответ #1092 - 05. Июня 2023 :: 15:36
Печать  
Перестало работать с версии 3.32.3.24. На 1sqlite_3.30.0.23 - работает.
  

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

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: 1sqlite
Ответ #1093 - 06. Июня 2023 :: 08:55
Печать  
alyuev писал(а) 05. Июня 2023 :: 15:36:
Перестало работать с версии 3.32.3.24. На 1sqlite_3.30.0.23 - работает.

Тест давай, у меня работает.
Код (SQL)
Выбрать все
SELECT аВто.dEscr FROM справОчник_автомоБили AS Авто
 


Подчеркивание в поле таблицы?
  
Наверх
www  
IP записан
 
alyuev
God Member
*****
Отсутствует


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

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: 1sqlite
Ответ #1094 - 06. Июня 2023 :: 09:43
Печать  
Подчеркивания нет.

Код (SQL)
Выбрать все
SELECT Спр.русск FROM	Справочник_ЯзыкиФраз as Спр 



Имя поля в конфигураторе "Русск"
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 71 72 [73] 74 75 ... 79
ОтправитьПечать