Как добавить поле в существующую таблицу?
Модераторы: m0p3e, edward_K, Модераторы
Как добавить поле в существующую таблицу?
требуется добавить пле в существующую таблицу. скажем katmc. Подскажите как это сделать. заранее благодарен
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: Как добавить поле в существующую таблицу?
Это - изменение структуры БД.
Юзать не советую... особенно если поле добавить нужно не в конец а в начало или середину... структура (а сл-но и данные полетять)...
Юзать не советую... особенно если поле добавить нужно не в конец а в начало или середину... структура (а сл-но и данные полетять)...
Re: Как добавить поле в существующую таблицу?
для моей задачи я другого выхода не вижу.
предварительно данные слить в dbf, а потом их затянуть... поле хочу добавить в конец таблицы... разве это не реально?
предварительно данные слить в dbf, а потом их затянуть... поле хочу добавить в конец таблицы... разве это не реально?
-
- Постоянный обитатель
- Сообщения: 165
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Н.Новгород ОАО "Сибур-Нефтехим"
- Контактная информация:
Re: Как добавить поле в существующую таблицу?
Реально, если не будешь добавлять индексы на это поле даже будет работать. alter table -стандартный синтаксис sql. Перед этим надо откючить протект... Потом надо обнулить контрольную сумму базы, чтоб не ругалась.
alter dictionary;
alter table KATMC
add (Myfieldr: string[65] "Мое поле"
)
;
alter dictionary;
alter table KATMC
add (Myfieldr: string[65] "Мое поле"
)
;
Re: Как добавить поле в существующую таблицу?
Неужели механизм внешних атрибутов, классификаторов не подходи?
НЕ ВЕРЮ!
НЕ ВЕРЮ!
-
- Местный житель
- Сообщения: 1357
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: СПб, ЭП-Аудит
- Контактная информация:
Re: Как добавить поле в существующую таблицу?
Кстати в 7.12 атриботом можно задать ссылку на каталог (сист. или польз. аналитики).
Правда обрабатывать придеться самим - ну скажем в ТХО АПИ.
То есть есил раньше мы в проводках по ТХО определяли аналитику при помощи фильтров - теперь можно в ТХО АПИ вытащить из атрибута накладной.
Хотя для не циклических аналитик (шапка документа) можно состряпать пользовательский режим определния аналитики а суммы выдяргивать стандартным идентификатором.
Правда каким образом данная возможность атрибутов влияет на отчеты не смотрел.
Правда обрабатывать придеться самим - ну скажем в ТХО АПИ.
То есть есил раньше мы в проводках по ТХО определяли аналитику при помощи фильтров - теперь можно в ТХО АПИ вытащить из атрибута накладной.
Хотя для не циклических аналитик (шапка документа) можно состряпать пользовательский режим определния аналитики а суммы выдяргивать стандартным идентификатором.
Правда каким образом данная возможность атрибутов влияет на отчеты не смотрел.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Как добавить поле в существующую таблицу?
добавить то можно, но лучше не стоит.
лучше обойтись конфигуратором или атрибутами,
или состряпать отдельную таблу со ссылкой на katmc и в нее уже пихать нужные поля, заполнять через свой фейсик. В свои потом добавляйте скока хотите.
лучше обойтись конфигуратором или атрибутами,
или состряпать отдельную таблу со ссылкой на katmc и в нее уже пихать нужные поля, заполнять через свой фейсик. В свои потом добавляйте скока хотите.
Могут возникнуть проблемы с паскальным кодом программы
Паскаль код программы работает на смещениях (можно посмотреть в модуле SQL - просмотр структуры), и если оно нарушится могут возникнуть проблемы при работе даже штатного функционала Галактики.
Такие дела...
Такие дела...
Re: Могут возникнуть проблемы с паскальным кодом программы
хорошо. а как добавить таблицу?
-
- Местный житель
- Сообщения: 783
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва
- Контактная информация:
Re: Могут возникнуть проблемы с паскальным кодом программы
Паскаль-код может и работает на смещениях. Но ежли докомпилять таблицу добавляя поля не в середину, а в конец таблицы или добавляя таблицы начиная с последнего уже существующего номера, то ошибок вроде быть не должно.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Могут возникнуть проблемы с паскальным кодом программы
конвертор погляди или доку если не влом
скажем с версии 584 на 585,711-712
там везде есть и добавление полей,и таблиц , и индексов.
скажем с версии 584 на 585,711-712
там везде есть и добавление полей,и таблиц , и индексов.
Re: Могут возникнуть проблемы с паскальным кодом программы
Напугали человека
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)
;
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)
;
Re: Могут возникнуть проблемы с паскальным кодом программы
После ковертера 711-712 Pervasive "захворала" таблица katsopr новые записи добавляет а старые только читает и не дает ни удалить ни модифицировать. Лечится только выкачкой в дбф физическим удалением файла и вкачкой обратно. Виновата по моему была комнада модификации индекса.