Как корректно добавить новую таблицу?

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Alexander
Местный житель
Сообщения: 248
Зарегистрирован: 28 ноя 2006, 13:29

Сообщение Alexander »

Большое спасибо!!! :cool:
Alexander
Местный житель
Сообщения: 248
Зарегистрирован: 28 ноя 2006, 13:29

Сообщение Alexander »

не получается добавить индексы.
пишу
Alter Table MyTable
Add Index (MyTable09 = DREC + CPODR + CREC + WTREE)
Add Index (MyTable10 = DREC + CPODR + WTREE)
);

ругается, говорит, что для изменения стр-ры необходимо выключить проек, журнал и почистить его...
Журнал выключил проект - не знаю как отключить... зачем такие сложности? Ка быть? в таблицах уже куча данных...
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

для того чтобы добавить таблу нужно тоже проделать - вы ж это сумели сделать.
протект выключается так же как и журнал - тока модуль другой.
не забудьте потом грохнуть journal.adf - там часто одна запись остается и блокирует.
Вариант для первасива.
1.остановить работу всех.
2.скопировать ваш каталог и dict в другое место.
3.Выполнить докомиляцию там
4.вернуть все на место(сохранив предыдущий вариант)
LaaLaa

Re: Как корректно добавить новую таблицу?

Сообщение LaaLaa »

UP-ну тему на всякий случай.

Люди постепенно начали переходить на Галактику 9.1 стали сталкиваться с конфликтом номеров таблиц добавленных ими в 8.1. Провел некоторое историческое расследование. Хочу публично озвучить что в Галактике есть официально зарезервированный диапазон куда программистам Галактики запрещено добавлять таблицы.

Для пользователей и партнеров зарезервирован диапазон кодов таблиц 31500 .. 31899

Инструментарий (Support и компилятор) не запрещает давать таблицам произвольные свободные номера. И это правильно т.к. инструментарием пользуются все программисты.

Чтобы не было дополнительных неудобств с конвертацией собственных таблиц при переходе на новые версии. Рекомендую пользователям создавать таблицы с номерами из этого диапазона.

PS: Информацию про официально закрепленный диапазон можно найти в ПИР 104.19971, 101.17051, 102.73712
Руслан
Местный житель
Сообщения: 294
Зарегистрирован: 01 ноя 2011, 14:03
Контактная информация:

Re: Как корректно добавить новую таблицу?

Сообщение Руслан »

Добавляю новую таблицу в словарь Галактики. Всех пользователей выгнал, протект и журнализацию отключил. При компиляции ругается на то, что "Ошибка: Не могу блокировать базу данных."

Код: Выделить всё

//Нормы страхового запаса
Alter Dictionary ;
create table D_USER.normzapas "Нормы страхового запаса"
with table_Code = 32600 with replace
with tableOptions header, journal
(
cmc : ref(table katmc) "Ссылка на katmc.nrec",
cpodr : ref(table katpodr) "Ссылка на katpodr.nrec",
kol : double "Количество",
pdate : date "Дата создания",
pbdate: date "Дата начальная",
pedate: date "Дата конечная")
with index
(
normzapas01 = cmc,
normzapas02 = cpodr,
normzapas03 = cmc+cpodr,
normzapas04 = kol,
normzapas05 = pdate,
normzapas06 = pbdate+pedate
);

alter table normzapas
foreign key normzapas01
references katmc
primary key KATMC01;

alter table normzapas
foreign key normzapas02
references katpodr
primary key KATPODR01;
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Как корректно добавить новую таблицу?

Сообщение edward_K »

почитайте получше - Alter Dictionary ; уже не рекомендуется использовать. Да и без него не надо ни чистить журнал, ни отключать протект, а создание делается просто запросом в сапорт - SQL(удаление в компиляторе интерфейсов тока почему то либо руками в консоле управления , если есть лицензия на все).
Руслан
Местный житель
Сообщения: 294
Зарегистрирован: 01 ноя 2011, 14:03
Контактная информация:

Re: Как корректно добавить новую таблицу?

Сообщение Руслан »

Таблица с ошибками, но создалась. При открытии таблицы в саппорте появляется ошибка "Ошибка открытия таблицы 32600. Таблица не найдена". Также таблица создалась не со всеми полями, которые я описывал. Пробую удалить таблицу в саппорте в SQL

Код: Выделить всё

drop table normzapas;
. Пишет, что "Ошибка. Контекст не найден"
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Как корректно добавить новую таблицу?

Сообщение edward_K »

edward_K писал(а):(удаление в компиляторе интерфейсов тока почему то либо руками в консоле управления , если есть лицензия на все).
Руслан
Местный житель
Сообщения: 294
Зарегистрирован: 01 ноя 2011, 14:03
Контактная информация:

Re: Как корректно добавить новую таблицу?

Сообщение Руслан »

edward_K писал(а):
edward_K писал(а):(удаление в компиляторе интерфейсов тока почему то либо руками в консоле управления , если есть лицензия на все).
Пробовал удалять через компилятор интерфейсов, пишет, что "Вы не можете удалять таблицы Галактики". Чего не хватает?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Как корректно добавить новую таблицу?

Сообщение edward_K »

Если вы добавляли с Alter Dictionary, то и удалять нужно также. А субд какая?
Возможно придется через vip удалять (штатно все делается именно им).
Руслан
Местный житель
Сообщения: 294
Зарегистрирован: 01 ноя 2011, 14:03
Контактная информация:

Re: Как корректно добавить новую таблицу?

Сообщение Руслан »

База оракловая. При попытке vip-ом удалить ругается "Не могу блокировать базу данных". Создал таблицу саппортом SQL.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Как корректно добавить новую таблицу?

Сообщение edward_K »

Если с Alter создали, то для удаления также нужно всех выгнать и делать в монопольном режиме. Без alter вроде я на ходу удалял, но на MSSQL.
Руслан
Местный житель
Сообщения: 294
Зарегистрирован: 01 ноя 2011, 14:03
Контактная информация:

Re: Как корректно добавить новую таблицу?

Сообщение Руслан »

edward_K писал(а):Если с Alter создали, то для удаления также нужно всех выгнать и делать в монопольном режиме. Без alter вроде я на ходу удалял, но на MSSQL.
В том то и дело, что создал без alter... Пробую vip-ом удалять, ругается "Не могу блокировать базу данных".
Руслан
Местный житель
Сообщения: 294
Зарегистрирован: 01 ноя 2011, 14:03
Контактная информация:

Re: Как корректно добавить новую таблицу?

Сообщение Руслан »

Таблица не создавалась из-за того, что был открыт саппорт. Но потом саппорт не запускается, поэтому надо пересоздавать пользователя GAL810#ATLANTIS.
Ответить