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


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
1sqlite
23. Июня 2008 :: 07:19
Печать  
Представляю уважаемым форумчанам для тестирования ВК 1sqlite версии 1.0.1.0
Предназначена для работы с базами данных SQLite, а также для выполнения через
движок SQLite прямых запросов к таблицам дбф-баз 1С.

Основные фичи компоненты:
SQLite версии 3.5.9
Движок SQLite доработан в плане регистронезависимости русских символов, нормально работают lower, upper, like, названия таблиц, полей.
Добавлено collate _1С - сравнение строк без учета регистра и завершающих пробелов.
Отображение ДБФ-таблиц 1С в базу данных SQLite и возможность использовать их в запросах.
Работа с ДБФ-таблицами 1С в монопольном режиме.
Получение "длинных" строк 1С-ДБФ.
Типизация результатов запроса.
Работа с текстовыми и sql-параметрами в запросах.
Укладка в базу данных SQLite ТаблицЗначений.
Укладка в базу данных SQLite СписовЗначений с объектами 1С, с возможностью в ДБФ версии разворота групп справочников или счетов по иерархии.

http://sb-news.net/sqlite.php - SQLite по-русски

Прошу тестировать, высказывать пожелания.
После этапа тестирования и доработки исходники будут доступны под GPL.



Версия 1.0.1.1

- Исправлен вылет при попытке подключить таблицу строк документа, у которого нет ТЧ.
- Добавлены текстовые параметры: :ВидСубконто и :ПланСчетов
Качать: http://www.1cpp.ru/forumfiles/Attachments/1sqlite_1011.zip

Версия 1.0.1.2

- Исправлена работа с преобразованием значений типа Дата в формат БД.

Версия 1.0.1.3
- Исправлена ошибка в метапарсере при обработке вхождений текстовых параметров.

версия 1.0.1.4
- Добавлено автоподключение таблиц. В доке описано.

Версия 1.0.1.5
     - Исправлена ошибка подстановки текстового параметра ":ВидСправочника.ХХХ"
     - Добавлен модификатор 3 для подстановки значений типа Строка. Подставляет фрагмент текста без кавычек, для динамического формирования текста запроса.

Версия 1.0.1.6
- Исправлена подстановка значения пустой даты.
- Добавлена типизация :Субконто
- Добавлена типизация :Время
- Добавлена функция str2id
- Добавлена функция id2str

Версия 1.0.1.7

- Доработана работа 3го модификатора текстового параметра типа "Строка".
 Теперь подставляемый фрагмент текста также обрабатывается метапарсером.
- Удалены типизация ":ВидДокумента" и ":ВидДокументаПредставление".
- Добавлены типизации ":ИмяВида" и ":ПредставлениеВида".
- Доработан метод `SQLiteQuery::ВыполнитьЗапрос`_. Теперь можно получать
 результат выполнения запроса в таблицу значений, список значений,
 полем из скалярного запроса, а также в любой объект, реализующий
 интерфейс загрузки результата запроса (ISQLiteResultLoader).

Версия 1.0.1.8
- Исправлена ошибка обработки NULL значений.
- Исправлена ошибка преобразования из utf-8 нулевых строк
- Устранена гигантская утечка памяти при некоторых случаях использования LIMIT
- Рефакторинг классов базы данных и запросов, с целью облегчения использования их в других компонентах
- Из соображений производительности восстановлены типизации :ВидДокумента и :ВидДокументаПредставление
- Из соображений производительности добавлены типизации :ВидСубконто и :ВидСубконтоПредставление

Тестовая версия 1.0.1.9
- Убраны Begin/End ReadSequnce
- Добавлена возможность авто-транзакции при выполнении запроса.
- Исправлен косяк при укладке объектов с идшниками с русскими буквами (распределенка с русскоязычными кодами ИБ)
- Содержит тестовый поставщик ТП
Качать

Версия 1.0.2.0

    - SQLite обновлен до релиза 3.6.11
    - Добавлена способность ПоставщикаДанных динамически менять текст запроса, если
     некоторые поля не нужны табличному полю для отображения
    - Добавлена возможность быстрого поиска для поставщика данных
    - Исправлена ошибка выборки данных при некоторых условиях
     (where date <= '09или19или29.месяц.год' order by date desc)
    - Убрана странная ошибка при попытке подготовить запросы с текстом запроса длиннее 972 символов.
    - Порядок сортировки в 'collate _1C' сделан точно соответствующим порядку сортировки в дбф-файлах 1С.
    - Изменены методы:

           - SQLiteDataProvider::УстановитьТекстЗапроса
           - SQLiteDataProvider::Отладка

    - Добавлены методы:

           - SQLiteDataProvider::НеУдалятьПоля
           - SQLiteDataProvider::ПоляБыстрогоПоиска
           - SQLiteDataProvider::ПолучитьТекстЗапроса

Брать http://code.google.com/p/sqlite1c/downloads/list
« Последняя редакция: 07. Апреля 2009 :: 13:09 - orefkov »  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #1 - 23. Июня 2008 :: 07:20
Печать  
Очуметь. Все-таки довел до ума. Браво! Улыбка
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #2 - 23. Июня 2008 :: 07:26
Печать  
УложитьТЗ(ТЗ, ИмяТаблицы, [КакПостоянную])
Вот это очень полезное свойство. Жаль что в 1С++ нет такого.
  
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #3 - 23. Июня 2008 :: 07:30
Печать  
Дождались!!! Ура!!!  Очень довольный
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #4 - 23. Июня 2008 :: 07:40
Печать  
Работоспособность в SQL версии сохранена?
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #5 - 23. Июня 2008 :: 07:40
Печать  
Здорово!
А можно получить какое-то резюме о плюсах/минусах по сравнению с VFP OLEDB ?
ИМХО будет очень полезная инфа.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #6 - 23. Июня 2008 :: 07:44
Печать  
trdm писал(а) 23. Июня 2008 :: 07:40:
Работоспособность в SQL версии сохранена?

В sql-версии должна работать, но без отображения таблиц 1С, тока для временных расчетов.
  
Наверх
 
IP записан
 
orefkov
1c++ developer
1c++ moderator
Отсутствует


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: 1sqlite
Ответ #7 - 23. Июня 2008 :: 07:50
Печать  
artbear писал(а) 23. Июня 2008 :: 07:40:
Здорово!
А можно получить какое-то резюме о плюсах/минусах по сравнению с VFP OLEDB ?
ИМХО будет очень полезная инфа.

Ну вкратце
+
Работа в монополе.
Длинные строки.
Легче записать условия для попадания в индекс.
Выигрывает по расходу памяти при групповых оперциях.
Не требует сторонних компонент доступа к БД. (ADO, ODBC и тп)
Скоростной разворот иерархий в УложитьОбъекты, за счет прямой работы с таблицами 1С.
-
double арифметика вместо numeric (хотя иногда она точнее, чем numeric).
Несколько проигрывает по времени по групповым операциям.
Несколько проигрывает при джойнах по неиндексирумым полям (можно обойти созданием врем-таблицы с индексом)
Не может оптимизировать условия in(), желательно вместо этого джойнить с врем-таблицами.
Вернее - при использовании условия in всегда делается fullscan, с индексированной проверкой попадания в список in.
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: 1sqlite
Ответ #8 - 23. Июня 2008 :: 07:58
Печать  
orefkov писал(а) 23. Июня 2008 :: 07:50:
Не может оптимизировать условия in(), желательно вместо этого джойнить с врем-таблицами.
Вернее - при использовании условия in всегда делается fullscan, с индексированной проверкой попадания в список in.

FoxPro также не умеет полностью оптимизировать in .
Точнее если in можно свести к inlist(перечень конкретных значений) - то может, если подзапрос  - нет.
И также желательно вместо этого - джойнить с таблицами.

  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #9 - 23. Июня 2008 :: 08:18
Печать  
orefkov писал(а) 23. Июня 2008 :: 07:50:
+
Легче записать условия для попадания в индекс.
-
Несколько проигрывает по времени по групповым операциям.
Несколько проигрывает при джойнах по неиндексирумым полям (можно обойти созданием врем-таблицы с индексом)

Поясни, плиз, эти 3 фразы чуть более подробно.
1. Каким образом стало легче?
2. Групповые - GroupBy или еще что-то?
3. Покажи, как обойтись врем.таблицей с индексом, плиз Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #10 - 23. Июня 2008 :: 08:20
Печать  
Вылетает в космос при  попытке подключить виртуальную таблицу ДокументСтроки для документа без ТЧ.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: 1sqlite
Ответ #11 - 23. Июня 2008 :: 08:29
Печать  
А кто нибудь может поделится примером запроса...  Плачущий
хочется научится а счас ничего не умею  Смущённый
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: 1sqlite
Ответ #12 - 23. Июня 2008 :: 08:34
Печать  
artbear писал(а) 23. Июня 2008 :: 08:18:
Поясни, плиз, эти 3 фразы чуть более подробно.

1. Каким образом стало легче?

Если индекс например iddoc+STR(lineno,4) то в SQLlite достаточно писать соединение по iddoc,
чтобы его использовать (как для SQL версии) а для FPro надо явно выписывать iddoc+STR(lineno,4) -
что почти никто фактически не делает и соответственно не использует.

2. Групповые - GroupBy или еще что-то?

Group By, Join, Order by - раньше в SqlLite проводились по алгоритму полного перебора,
что при очень больших выборках может привести к существенному замедлению
(при отсутствии индекса по полю соединения, если индекс есть - то все ОК)

P.S. Я пытался в этих случаях явно добавлять индекс - это в основном решает проблему - но
тогда появляется проблема написания (приходится вместо подзапроса выкладывать во врем таблицу и индексировать что трудоемко) и сама операция добавление индекса не самое быстрое в SQlLite почему то (?)

3. Покажи, как обойтись врем.таблицей с индексом, плиз
Явно создать временн. таблицу и явно добавить индекс - есть такие операции в SqlLite

Предыдущее обсуждение
http://www.1cpp.ru/forum/YaBB.pl?num=1192855975/0
http://www.1cpp.ru/forum/YaBB.pl?num=1192437970
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1sqlite
Ответ #13 - 23. Июня 2008 :: 08:56
Печать  
кто б теперь провайдера для ТП написал....  Круглые глаза И тогда ДБФ-никам не будут страшны никакие грозы!  Подмигивание
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: 1sqlite
Ответ #14 - 23. Июня 2008 :: 09:00
Печать  
JohnyDeath писал(а) 23. Июня 2008 :: 08:56:
кто б теперь провайдера для ТП написал....  Круглые глаза И тогда ДБФ-никам не будут страшны никакие грозы!  Подмигивание


На sqlLite провайдер судя по всему должен быть быстрее - там имеет смысл только  соединение таблиц по индексу,
и явное чтение страниц -  где SqlLite вдвое опережает Fox.
Также он должен быть быстрее при конструировании аналога объекта регистр.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 79
ОтправитьПечать