Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Сверхпрямой доступ к 1С (ДБФ) (число прочтений - 3432 )
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Сверхпрямой доступ к 1С (ДБФ)
18. Июня 2008 :: 10:22
Печать  
Столкнулся с одной задачкой - FoxPro не мог супер эффективно посчитать количество записей
лежащие в диапазоне индекса.
Стал ковыряться с CDX.

Возможно - кому интересно физическая структура - http://www.alxsoft.narod.ru/ENG/idxview.htm
к сожалению сайт похоже умер и скачать утилиту нельзя, поэтому прикладываю к сообщению.

Но суть не в этом. Сейчас используются в основном Fox, реже Advantage , пытаются приладить SQLLite.
Между тем структура CDX хорошо описана (но недостаточно чтобы сходу писать программы)
В Русской справке по Fox поиск раздела "Структура компактного индексного файла (.idx)"
"Структура файла составного индекса (.cdx) "
Аналогично DBF.

Т.е. при помощи простых файловых операций : открытие\чтение\сдвиг
можно эффективно получать данные.
Например при помощи BinaryData(но так как операций огромное количество вероятно что лучше пользовать чистый С++)
Остается разработка операций группирования - но большинство реализованы в Индексированной таблице.
Пожалуй это может быть самым быстрым доступом к файловой базе.
Совместимо с объектами 1С++ (не требуется лишние перегрузки таблиц) и 1С.
Также код подойдет для не 1С платформ.
Насчет монопольного режима не знаю - BinaryData может читать DBF в монопольном ?
  

IDXView.zip ( 185 KB | Загрузки )
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сверхпрямой доступ к 1С (ДБФ)
Ответ #1 - 18. Июня 2008 :: 10:33
Печать  
О_о.
  
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



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



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Сверхпрямой доступ к 1С (ДБФ)
Ответ #3 - 18. Июня 2008 :: 11:20
Печать  
JohnyDeath писал(а) 18. Июня 2008 :: 10:54:
Кирилл, скоро из-за твоих изысканий люди начнут обратно на ДБФ переходить!  Смех
Так держать!  Подмигивание


Я последний раз на С++ писал когда еще учился ....
Вот подумал - может кого более продвинутого заинтересует.
  
Наверх
 
IP записан
 
slawa
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 125
Зарегистрирован: 05. Октября 2006
Re: Сверхпрямой доступ к 1С (ДБФ)
Ответ #4 - 18. Июня 2008 :: 11:25
Печать  
kiruha писал(а) 18. Июня 2008 :: 10:22:
Столкнулся с одной задачкой - FoxPro не мог супер эффективно посчитать количество записей лежащие в диапазоне индекса.
...
Возможно - кому интересно физическая структура - http://www.alxsoft.narod.ru/ENG/idxview.htm
...


а DBFNavigator и DBFRead не заслуживают внимания ?

если классные, может поделитесь, прошу писнуть сюда или в личку Улыбка
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сверхпрямой доступ к 1С (ДБФ)
Ответ #5 - 18. Июня 2008 :: 11:30
Печать  
kiruha писал(а) 18. Июня 2008 :: 11:20:
JohnyDeath писал(а) 18. Июня 2008 :: 10:54:
Кирилл, скоро из-за твоих изысканий люди начнут обратно на ДБФ переходить!  Смех
Так держать!  Подмигивание


Я последний раз на С++ писал когда еще учился ....
Вот подумал - может кого более продвинутого заинтересует.

Надо б Ужасту показать. Может что-нибудь придумает.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сверхпрямой доступ к 1С (ДБФ)
Ответ #6 - 18. Июня 2008 :: 12:15
Печать  
Я лично не понял, каким образом работа напрямую с CDX повлияет на скорость Печаль
Кирилл, для меня, тупого, объясни, плиз.
  

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



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Сверхпрямой доступ к 1С (ДБФ)
Ответ #7 - 18. Июня 2008 :: 12:50
Печать  
artbear писал(а) 18. Июня 2008 :: 12:15:
Я лично не понял, каким образом работа напрямую с CDX повлияет на скорость Печаль
Кирилл, для меня, тупого, объясни, плиз.


Тут дело не совсем в скорости, а в дополнительных возможностях когда библиотеку можно писать под себя.
Например подбор индекса могла бы взять библиотека.
Для табличного поля нужно TOP N , эффективно которые можно взять только в хранимой процедуре,
что не совсем удобно.
Монопольный режим.

По скорости где-то только процентов 50% можно выиграть на чтении (SQLLite читает вдвое быстрее,
но потом группирует и Join медленнее - судя по тестам которые проводили)
и на отсутствии перегрузки из курсора в ТЗ. Более актуально для регистров, чем для отчетов где много
операций не только чтения(группирование , соединение)

Здесь прямая ссылка на структуру(побайтно) CDX и DBF
http://www.foxclub.ru/rhproject/project/html/c591bd07-e952-4330-b59b-135f0bef292...
(открывается IE, FireFox плюсики не раскрывает)
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Сверхпрямой доступ к 1С (ДБФ)
Ответ #8 - 18. Июня 2008 :: 13:18
Печать  
Вообщем то согласен, что выгоды не очевидны - просто забавно показалось что
в целом для доступа не особо нужны дополнительные прослойки ввиде драйверов сторонних баз.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Сверхпрямой доступ к 1С (ДБФ)
Ответ #9 - 18. Июня 2008 :: 13:40
Печать  
Даже зная форматы dfb/cdx, написать простой аналог xBase уже не самая простая задача. А вряд ли функционал xBase устроит как основное средство доступа к данным. Если же устроит (или просто будет полезен), то, подозреваю, проще будет прохачить xBase, чтобы он открывал файлы не монопольном режиме и использовать его.

А лучше вот: http://infostart.ru/projects/496/
Там человек не стал выделываться, а просто выложил исходники прямого доступа к данным 1С через ее DLL-ки (мужик! уважаю!). Желающие могут на основе этого сделать что угодно. Хоть написать аналог xBase, хоть совместить подобный доступ, например, с SQL-парсером от чего-нибудь. Например, SQLite, FireBird или Postgre...
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать