powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сравнение структуры dbf-файлов
5 сообщений из 5, страница 1 из 1
Сравнение структуры dbf-файлов
    #33506973
Фотография givi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди, подскажите, какие могут быть возможные варианты сравнения структуры dbf-файлов, для того что бы отследить программно изменения структуры и добавить недостающие индексы или поля если структура поменялась?
...
Рейтинг: 0 / 0
Сравнение структуры dbf-файлов
    #33506997
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
afields atags
и сравнение с эталоном
...
Рейтинг: 0 / 0
Сравнение структуры dbf-файлов
    #33509176
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi givi!

Советую подумать над упорядочением процедуры внесения изменений в структуру,
а не над написанием шибко умного кода, который должен сам придумать что и
как менять. Если ты переименовал поле то что сможет сделать твой программа?
Как она поймёт что надо перенести информацию? А если добавил поле с
одновременным заполнением его какими-то данными (например основанными на
данных соседних полей, или даже просто счётчик) - короче нереально это.
Тема кстати обсуждалась неоднократно. Я например всегда все изменения в
структуру вношу только командами (ALTE TABLE и т.д.) - и тогда эти команды у
меня собираются в файлик, который потом вмсте с обновлённой программой идёт
к клиенту и там повторяет нужные изменения (ну конечно всё сложнее - надо
отследивать номера версий программы и базы - учитывая что "встроенного"
номера версии в базе нету)...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Сравнение структуры dbf-файлов
    #33509938
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Korolyov
(ну конечно всё сложнее - надо
отследивать номера версий программы и базы - учитывая что "встроенного"
номера версии в базе нету)...

Очень удобное есть неиспользуемое свойство у БД - Comment - как раз подходит для хранения версии базы

В экзешнике есть переменная- для текущей версии базы,
и при его запуске проверка
Код: plaintext
1.
2.
3.
IF VAL(DBGETPROP([My_DB],[DATABASE],[Comment])) < nDB_VERS
	dbUpdate()
ENDIF
и dbUpdate() делает для обновления что хочешь, и в случае успеха пишет

Код: plaintext
DBSETPROP([My_DB],[DATABASE],[Comment],STR(nDB_VERS, 5 , 2 ))
...
Рейтинг: 0 / 0
Сравнение структуры dbf-файлов
    #33514811
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Andrey!

> Очень удобное есть неиспользуемое свойство у БД - Comment - как раз
> подходит для хранения версии базы

Ну что оно "неиспользуемое" - это не всегда так :) А вообще конечно неплохое
мето - если нет желания заморачиваться со "скрытыми местами хранения -
например полем User dbc файла...
К сожалению всё сравнительно просто если ЕСТЬ dbc (а не набор свободных
dbf-ов например), и если она одна (ну максимум 2-3).
А "обновления" я делаю инкрементными, т.е. там целая "цепочка" - первое
звено обновляет 1.0 до 1.1 второе - 1.1 до 1.2 и т.д - при этом конечно на
каждом шаге повторно проверяется этот Comment=Version - так что и для
"пропустивших" очередное обновление баз ничего не потеряно :)
Правда сама процедура обновления не в основном exe, а в отдельном exe,
который вызывает модуль обновления (и это тоже отдельный exe - иначе никак
не переписать "основной" exe).
Для "богатых и ленивых" (или хитрых и ленивых :) ) кстати можно
порекомендовать Stonefield Database Toolkit - мощная штука по "ведению"
баз - имеет возможность интегрироваться в пользовательские программы...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сравнение структуры dbf-файлов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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