powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Хранимые процедуры в DBC
8 сообщений из 8, страница 1 из 1
Хранимые процедуры в DBC
    #35323028
McFozzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет,

Какие минусы писать процедуры внутри контейнера базы данных (именно Фокса - .DBC)?
...
Рейтинг: 0 / 0
Хранимые процедуры в DBC
    #35323038
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Контейнер закрыт - процедура недоступна.
Обновлять сложнее. Так EXE заменил и все, а тут еще в контейнер надо отследить.
...
Рейтинг: 0 / 0
Хранимые процедуры в DBC
    #35323354
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TКонтейнер закрыт - процедура недоступна.
Обновлять сложнее. Так EXE заменил и все, а тут еще в контейнер надо отследить.

Замена любого файла рабочего проекта относительно сложная операция. Не вижу чем принципально замена файлов DBC, DCT, DCX так уж сложнее, чем замена файла EXE.

Надо думать не о плюсах/минусах, а о решаемых задачах. Т.е. ЧТО должна делать эта процедура?
...
Рейтинг: 0 / 0
Хранимые процедуры в DBC
    #35323434
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ
Замена любого файла рабочего проекта относительно сложная операция. Не вижу чем принципально замена файлов DBC, DCT, DCX так уж сложнее, чем замена файла EXE.
Alter table и контейнер уже другой, стоит только заменить после этого DBC, DCT, DCX и несовпадающая таблица или даже вся база не открываются. А если весь код в EXE то заменил, там проверка структуры базы отработала, что надо добавила и готово. Да и автозамена EXE уже отработана, у меня.
Для замены кода процедур надо контейнер как DBF открывать и писать новый код куда-то в мемо-поле.

В контейнере обычно держу только код для генерации ID для 6-ки. В 9-ке это уже не надо, думаю если на 9-ке что-то новое с DBFками делать буду - совсем от контейнера откажусь.

ВладимирМНадо думать не о плюсах/минусах, а о решаемых задачах.
Согласен.
...
Рейтинг: 0 / 0
Хранимые процедуры в DBC
    #35323583
GoshaS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО
ХП надо писать те, которые обслуживают БД во время ее разработки. Тогда если и другой програмусей будут цеплятся к этой БД, то она будет отслеживать свою целостность сама.
Остальное в программе.
...
Рейтинг: 0 / 0
Хранимые процедуры в DBC
    #35323873
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TДа и автозамена EXE уже отработана, у меня.
Думаю, в этом и причина первоначального ответа. Просто нет опыта замены контейнера базы данных.

Dima TДля замены кода процедур надо контейнер как DBF открывать и писать новый код куда-то в мемо-поле
Не надо. Надо просто заменять . Также как и EXE. Новым файлом. Разумеется, нужна предварительная синхронизация структуры таблиц. Впрочем, то же самое делается и при замене EXE. Ничего особо сложного

Dima TВ контейнере обычно держу только код для генерации ID для 6-ки. В 9-ке это уже не надо, думаю если на 9-ке что-то новое с DBFками делать буду - совсем от контейнера откажусь.
Зря. Есть еще много чего, что логично располагать в контейнере базы данных. Default-значения, RULE, триггера, Format и InputMask уровня полей, длинные имена полей (больше 10 символов). Объекты Local View.

Ну, и до VFP9 невозможно было организовать транзакцию для таблиц не включенных в контейнер базы данных.
...
Рейтинг: 0 / 0
Хранимые процедуры в DBC
    #35324043
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ Dima TДа и автозамена EXE уже отработана, у меня.
Думаю, в этом и причина первоначального ответа. Просто нет опыта замены контейнера базы данных.
Есть. Из GENDBC вытащил, добавляю когда базу с нуля генерю:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
	close data all
	use My.dbc
	LOCATE FOR Objectname = 'StoredProceduresSource'
	IF FOUND()
	    Append MEMO Code From 'SP.src' overwrite && Исходник
	ENDIF
	LOCATE FOR Objectname = 'StoredProceduresObject'
	IF FOUND()
	    Append MEMO Code From 'SP.obj' overwrite && Откомпилированный код
	ENDIF
	close data all

ВладимирМ Dima TДля замены кода процедур надо контейнер как DBF открывать и писать новый код куда-то в мемо-поле
Не надо. Надо просто заменять . Также как и EXE. Новым файлом. Разумеется, нужна предварительная синхронизация структуры таблиц. Впрочем, то же самое делается и при замене EXE. Ничего особо сложного
Наступал на такие грабли: если поля согласованы но в другом порядке идут то таблица тоже не открывается.
А это реально. в одном месте обновилось и поле в конец добавилось (ALTER TABLE), в другом месте с нуля база создана новой версией и поле в середине (так в CREATE TABLE поставлено).
Или конкретный экземпляр пяток обновлений пропустил, а там в коде порядок ALTER TABLE изменился. Если на 55-ю версию сразу 60-ю накатить. Это я утрировано, реально сложно уследить когда код обновления содержит все проверки от 1-й до 200-й версии и обновление рассчитано на переход на 200-ю с той версии какая есть. Простое разбито по таблицам, сложные обновления с перерасчетами в кучку несколько таблиц.

ВладимирМЗря. Есть еще много чего, что логично располагать в контейнере базы данных. Default-значения, RULE, триггера, Format и InputMask уровня полей, длинные имена полей (больше 10 символов). Объекты Local View.
Из всего этого только LV нужно, в 9ке курсорадаптер есть.

ВладимирМНу, и до VFP9 невозможно было организовать транзакцию для таблиц не включенных в контейнер базы данных.
Если честно не знал, после того как написал вспомнил про транзакции. Хорошо что можно в 9-ке.
...
Рейтинг: 0 / 0
Хранимые процедуры в DBC
    #35324724
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TКонтейнер закрыт - процедура недоступна.
Обновлять сложнее. Так EXE заменил и все, а тут еще в контейнер надо отследить.
+1

Хлопотно это с контейнером базы данных (много было проблем даже при аккуратной работе)... Да и в монопольный режим надо DBC :(
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Хранимые процедуры в DBC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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