|
|
|
Как с помощью VB (VBA) или C++ вытянуть инфу из *.DDF(Pervasive)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Столкнулся с такой проблемой, есть бухгалтерская программа, "FinExpert" её кличут, она работает с таблицами базы Pervasive, точнее даже, по моему Btrive 6.5, таблицы в ней с расширением *.DDF, так же имеется отдельная папка "ODBC" с файлами Field.ddf, File.ddf, Index.ddf, программка умеет выкидывать нужные данные в Excel и DBF файлы,но программка не очень сильна в округлениях и по этому есть разница в начислениях и удержаниях с них, я написал программку для бухгалтеров для вылавливания таких багов, но вся суть в том, что бухгалтера настолько древние, что не могут даже экспортировать данные в Excel из программы и требуют чтобы все делалось одним нажатием волшебной кнопочки, но так как я с этой базой раньше не дружил, то и как вытянуть данные из файлов DDF не знаю, помогите пожалуйста знающие люди подключиться к этой базе программно(C++ или VB) и вытянуть информацию из таблиц. Заранее благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2011, 18:46 |
|
||
|
Как с помощью VB (VBA) или C++ вытянуть инфу из *.DDF(Pervasive)
|
|||
|---|---|---|---|
|
#18+
Если работа идет через Pervasive - создайте ODBC источник и работайте через него. Если работа через Btrieve - поищите SDK (Software Development Kit) на www.Pervasive.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 07:14 |
|
||
|
Как с помощью VB (VBA) или C++ вытянуть инфу из *.DDF(Pervasive)
|
|||
|---|---|---|---|
|
#18+
golsa, В том то и дело, по той инфе что я нашел по подключению через ODBC, нужно на сервере(установлен Pervasive SQL 10sp3) через Pervasive Control Centr создать базу данных и прописать путь к таблицам базы, а как мне его прописать если таблицы *.DDF лежат в отдельных папках(погодичных, помесячных и т.д.) затем установить в Администраторе источника данных ODBC драйвер Pervasive DNS engine ODBC и указать в нем вновь созданную базу на клиенте установить Pervasive ODBC Client Interface указать сервер и созданную базу, но вот вопрос как работать с теми таблицами которые лежат в других папках, или я чегото недопонял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2011, 14:46 |
|
||
|
Как с помощью VB (VBA) или C++ вытянуть инфу из *.DDF(Pervasive)
|
|||
|---|---|---|---|
|
#18+
C 10-кой не работал - ничего сказать не могу, но в Pervasive 2000 и Pervasive 9 DDF файлы (дата дефинишен файл - это системные таблицы Pervasive) должны быть в одной папке с таблицами данных. Так что копируйте DDF файлики из папки ODBC в папку к данным и назначайте БД на нее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2011, 06:36 |
|
||
|
Как с помощью VB (VBA) или C++ вытянуть инфу из *.DDF(Pervasive)
|
|||
|---|---|---|---|
|
#18+
golsa, в этой программе одни ddf таблицы и они раскиданы по папкам, допустим: папка 2010 в ней в ней общие таблиці ddf формата (там, годовые справочники и т.д.) затем идут папки с таблицами месячной фиксацией 01; 02; и т.д, мне нужно каждый месяц выбирать данные из разных папок, можно конечно попробовать программно копировать эти несколько таблиц в папку ODBC к которой подключена база, но это чего то не совсем правильно, ведь как то же прога выкидывает данные в excel и dbf файлы а из драйверов подключен только Microsoft acces dBase driver для dbf файлов и ни каких pervasive или btrieve дров нет, папку с программой тупо копируешь на сервак даеш доступ, на клиентах подключаешь сетевой диск, добавляеш в менеджере ODBC, Microsoft acces dBase driver(без него не будет сбрасывать в dbf) и ставишь на сервер серверную а на клиентский клиентские части Pervasive PSQL можно от 2000 и до 10sp3 и все работает. Может есть какой то другой способ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2011, 14:27 |
|
||
|
Как с помощью VB (VBA) или C++ вытянуть инфу из *.DDF(Pervasive)
|
|||
|---|---|---|---|
|
#18+
Flash75, Файлы Btrieve, оно же Pervasive имеют строго бинарную структуру и не имеют заголовка с описанием структуры файла, как например некоторые бругие СУБД. Поэтому для работы с такими файлами нужно описание их структуры, которое поставляется отдельно, обычно в файлах с расширением DDF (Data Definition File). Вам повезло, что они у вас есть, т.к. для работы готового приложения с Btrieve эти файлы не нужны, описание структуры базы зашивается в код программы и тогда уже работа сторонних приложений с этой базой данных становится невозможной. Скормите свои DDF файлы менеджеру ODBC и радуйтесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2011, 08:38 |
|
||
|
Как с помощью VB (VBA) или C++ вытянуть инфу из *.DDF(Pervasive)
|
|||
|---|---|---|---|
|
#18+
Системные таблицы Pervasive: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2011, 09:06 |
|
||
|
Как с помощью VB (VBA) или C++ вытянуть инфу из *.DDF(Pervasive)
|
|||
|---|---|---|---|
|
#18+
Спасибо вам за помощь и терпение, вроде все делаю как вы советуете, создаю новую базу и направляю в папку с файлами программы FinExpert FIELD.DDF FILE.DDF INDEX.DDF при этом убираю галочку Create dictionary files, чтоб не затереть эти файлы, остальные файлы создаются сами, затем закидываю в эту папку таблицы программы FinExpert, они тоже в формате DDF, а не как в дэмо базе MKD,но в Pervasive Control Centr эти таблицы почемуто не отображаются, вопрос такой, почему сами рабочие таблицы программы FinExpert в формате DDF, значит ли это, что с ними можно работать на прямую без FIELD.DDF FILE.DDF INDEX.DDF, и от сюда еще один вопрос, могут ли эти таблицы иметь еще какую то защиту от дураков? Еще раз спасибо за помощь и терпение! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2011, 03:15 |
|
||
|
Как с помощью VB (VBA) или C++ вытянуть инфу из *.DDF(Pervasive)
|
|||
|---|---|---|---|
|
#18+
Flash75почему сами рабочие таблицы программы FinExpert в формате DDF Расширение файлов Btrieve/Pervasive никак не регламинтируется, оно может быть любым по усмотрению разработчика или отсутствовать вовсе. Flash75значит ли это, что с ними можно работать на прямую без FIELD.DDF FILE.DDF INDEX.DDF Нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2011, 08:52 |
|
||
|
Как с помощью VB (VBA) или C++ вытянуть инфу из *.DDF(Pervasive)
|
|||
|---|---|---|---|
|
#18+
А какие-то таблицы есть, или получается пустая БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2011, 11:29 |
|
||
|
Как с помощью VB (VBA) или C++ вытянуть инфу из *.DDF(Pervasive)
|
|||
|---|---|---|---|
|
#18+
golsa, Блин, сейчас только дошло(не без вашей конечно помощи), я сначала думал что файлы FIELD.DDF FILE.DDF INDEX.DDF это какоето общее описание таблиц используемой базы данных, но потом полазив и поковыряв понял, что там описывается структура каждой таблицы используемой в конкретной базе, с помощью шамана и бубна я подложил нужную мне таблицу в demo базу и переименовал ее в файл одной из прописанных там таблиц, она конечно стала видимой, но естественно с нулевым поподанием собственого формата в формат таблицы demo базы, потом просмотрел те ddf файлы, которые я нашел в своей программе, в папке с обнадеживающим названием ODBC и увидел, что они описывают только собственные структуры и ниодной таблицы из этой же прорграммы(таблиц там, что то около 300 - от, а мне нужны лиш две из них), так моя надежда наоблегчение труда нашим доблестным бухгалтерам, помоему, рухнула, или всетаки можно еще спасти нашу бухгалтерию от финансового и нервного краха? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2011, 23:34 |
|
||
|
Как с помощью VB (VBA) или C++ вытянуть инфу из *.DDF(Pervasive)
|
|||
|---|---|---|---|
|
#18+
Если речь идет о паре таблиц, то можно попытаться. Утилита BUTIL прилагаемая к Pervasive в помощь: BUTIL -SAVE <sourceFile> <unformattedFile> Выгружает данные в файл не меняя формата полей. Записи идут одна за другой. Перед каждой записью выводится длина записи и запятая. Больше ни какой дополнительной информации. Если записи фиксированной длины, то 99,99% что и структура фиксирована. А дальше терпение и дедукция. Подбери структуру, тем более если знаешь какие данные в этих таблицах хранятся. Типы данных: Integer (4) Real (4) Dooble (8) Текстовые поля (видны в файле) могут быть двух видов: 1 - а ля Pascal (начинается с байта содержащего длину (0-255)) 2 - массив символов и т.д. Описание стандартных типов ищи на www.Pervasive.com BUTIL -STAT <sourceFile> Даст длину записи и число записей, а также начало (смещение в записи), длину и предполагаемый тип полей входящих в индексы. Подобрав структуру, можно пойти 2 путями: 1 - Через ODBC. Создать в пустой БД таблицы по выявленной структуре и затем подсунуть настоящие файлы. 2 - Через API Btrieve. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2011, 07:24 |
|
||
|
Как с помощью VB (VBA) или C++ вытянуть инфу из *.DDF(Pervasive)
|
|||
|---|---|---|---|
|
#18+
Flash75, В FinExpert в приложении "Администрирование" есть возможность сгенерировать словари FILE.DDF, FIELD.DDF и INDEX.DDF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2012, 23:05 |
|
||
|
Как с помощью VB (VBA) или C++ вытянуть инфу из *.DDF(Pervasive)
|
|||
|---|---|---|---|
|
#18+
А где, если не секрет, до сих пор Финик используют ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2012, 23:07 |
|
||
|
|

start [/forum/topic.php?fid=56&fpage=10&tid=2015362]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 159ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...