Переключение на Главную Страницу Страницы: 1 2 [3] 4  ОтправитьПечать
Очень популярная тема (более 25 ответов) Поставщик данных SQLite для ТП (число прочтений - 17113 )
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: Поставщик данных SQLite для ТП
Ответ #30 - 03. Июля 2008 :: 17:41
Печать  
steban писал(а) 03. Июля 2008 :: 14:34:
С Вектором гораздо быстрее Улыбка


А количество проходов разное для вектора и остальных !  
При одинаковых количествах может
Хотя, вроде быстрее  Улыбка
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Поставщик данных SQLite для ТП
Ответ #31 - 03. Июля 2008 :: 18:05
Печать  
PVR писал(а) 03. Июля 2008 :: 17:41:
А количество проходов разное для вектора и остальных ! 
При одинаковых количествах может http://www.1cpp.ru/forumfiles/Smilies/thumbdown.gif
Хотя, вроде быстрее  Улыбка

Во всех тестах, кроме первого в ТП пролистывался один и тот-же диапазон журнала.
103 вызова QueryRows (84 для первого теста).
И количество вызовов Fetch - 3885 одинаковое.
Обрати внимание, что при использовании Вектора нет необходимости в цикле по колонкам.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: Поставщик данных SQLite для ТП
Ответ #32 - 03. Июля 2008 :: 18:14
Печать  
Цитата:
Обрати внимание, что при использовании Вектора нет необходимости в цикле по колонкам.

Согласен  Подмигивание
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Поставщик данных SQLite для ТП
Ответ #33 - 04. Июля 2008 :: 03:15
Печать  
1. Значит, решено - внедряем Вектор в 1С++ ?
ИМХО еще для Вектора полезен метод - ОтключитьКонтрольДиапазона, чтобы не проверять попадание индекса в диапазан 1..КоличествоЭлементов. Метод будет использоваться для ускорения.

2. А зачем нужен ИменованныйВектор?
ИМХО структура - это же самое, просто над ней нужно немного поработать в плане ускорения.
Также можно структуре просто дать синоним, но не ИменованныйВектор, а АссоциативныйВектор - ИМХО это типовое название контейнера с подобным доступом.
  

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Поставщик данных SQLite для ТП
Ответ #34 - 04. Июля 2008 :: 05:11
Печать  
Ну тогда метод ИТЗ, ИМХО, должен выглядеть примерно так:
Цитата:
ИТЗ.Выгрузить(Вектор [, Индекс = ""] [, НомерСтроки = ТекущаяСтрока])
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Поставщик данных SQLite для ТП
Ответ #35 - 04. Июля 2008 :: 05:17
Печать  
JohnyDeath писал(а) 04. Июля 2008 :: 05:11:
Ну тогда метод ИТЗ, ИМХО, должен выглядеть примерно так:
Цитата:
ИТЗ.Выгрузить(Вектор [, Индекс = ""] [, НомерСтроки = ТекущаяСтрока])

для СЗ и Вектора/Структуры/АссоциативногоВектора ИМХО удобно было добавить в ИТЗ возможность двух вариантов выгрузки -
1) уже существующая выгрузка всех строк по одной колонке - уже есть, аналогично ТЗ.Выгрузить(СЗ)
2) выгрузка текущей или выбранной строки по всем колонкам - этого нет, но именно эта выгрузка и пригодилась Степану, и я ее реализовал в тестовом варианте
  

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


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Поставщик данных SQLite для ТП
Ответ #36 - 04. Июля 2008 :: 09:16
Печать  
artbear писал(а) 04. Июля 2008 :: 03:15:
Также можно структуре просто дать синоним, но не ИменованныйВектор, а АссоциативныйВектор - ИМХО это типовое название контейнера с подобным доступом.

Нет.
Структура - это не вектор.
И вообще, поаккуратнее с названиями Улыбка
Вектор - это прежде всего гарантии, а после этого - алгоритмы.

