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

Вниз

Как присвоить полю 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.013 c
14-10412
alexshell
2003-07-17 13:08
2003.08.04
Где взять доку и примеры по разработке сервисов NT?


3-10130
Space
2003-07-15 11:29
2003.08.04
Округление значения переменной


14-10409
_____
2003-07-17 12:52
2003.08.04
Популярность форума


1-10207
Salvator
2003-07-20 13:30
2003.08.04
Обращение к метке


1-10190
Санек
2003-07-22 12:28
2003.08.04
ToolBox





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский