Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];

Вниз

Получение значения поля только что вставляемой записи   Найти похожие ветки 

 
supersan   (2003-04-21 16:40) [0]

Здравствуйте, господа. Возможно, данный вопрос уже где-то звучал, но не нашел я. :-(
А именно: в обработчике BeforePost нужно получить значение поля для только что вставленной записи. Отображение таблицы - в TDBGrid (если б был, например, DBEdit, то просто взял бы его Text). Возможно такое в принципе? Если да, то как? Если нет - то все равно как (см. сабж)?


 
Zacho   (2003-04-21 16:46) [1]

http://www.ibase.ru/devinfo/generator.htm
Если кратко - получать перед вставкой записи


 
Johnmen   (2003-04-21 16:48) [2]

Есть такая штука, как генератор. Используя его можно заранее получить уникальный идентификатор записи...


 
Anatoly Podgoretsky   (2003-04-21 16:50) [3]

supersan © (21.04.03 16:40)
Такой записе еще нет, она будет после AfterPost


 
supersan   (2003-04-21 16:53) [4]

Извините, мне не надо значение автоинкрементного поля, получаемого при использовании генератора. Надо посчитать значение поля, используя значение другого поля (сразу предупрежу, что алгоритм непростой, в триггер не загнать, или загнать с трудом). Как?


 
3JIA9I CyKA   (2003-04-21 16:56) [5]

Есть способ. Но он не простой! В форуме не опишешь. А если опишешь - хрен кто прочитает!


 
supersan   (2003-04-21 16:59) [6]


> Anatoly Podgoretsky © (21.04.03 16:50)

Дак если была такая запись, так и вопроса бы не было

> 3JIA9I CyKA © (21.04.03 16:56)

А хоть примерно?


 
Соловьев   (2003-04-21 16:59) [7]


> сразу предупрежу, что алгоритм непростой, в триггер не загнать,
> или загнать с трудом). Как?

UDF, но все же может и ХП или трггер справиться...


 
3JIA9I CyKA   (2003-04-21 17:00) [8]

>>алгоритм непростой, в триггер не загнать,
>>или загнать с трудом
Поподробней, плз.


 
Zacho   (2003-04-21 17:02) [9]

Напиши подробнее, что тебе надо. Пока информации для ответа не достаточно.


 
supersan   (2003-04-21 17:12) [10]


> Соловьев © (21.04.03 16:59)


> 3JIA9I CyKA © (21.04.03 17:00)

Во-первых, юзер может сам внести значение в это поле, поэетому желательно спросить, надо ли его рассчитать.
В-общем, предметная область, чувствую, без этого не договоримся. Расчет добавок к пенсиям. Есть таблица
CREATE TABLE TBPENS (
ID T_ID NOT NULL,
ID_CARD T_ID,
ID_VPENS T_ID,
R_PENS T_MONEY,
ZPL T_MONEY,
PERCENT T_PERCENT,
R_SUM T_MONEY,
DOPL T_MONEY,
NUM_RNV T_NUM,
DATE_RNV T_DATE,
DATE_NV T_DATE,
DATE_KV T_DATE,
DELETED T_DELETED COLLATE PXW_CYRL
);

Поле DOPL:=R_SUM-R_PENS, причем, если DOPL<PMIN (это значение из другой таблицы), то DOPL:=PMIN.
Причем юзер может изменить, например, какое-нибудь из полей R_SUM или R_PENS и захотеть пересчитать заново. Может ввести новую запись и захотеть посчитать. А может и сам ввести авторитарно значение DOPL и прога должна это принять. Т.е. задается вопрос:"Хотите пересчитать", в зависимости от ответа - считать или просто запостить.
Поля ZPL, PERCENT, R_SUM тоже рассчитываются, в зависимости от других таблиц, но с ними я справился. Нужно получить значение NEW.R_PENS, тогда будет мне в жизни щастье.
Есть идеи?


 
supersan   (2003-04-21 18:06) [11]

Ну вот, совсем про меня забыли :-(


 
3JIA9I CyKA   (2003-04-21 18:10) [12]

>>А может и сам ввести авторитарно значение DOPL и прога должна >>это принять.
Это случай, когда
new.dopl is not null
в противном случае считаем.
В чём сложность?


 
supersan   (2003-04-21 18:25) [13]


> 3JIA9I CyKA © (21.04.03 18:10)

А если он изменит, например, поле R_Pens? Тогда, во-первых, уже нужен триггер BeforeUpdate, во-вторых, все равно остается проблема, а нужно ли пересчитывать?



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

Форум: "Базы";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.005 c
3-34333
off
2003-04-21 14:04
2003.05.12
Как ускорить выгрузку!


14-34561
Style
2003-04-23 18:39
2003.05.12
Delphi Challenge! Пришло письмо с просьбой перенести 1-й тур


14-34614
Alexander Vasjuk
2003-04-24 17:04
2003.05.12
Оператор +=


3-34344
Evgeny
2003-04-22 12:32
2003.05.12
SQL запрос


7-34627
SergeyVasiljev
2003-03-18 18:18
2003.05.12
Как послать байт через переходник USB-LPT, при обращении к LPT?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский