![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменить формулу вычисления поля Computed Source
guest_Dmitry © (2004-04-21 09:31:00)Как изменить формулу вычисления поля Computed Source с учетом того, что имеются данные, и они используются в процедурах и представлениях?
guest_Dmitry (2004-04-21 18:04:00) [1]Понял я это уже. Там два поля - в одном открытый код, в другом откомпилированный. Первый меняй-не меняй толку никакого. Должен же быть способ изменить значение во втором поле...
Johnmen (2004-04-21 18:01:00) [2]Поменять что ? Сам текст формулы ? Нет вопросов.
Да только используется то откомпилированный код формулы. В блобе лежит. Его как менять будешь ?
guest_Dmitry (2004-04-21 17:58:00) [3]Ясно, буду копать дальше. Где хранится это все уже нашел, остался вопрос как поменять...
Johnmen (2004-04-21 15:19:00) [4]Ну что ж... Тогда твой путь тернист, извилист и громоздок...:)
Новое поле и правка всех ссылок во всех объектах...
guest_Dmitry (2004-04-21 13:09:00) [5]Попробовал, ту же ошибку выдает...
Johnmen (2004-04-21 13:04:00) [6]А так ?
alter TABLE BODYES alter S100 TYPE COMPUTED BY (round(price,2)*qty)
guest_Dmitry (2004-04-21 12:58:00) [7]Пробую:
alter TABLE BODYES alter S100 COMPUTED BY (round(price,2)*qty)
Получаю ошибку:
Invalid token. Dynamic SQL Error. SQL error code = -104. Token unknown - line 1, char 30. COMPUTED.
Johnmen (2004-04-21 12:46:00) [8]>Попробовал - не получается,
Как и что конкретно ?
>не воспринимает такой синтаксис...
Что это означает ?
guest_Dmitry (2004-04-21 12:43:00) [9]Попробовал - не получается, не воспринимает такой синтаксис...
Johnmen (2004-04-21 11:10:00) [10]Попробуй (без гарантий)
ALTER TABLE table ALTER column_name <alt_col_clause>
>Может где-то в системных таблицах хранится формула вычисления?
Храниться конечно. Но и в откомпилированном виде тоже, я думаю... А именно он используется при вычислении...
guest_Dmitry (2004-04-21 09:59:00) [11]Т.е. база не пустая и данные нужно сохранить.
Поле используется в процедурах, триггерах - select <нужное поле> from ... - т.е. просто удалить естественно не дает.
Может где-то в системных таблицах хранится формула вычисления?
Johnmen (2004-04-21 09:53:00) [12]Тогда я что-то не понял это
>с учетом того, что имеются данные, и они используются в
>процедурах и представлениях?
О чем это ?
guest_Dmitry (2004-04-21 09:46:00) [13]И заменять названия поля во всех процедурах и исходниках программы?
Johnmen (2004-04-21 09:44:00) [14]Просто добавить ещё одно COMPUTED поле с нужной формулой...
guest_Dmitry (2004-04-21 09:43:00) [15]Это решение я знаю, неужели никак проще нельзя? Скриптом это все желательно сделать...
Kadr (2004-04-21 09:36:00) [16]Извлечь метаданные, внести изменения, пересоздать БД
guest_Dmitry (2004-04-21 09:33:00) [17]Извиняюсь, база IB 6.5.
guest_Dmitry (2004-04-21 09:33:00) [18]Извиняюсь, база IB 6.5.