Как добавить поле в существующую таблицу?

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

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

Ответить
AlexY
Сообщения: 15
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Как добавить поле в существующую таблицу?

Сообщение AlexY »

требуется добавить пле в существующую таблицу. скажем katmc. Подскажите как это сделать. заранее благодарен
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Re: Как добавить поле в существующую таблицу?

Сообщение Maverick »

Это - изменение структуры БД.
Юзать не советую... особенно если поле добавить нужно не в конец а в начало или середину... структура (а сл-но и данные полетять)...
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
AlexY
Сообщения: 15
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Re: Как добавить поле в существующую таблицу?

Сообщение AlexY »

для моей задачи я другого выхода не вижу.

предварительно данные слить в dbf, а потом их затянуть... поле хочу добавить в конец таблицы... разве это не реально?
yuri_z
Постоянный обитатель
Сообщения: 165
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Н.Новгород ОАО "Сибур-Нефтехим"
Контактная информация:

Re: Как добавить поле в существующую таблицу?

Сообщение yuri_z »

Реально, если не будешь добавлять индексы на это поле даже будет работать. alter table -стандартный синтаксис sql. Перед этим надо откючить протект... Потом надо обнулить контрольную сумму базы, чтоб не ругалась.
alter dictionary;
alter table KATMC
add (Myfieldr: string[65] "Мое поле"
)
;
IStep
Сообщения: 18
Зарегистрирован: 29 мар 2005, 17:49
Откуда: 33

Re: Как добавить поле в существующую таблицу?

Сообщение IStep »

Неужели механизм внешних атрибутов, классификаторов не подходи?
НЕ ВЕРЮ!
Seybukan
Местный житель
Сообщения: 1357
Зарегистрирован: 29 мар 2005, 17:49
Откуда: СПб, ЭП-Аудит
Контактная информация:

Re: Как добавить поле в существующую таблицу?

Сообщение Seybukan »

Кстати в 7.12 атриботом можно задать ссылку на каталог (сист. или польз. аналитики).
Правда обрабатывать придеться самим - ну скажем в ТХО АПИ.
То есть есил раньше мы в проводках по ТХО определяли аналитику при помощи фильтров - теперь можно в ТХО АПИ вытащить из атрибута накладной.
Хотя для не циклических аналитик (шапка документа) можно состряпать пользовательский режим определния аналитики а суммы выдяргивать стандартным идентификатором.

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

Re: Как добавить поле в существующую таблицу?

Сообщение edward_K »

добавить то можно, но лучше не стоит.
лучше обойтись конфигуратором или атрибутами,
или состряпать отдельную таблу со ссылкой на katmc и в нее уже пихать нужные поля, заполнять через свой фейсик. В свои потом добавляйте скока хотите.
ScooP
Постоянный обитатель
Сообщения: 110
Зарегистрирован: 29 мар 2005, 17:49

Могут возникнуть проблемы с паскальным кодом программы

Сообщение ScooP »

Паскаль код программы работает на смещениях (можно посмотреть в модуле SQL - просмотр структуры), и если оно нарушится могут возникнуть проблемы при работе даже штатного функционала Галактики.
Такие дела...
AlexY
Сообщения: 15
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Re: Могут возникнуть проблемы с паскальным кодом программы

Сообщение AlexY »

хорошо. а как добавить таблицу?
Deinis
Местный житель
Сообщения: 783
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Re: Могут возникнуть проблемы с паскальным кодом программы

Сообщение Deinis »

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

Re: Могут возникнуть проблемы с паскальным кодом программы

Сообщение edward_K »

конвертор погляди или доку если не влом :)
скажем с версии 584 на 585,711-712
там везде есть и добавление полей,и таблиц , и индексов.
Galpro_
Посетитель
Сообщения: 38
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Re: Могут возникнуть проблемы с паскальным кодом программы

Сообщение Galpro_ »

Напугали человека :)
AlexY - все не так страшно.

Если у вас Pervasiv
Сначало докомпилируйте на тестовой базе:
1) Выгружаем что надо в dbf
2) Контрольн сумму сбрасываем в ноль
3) D_Dict в D_Dict.old
4) докомпилируем словарь
5) удаляем физ .dat таблицы которые докомпилировали
5) возращаем D_Dict
6) загружаем из dbf
7) все проверяем 10ть раз

На рабочей БД
1) Выгружаем что надо в dbf
2) удаляем физ .dat таблицы которые докомпилировали
3) копируем словарь в рабочую бд
все
4) загружаем из dbf
5) все проверяем 10ть раз:)

Как небольшое предупреждение некотрые интефейсы в которых использовалась
связка по (noindex) если вы добавите эти индексы могут неадекватно работать - требуется пересборка vip интерфейсов
На Pas ничего не замечено.

Вот примерчики.

Alter Table Basedoc
Add
(
dSumPlat : double "Сумма платежей по документу",
dSumGruz : double "Сумма отгрузок по документу",
dSumVozv : double "Сумма возвратов по документу",
ccbd1 : comp "Доп ссылка 1",
ccbd2 : comp "Доп ссылка 2",
ccbd3 : comp "Доп ссылка 3",
ccbd4 : comp "Доп ссылка 4",
ccbd5 : comp "Доп ссылка 5",
wbdD1 : word "Доп1",
wbdD2 : word "Доп2",
wbdD3 : word "Доп3",
wbdD4 : word "Доп4",
wbdD5 : word "Доп5",
bdRes1: string[41] "Примечание 1",
bdRes2: string[41] "Примечание 2",
bdRes3: string[41] "Примечание 3"
)
Add Index ( iPer0 = CNMOVECELL )
Add Index ( iPer1 = CPERSON )
Add Index ( iPer2 = CCOMPL )
;



Alter Table KatSopr
Add
(
MyStr1 : string[255] "String-поле1",
MyStr2 : string[255] "String-поле2",
MyWord1 : word "Word-поле1",
MyWord2 : word "Word-поле2",
MyComp1 : comp "Comp-поле1",
MyComp2 : comp "Comp-поле2"
)
Add Index (MyIndw1 = MyWord1 + VIDSOPR + DSOPR + NSOPR)
Add Index (MyIndw2 = MyWord1 + CSTEPDOC + VIDSOPR + DSOPR + NSOPR)
Add Index (MyIndw3 = MyWord2 + VIDSOPR + DSOPR + NSOPR)
Add Index (MyIndw4 = MyWord2 + CSTEPDOC + VIDSOPR + DSOPR + NSOPR)
Add Index (MyIndw5 = MyComp1 + VIDSOPR + DSOPR + NSOPR)
Add Index (MyIndw6 = MyComp2 + VIDSOPR + DSOPR + NSOPR)
Add Index (add1 = dSopr)
Add Index (add2 = cPodrTo)
Add Index (add3 = cPodrFrom)
Add Index (add4 = CORG + VidSopr)
Add Index (add5 = cCompl+ VidSopr)
Add Index (add6 = VidSopr + cKatSopr)
;
oiko
Местный житель
Сообщения: 418
Зарегистрирован: 29 мар 2005, 17:49

Re: Могут возникнуть проблемы с паскальным кодом программы

Сообщение oiko »

После ковертера 711-712 Pervasive "захворала" таблица katsopr новые записи добавляет а старые только читает и не дает ни удалить ни модифицировать. Лечится только выкачкой в дбф физическим удалением файла и вкачкой обратно. Виновата по моему была комнада модификации индекса. :(
Ответить