Кстати, а вы в курсе, что в 2.5 есть такое: "VectorValue.cpp".
Не помню, наверное в icpp при первичном портировании я его выкинул Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Поставщик данных SQLite для ТП
Ответ #37 - 04. Июля 2008 :: 09:41
Печать  
artbear

И вообще-то, парни, я за вами не успеваю.
Времени мало а разогнались вы просто труба. Улыбка

Это конечно, хорошо, даже очень, но плохо то, что в 1cpp и так полно коллекций.
И надо было бы для начала озаботиться единым интерфейсом, а уж потом фигачить по полной.

Тот же вектор проще было взять из CSimpleCollection<CSimpleVector, CValue const&> всего-то нужно было зарегистрировать класс.
Ммм. ну да ладно.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Поставщик данных SQLite для ТП
Ответ #38 - 04. Июля 2008 :: 11:05
Печать  
kms писал(а) 04. Июля 2008 :: 09:41:
Это конечно, хорошо, даже очень, но плохо то, что в 1cpp и так полно коллекций.
И надо было бы для начала озаботиться единым интерфейсом, а уж потом фигачить по полной.

Тот же вектор проще было взять из CSimpleCollection<CSimpleVector, CValue const&> всего-то нужно было зарегистрировать класс.

Согласен, а я ведь видел твою реализацию, даже один баг в ней поправил, но подзабыл Печаль
А знаешь, из-за чего? Потому что ты все свои коллекции засунул в папку CursorGrid Улыбка Печаль
Поэтому их и не видно.
Посмотрю реализацию Вектор на этой коллекции.
Ты в ветке о Коллекциях ответь, плиз, на вопрос об ИменнованномВекторе.
  

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


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Поставщик данных SQLite для ТП
Ответ #39 - 04. Июля 2008 :: 11:54
Печать  
artbear писал(а) 04. Июля 2008 :: 11:05:
А знаешь, из-за чего? Потому что ты все свои коллекции засунул в папку CursorGrid Улыбка Печаль

Куда-куда я их засунул? Подмигивание
  

De quelle planète es-tu?
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Поставщик данных SQLite для ТП
Ответ #40 - 05. Июля 2008 :: 19:54
Печать  
При нажатии "END" наблюдаем чистое ТП вместо ожидаемого конца журнала.
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Поставщик данных SQLite для ТП
Ответ #41 - 06. Июля 2008 :: 07:31
Печать  
Перепиши ф-ю Fetch как на скрине http://www.1cpp.ru/forum/YaBB.pl?num=1215021188/23#23
  

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


I Love YaBB 2!

Сообщений: 896
Зарегистрирован: 20. Мая 2006
Re: Поставщик данных SQLite для ТП
Ответ #42 - 08. Июля 2008 :: 11:26
Печать  
Вроде как сделал поставщика данных ТП для SQLite в 1sqlite.
Дока пока не готова.
Есть два примера использования:
1. В ТиСе показ документов по графе отборов Контрагент
2. В ТиСе показ справочника товаров с иерархией и остатками на складах

Все в архиве.
Просьба потестить.
http://www.1cpp.ru/forumfiles/Attachments/1sqlite_dp.zip
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Поставщик данных SQLite для ТП
Ответ #43 - 14. Июля 2008 :: 07:13
Печать  
Написал простенький вектор на Lua и использовал его как CDataRow для поставщика.
Результаты по скорости заполнения и выборки сравнимы со встроенным в 1С++ вектором Улыбка
  

VTtimingLuaVector.GIF ( 22 KB | Загрузки )
VTtimingLuaVector.GIF

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


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Поставщик данных SQLite для ТП
Ответ #44 - 14. Июля 2008 :: 07:15
Печать  
Вектор определен вот так: Цитата:
function vector()
 
return {
 
load = function(v,it)
   
ncols=it.ColumnCount()
   
for i=1,ncols do
     
v[i]=it.GetValue('',i)
   
end
 end
,
 
get=function(v,i)
   
return v[i]
 
end
}
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 [3] 4 
ОтправитьПечать