Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.08;
Скачать: CL | DM;

Вниз

Вопрос к мастерам: как обновить поле используя свою функцию.   Найти похожие ветки 

 
BS   (2002-07-18 10:47) [0]

Задача: нужно создать запрос например
Update ExampleTable set ExampleTable.ExampleField=myfunction(ExampleTable.ForExamplefield);
не знаю все ли правильно написал в инструкции SQL, может , что забыл, короче дело вот в чем.

Дело в том что нужно обновить определенное поле используя значение которое возвращает - определенная мной функция аргументом которой является значение другого поля этой таблицы.
Если можно это сделать через параметры, то подскажите как, а то я недавно начал с Делпфи.


 
Val ©   (2002-07-18 10:51) [1]

Нужно уточнить,данный апдейт должен пройти для каждой записи и аргумент для функции тоже берется из этой, текущей записи?


 
BS   (2002-07-18 10:58) [2]

Да для каждой записи указанной в запросе , т.е. фукция устанавливает значение поля в зависимости от другого значения поля, в Accesse с этим проблем нет там и оболочка и база в одном файле, а вот как Delphi.


 
Val ©   (2002-07-18 11:02) [3]

а вот как Delphi.
Delphi не СУБД.
С какой СУБД работаете?


 
BS   (2002-07-18 11:23) [4]

В данном случае это Access. но ведь не будешь же теперь писать код в Access, можно ли сделать это через параметры в Делпфи.


 
Val ©   (2002-07-18 11:36) [5]

Не знаю, это ли вам нужно:

MyTable.Open;
MyTable.First;
while not MyTable.EOF do
begin
MyTable.MyField.AsInteger:=MyFunction(MyTable.MySecondField.AsInteger);
MyTable.Next;
end;



 
BS   (2002-07-18 11:39) [6]

Не совсем то, что нужно но все равно спасибо


 
AngeL B.   (2002-07-18 12:18) [7]

Если поле результат хранится в базе, то я бы сказал, что оно излишне (ошибка проектирования базы) и его надо изъять (тем более что зависимость только в пределах одной таблицы). Если не храниться, то вычислимые поля никто не отменял.


 
Val ©   (2002-07-18 12:40) [8]

>AngeL B. (18.07.02 12:18)
Если поле результат хранится в базе, то я бы сказал, что оно излишне
спорный вопрос, на больших объемах лучше иметь вычисляемое поле в базе, чем пересчитывать его постоянно для отображения и т.д. И неизвестно из постановки вопроса, выполняет ли автор такой апдейт постоянно или в каких-то случаях, т.е. вычисляемое поле в приложении может и не сгодиться.


 
AngeL B.   (2002-07-18 12:59) [9]


> Val © (18.07.02 12:40)

Если поле храниться в таблице и зависит от поля этой же таблицы, то:
1) нарушение нормальной формы
2) излишний сетевой трафик (для сетевых приложений)
3) потенциальные ошибки по поводу "ой забыли перерасчитать"
Есть конечно исключения, но редки, редки они...


 
Johnmen ©   (2002-07-18 13:10) [10]

>AngeL B. (18.07.02 12:59)
>1) нарушение нормальной формы

Допустимо нарушать правила нормализации, если это приводит к приятным положительным эффектам...:)

>2) излишний сетевой трафик (для сетевых приложений)

Излишки могут быть весьма незначительны...

>3) потенциальные ошибки по поводу "ой забыли перерасчитать"

Это только если вычисляется в приложении.

Ж:-)





 
AngeL B.   (2002-07-18 13:13) [11]


> Johnmen © (18.07.02 13:10)


> Это только если вычисляется в приложении.

Ну так он и просит в приложении. Хотя, да, я уже сгенерил в голове ситуацию, когда вычислимое поле не подойдет ни на стороне сервера ни на стороне клиента.



Страницы: 1 вся ветка

Текущий архив: 2002.08.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
8-24134
P.
2002-04-02 18:16
2002.08.08
3D


14-24199
irmantukas
2002-07-13 23:36
2002.08.08
Помогите ! Где можно найти какой нибудь декомпилятор


1-24048
Tatan
2002-07-25 18:18
2002.08.08
B-дерево


3-23957
werewolfDS
2002-07-18 11:51
2002.08.08
Бухгалтерские проводки


14-24228
GreyHairs
2002-07-15 11:45
2002.08.08
Чья теорема?