Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Btrieve: лог изменений / 10 сообщений из 10, страница 1 из 1
10.08.2005, 11:29
    #33208078
plimouthrock
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btrieve: лог изменений
Добрый день всем!

Никогда не работал с BTrieve (все Oracle да Oracle)), а тут приперло.

Есть Btrieve-база с товарными документами. Большая. Оперативная, постоянно пополняемая. Надо передавать изменения в ней в другую БД.

Передача выполняется внешним приложением и по расписанию (желательно раз в 15 минут). Надо помочь этому внешнему приложению и как-то ограничить объем данных, который оно пытается сравнивать с "другой" базой, иначе полное сравнение занимает 10 часов...

То есть, надо каким-то образом засечь момент, а потом получить информацию о всех записях, которые изменились/добавились/удалились с того момента.

Причем, так как данные меняются в основном "последние", то пригодились бы любые приближения -- например, узнать, раньше какой записи по RowID (или коду... чем в Btrieve идентифицируется строка в таблице?)) изменений точно не было.

Приветствую любые предложения. Как мне сказали, триггеров в Btrieve нет. Это правда?
...
Рейтинг: 0 / 0
11.08.2005, 18:05
    #33211343
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btrieve: лог изменений
plimouthrock...Никогда не работал с BTrieve ...

Давно это было. Решил заглянуть в код и оказалось не оказалось... под рукой то нема. Если система кривая - написана без сервака приложения, то думаю нужно ползти в сторону переезда на другой движок.

По поводу тригеров - я могу ошибиться но кажись да, нема там такого. Если юзаеться на уровне SQL - то наверное стоит "в тупую" попытаться переползти на этом уровне. Хотя - хз. возможно специфика...
Как инфа...
В принцепе, что на клиенте...что на серваке - коннекшен к базе происходит через "позвать функцию" - это то, что ниже SQL. Возможно и мона схимичить на данном уровне. Подложить редирекшен и анализатор...Даже думаю мона плавно переплыть на другой движок... А вот идут ли через эти точки "родные" (имееться ввиду IPX или TCP к ядру Btrv.nlm - на стороне сервака...) обращения - даже не щупал на этот предмет...
Совсем кривизна - сенсетив файловой системы + конекшен и сканирование в бакграунде базы данных = выемка необходимой инфы в он лайне.
...
Рейтинг: 0 / 0
16.08.2005, 15:33
    #33218341
plimouthrock
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btrieve: лог изменений
Решение найдено, но требует доработки. Файлы BTrieve имеют страничную организацию. Мы будем сохранять между сеансами экспорта контрольные суммы страниц файлов, относящихся к блокам данных.
А теперь вопрос -- может кто посоветует где найти или вышлет документацию по физической организации файлов Btrieve? И как, зная какая страница реально изменилась, вытащить только те записи, которые находятся в ней?
...
Рейтинг: 0 / 0
23.08.2005, 13:51
    #33229965
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btrieve: лог изменений
С таким подходом ты напишешь свой Btrieve движок. Извини за критику - конструктивных идей нет - нельзя даже за внутренние ID зацепиться т.к. они повторно используются при удалении-вставке записи. Если только в структуре таблицы нет поля даты и времени последнего изменения (но в этом случае не было бы вопроса) - последовательное чтение.
...
Рейтинг: 0 / 0
02.09.2005, 12:59
    #33248160
bpa
bpa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btrieve: лог изменений
Использовать свежие версии Pervasive и пользовать триггеры и все остальные прибамбасы SQL.
...
Рейтинг: 0 / 0
02.09.2005, 13:04
    #33248180
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btrieve: лог изменений
http://emanual.ru/download2/2172.html#CONTENTS
Здесь есть немного про структуру и организацию BTRIEVE файлов.
...
Рейтинг: 0 / 0
02.09.2005, 13:10
    #33248207
bpa
bpa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btrieve: лог изменений
Структура описаны в SDK Pervasive.

Но это
"Решение найдено, но требует доработки. Файлы BTrieve имеют страничную организацию. Мы будем сохранять между сеансами экспорта контрольные суммы страниц файлов, относящихся к блокам данных."
как бы помгче сказать..... ( особенно для поля переменной длины)
...
Рейтинг: 0 / 0
03.09.2005, 01:10
    #33249588
plimouthrock
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btrieve: лог изменений
2 BPA:

А реально ли подставить новый движок старой программе? Кстати о программе -- RStyle Торговый Дом какой-то древней версии, от которой у самого производителя не осталось даже структуры БД...

BPAкак бы помгче сказать.....

Если бы были какие-то другие идеи, было бы гораздо лучше))) Судя по внутренностям файлов, записи постоянной длины.

2 golsa: Да, видел. Вся моя сегодняшняя информация почерпнута именно оттуда, и пока четко я не вижу, что именно надо сделать чтобы решить задачу. Например, если бы там было написано: "байты с 4 по 6-й в заголовке определяют размер записи, если она постоянной длины. Если нет -- там записан ноль", то было бы гораздо проще. Или если бы кто-то сказал: есть BXXX.DLL, в которой функции навигации по файлам и получения записей -- тоже было бы проще. Но пока нет ни того, ни другого...)))

Кстати, в тексте на emanual ребята умудрились перевести на русский даже имена параметров инициализации))) -- чинно так, без пробелов, с большими буквами...
...
Рейтинг: 0 / 0
05.09.2005, 10:22
    #33250887
bpa
bpa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btrieve: лог изменений
Все версии PSQL совместимы сверху вниз.
...
Рейтинг: 0 / 0
05.09.2005, 10:40
    #33250937
bpa
bpa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Btrieve: лог изменений
"Если бы были какие-то другие идеи, было бы гораздо лучше)))"

Если неизвестна структура таблицы, то можно посмотреть общую стрктуру
таблицы утилитой maintenance , и если окажется что в ней есть автоинкрементное поле . то не сложно сделать прогу кот. будет отслеживать
добавление в базу не зная всей остальной структуры таблицы (изменение и удаление записи сложнее).

maintenance покажет типа этого.

Key Position Type Null Values* ACS
Segment Length Flags Unique Values
0 1 5 4 AutoInc M -- 17813503 --
1 1 1 4 Integer RMD -- 17813503 --
1 2 5 4 Integer RMD -- 17813503 --
...
Рейтинг: 0 / 0
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Btrieve: лог изменений / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]