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

Вниз

Как присвоить полю Integer значение   Найти похожие ветки 

 
N&N   (2003-07-14 11:09) [0]

Уважаемые Мастера,
окажите помощь, пожалуйста!
Есть поле типа Integer, перед Постом нужно проверить, если значение равно Null, то присвоить значение 0, подскажите, пожалуста, как это сделать.


 
DenK_vrtz ©   (2003-07-14 11:11) [1]

Поставить значение 0 по умолчанию в таблице


 
Q   (2003-07-14 11:14) [2]

в приложении - событие Table.BeforePost, Query.BeforePost

на сервере - через треггер


 
Жук ©   (2003-07-14 11:15) [3]

Или триггером : if new.field is null then new.field=0


 
Alexandr ©   (2003-07-14 11:16) [4]

или триггер...


 
N&N   (2003-07-14 11:16) [5]

>DenK_vrtz
Поставить значение 0 по умолчанию в таблице
А нельзя ли это проделать программным способом?


 
Alexandr ©   (2003-07-14 11:17) [6]

Dataset.OnNewRecord


 
DenK_vrtz ©   (2003-07-14 11:18) [7]

N&N (14.07.03 11:16), см. выше


 
Zacho ©   (2003-07-14 11:20) [8]


> DenK_vrtz © (14.07.03 11:11)

Если запрос будет вида UPDATE MY_TABLE SET MY_FIELD=NULL или INSERT INTO MY_TABLE (MY_FIELD,..) VALUES (NULL,..) то это ничего не даст.


 
N&N   (2003-07-14 11:20) [9]

Большое спасибо за помощь.


 
N&N   (2003-07-14 11:39) [10]

Извиняюсь за назойливость, но рекомендованными способами мне не удалось решить свою проблему.Немного расширю вопрос.
Если в запросе
select sum(field1), sum(field2), sum(field1)+sum(field2) from...
значение в sum(field1) будет Null, то в sum(field1)+sum(field2) тоже будет Null, хотя в sum(field2) значение не равно Null . Не могу победить такую проблему.


 
bushmen ©   (2003-07-14 11:46) [11]

select isnull(sum(field1), 0), isnull(sum(field2), 0), isnull(sum(field1), 0)+isnull(sum(field2), 0) from ...


 
DenK_vrtz ©   (2003-07-14 11:46) [12]

N&N (14.07.03 11:39),
надо сделать, чтобы в таблицу значения null не записывались (см.выше) или обрабатывать null в запросе (в IB6.x не знаю как, к сожалению)


 
N&N   (2003-07-14 12:06) [13]

>Bushmen
select isnull(sum(field1), 0), isnull(sum(field2), 0), isnull(sum(field1), 0)+isnull(sum(field2), 0) from ...

а что мне попытаться сделать еще, если при этом выдается сообщение function unknown isnull


 
Zacho ©   (2003-07-14 12:52) [14]

Вообще-то надо изначально правильно проектировать БД. Поля, по которым может быть суммирование должны быть NOT NULL DEFAULT 0. Лучше всего так и сделать.
Если сейчас изменить структуры БД нет возможности, то можно использовать какую-либо UDF (смотри на www.ibase.ru). В Yaffil можно было бы использовать фунцию IIF, в FB1.5 - COALESCE или CASE, а в IB - только UDF.


 
bushmen ©   (2003-07-14 12:58) [15]

N&N>
попробуй изменить структуру таблиц как сказал Zacho. Только перед этим сделай update тфблицы и замени все null на 0


 
DenK_vrtz ©   (2003-07-14 13:09) [16]

Zacho © (14.07.03 12:52), а не знаешь кто за такую же идею чуть выше критиковал? (единственное not null забыл указать) :-)


 
Zacho ©   (2003-07-14 13:14) [17]


> DenK_vrtz © (14.07.03 13:09)
>(единственное not null забыл указать) :-)

А не надо забывать :-) NOT NULL здесь самое существенное.


 
N&N   (2003-07-14 13:22) [18]

>Zacho
Вообще-то надо изначально правильно проектировать БД. Поля, по которым может быть суммирование должны быть NOT NULL DEFAULT 0.

Вообще-то у меня так и сделано, но в резултате запроса при определенных параметрах условия "Where" в одном из слагаемых получается Null, вот и начинаются неувязки.



 
bushmen ©   (2003-07-14 13:31) [19]

N&N>
В таком случае, у тебя NULL выдает только в случае, если у тебя нет ни одной выборки (нет ни одного слагаемого) по условию. Поэтому, в клиенте программно проверяй на отсутствие НД в рекордсете


 
N&N   (2003-07-14 13:36) [20]

>Bushman
Понятно, большое спасибо, направления для копания получил.



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

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

Наверх




Память: 0.51 MB
Время: 0.018 c
3-10081
Alfred77777
2003-07-11 14:33
2003.08.04
Не получается вывести таблицу в режим редактирования


3-10109
SCORPION ZP
2003-07-13 12:02
2003.08.04
Как в Delphi открыть базу FoxPro?


1-10264
cjiohobaji
2003-07-21 05:05
2003.08.04
кто-нибудь делал отчёты, не с БД а со своих данных, с программы


1-10176
AndreyAs
2003-07-17 15:51
2003.08.04
Rave Reports по-русски


1-10194
Olga
2003-07-23 10:17
2003.08.04
Совместимость Delphi с Borland Pascal 7.0