Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Изменение Default / 14 сообщений из 14, страница 1 из 1
30.01.2007, 11:26
    #34292019
yurikz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение Default
Добрый день
ASA 9.0.1
Такой вопрос
могу ли я изменить в тригере (Table2 after insert) значение поля Default в таблице Table1
делаю так

alter Table1
modify column1 integer not null default 123 - так работает

alter Table1
modify column1 integer not null default Table2.id - не рабоатет

нужно чтобы при изменении Table2
обновлялось значение default таблици Table1

заранее спасибо!
...
Рейтинг: 0 / 0
30.01.2007, 17:30
    #34293846
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение Default
Странное желание если честно. Лучше будет отдать эту задачу клиенту, пусть он читает значение из table2 и предлагает его юзеру в качестве значения по умолчанию.

Но в принципе, это можно сделать и через триггер, запихнув всю команду "alter table ..." в локальную переменную char типа, а потом отдать эту переменную в execute immediate.
Но учти что alter table делает неявный коммит, а это всегда плохо внутри триггера.

---
http://www.rusug.ru] Портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
30.01.2007, 17:45
    #34293897
yurikz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение Default
2 White Owl
Спасибо
...
Рейтинг: 0 / 0
30.01.2007, 17:48
    #34293910
Sergey Orlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение Default
yurikzДобрый день
ASA 9.0.1
Такой вопрос
могу ли я изменить в тригере (Table2 after insert) значение поля Default в таблице Table1
делаю так

alter Table1
modify column1 integer not null default 123 - так работает

alter Table1
modify column1 integer not null default Table2.id - не рабоатет

нужно чтобы при изменении Table2
обновлялось значение default таблици Table1

заранее спасибо!
А у тебя в table2.id несколько значения может быть, некорректно, другое дело если ты вычислил уже это значение после чего модифицируешь Table1.
...
Рейтинг: 0 / 0
30.01.2007, 18:02
    #34293960
yurikz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение Default
table2.id содержит 1 значение
его может изменить юзер со стороны клиента

еще делал так :

declare const_1 integer;
select table2.id into const_1 from table2;

alter Table1
modify column1 integer not null default const_1;
тоже не работает
...
Рейтинг: 0 / 0
30.01.2007, 18:36
    #34294055
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение Default
менять структуру внутри тригера - что-то не то в проектировании...
лучше завести отдельную табличку, откуда другим тригером будут браться значения по умолчанию...
имхо
...
Рейтинг: 0 / 0
31.01.2007, 12:13
    #34295602
yurikz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение Default
Рыжий Котменять структуру внутри тригера - что-то не то в проектировании...
лучше завести отдельную табличку, откуда другим тригером будут браться значения по умолчанию...
имхо

я должен предложить значение по умолчанию но
юзер не всегда может с ним согласится и должен иметь право изменить его

Table2 и есть таблица откуда берутся значения по умолчанию
но это не должно быть строгим умолчанием(должна быть возможность изменения юзером)
...
Рейтинг: 0 / 0
31.01.2007, 12:34
    #34295696
yurikz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение Default
и еще вопросик
при выполнении insert
в таблице которая имеет значение поля "column1 integer not null default 123"
поле column1 - пустое
после post
column1=123

как вывести значение поля column1=123 при insert
юзер должен видеть значение по умолчанию прежде чем выполнить post
...
Рейтинг: 0 / 0
31.01.2007, 13:21
    #34295946
ездун
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение Default
yurikzкак вывести значение поля column1=123 при insert
юзер должен видеть значение по умолчанию прежде чем выполнить post
Уважаемый! Вы путаете проектирование клиентского приложения и проектирование БД. Вам лучше взять хорошую книгу по разработке приложения для работы с БД и проштудировать её.
...
Рейтинг: 0 / 0
31.01.2007, 13:45
    #34296058
yurikz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение Default
ездун yurikzкак вывести значение поля column1=123 при insert
юзер должен видеть значение по умолчанию прежде чем выполнить post
Уважаемый! Вы путаете проектирование клиентского приложения и проектирование БД. Вам лучше взять хорошую книгу по разработке приложения для работы с БД и проштудировать её.

приложение я пишу на delphi и знаю как это реализовать
просто хотелось узнать возможно ли это реализовать в базе
...
Рейтинг: 0 / 0
31.01.2007, 14:34
    #34296298
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение Default
не понимаю проблемы: вводите все как обычно, только транзакцию коммитьте, когда пользователь будет уверен...
...
Рейтинг: 0 / 0
31.01.2007, 15:43
    #34296636
yurikz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение Default
Рыжий Котне понимаю проблемы: вводите все как обычно, только транзакцию коммитьте, когда пользователь будет уверен...

в чем он может быть уверен если он не видет значения по умолчанию
при выполнении команды insetr

на данный момент клиен пишется на delphi
но в будущем хочу все реализовать через Web Service
и отказатся от стороних оболочек
поэтому и хочу как можно больше операций выполнять непосредственно в базе
...
Рейтинг: 0 / 0
31.01.2007, 18:05
    #34297266
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение Default
yurikzя должен предложить значение по умолчанию но
юзер не всегда может с ним согласится и должен иметь право изменить его

Table2 и есть таблица откуда берутся значения по умолчанию
но это не должно быть строгим умолчанием(должна быть возможность изменения юзером)
Если задача стоит так, то ЕДИНСТВЕННЫМ возможным вариантом решения, является:
1) Юзер пытается открыть диалог редактирования записи в table1
2) Диалог прежде чем открыться читает таблицу table2 и берет оттуда все значения по умолчанию для table1
3) Диалог показывает все TEdit/TCheckBox поля и заполняет нужные значениями прочитаными на предыдущем шаге.
4) Юзер редактирует поля в диалоге и тыкает в кнопку Save
5) Диалог делает INSERT/UPDATE записи в table1 и больше не смотрит ни на какие default значения.
...
Рейтинг: 0 / 0
01.02.2007, 08:21
    #34297934
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение Default
yurikz Рыжий Котне понимаю проблемы: вводите все как обычно, только транзакцию коммитьте, когда пользователь будет уверен...

в чем он может быть уверен если он не видет значения по умолчанию
при выполнении команды insetr


после инсерт извлеките эту же запись по pk :)
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Изменение Default / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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