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

Вниз

Записать 0 в поле   Найти похожие ветки 

 
O.O   (2010-06-10 12:17) [0]

Ситуация такая, в таблице есть поле формата DOUBLE PRECISION и в нём допускаются значение Null
Поставить полю параметр not Null уже нельзя.
При записи 0 в поле туда записывается Null
Каим образом можно записать туда 0 а не Null ?


 
Amoeba_   (2010-06-10 12:29) [1]

СУБД какая?


 
turbouser ©   (2010-06-10 12:29) [2]

в триггере new.твое_поле = COALESCE(new.твое_поле,0)


 
Anatoly Podgoretsky ©   (2010-06-10 13:00) [3]


> При записи 0 в поле туда записывается Null

У тебя или ошибка в запросе, или в характеристиках поля, например злые тригера.


 
Sergey13 ©   (2010-06-10 13:13) [4]

> [0] O.O   (10.06.10 12:17)
> Поставить полю параметр not Null уже нельзя.

Почему? Проапдейтить таблицу set field=0 where field is null и добавить констрейнт.

> При записи 0 в поле туда записывается Null
Скорее всего ты в гриде видишь этот ноль. А это еще ничего не значит.


 
O.O   (2010-06-10 17:05) [5]


> Amoeba_   (10.06.10 12:29) [1]
> СУБД какая?


FB 2.0


Anatoly Podgoretsky ©   (10.06.10 13:00) [3]
>У тебя или ошибка в запросе, или в характеристиках поля, например злые тригера.


Запрос такой приблизительно:

   if QRead1.Active Then QRead1.Close;
   QRead1.SQL.Clear;
   QRead1.SQL.Append("SELECT GEN_ID(MY_GEN, 1) FROM RDB$DATABASE");
   QRead1.Prepare;
   QRead1.Open;
   My_ID := QRead1.FieldByName("GEN_ID").AsInteger;
   QRead1.Close;

   if QWrite1.Active then QWrite1.Close;
   QWrite1.SQL.Clear;
   QWrite1.SQL.Append("INSERT INTO TABLE (ID, FIELD) VALUES (:ID, :Data");
   QWrite1.ParamByName("ID").AsInteger := My_ID;
   QWrite1.ParamByName("Data").AsFloat := 0;
   QWrite1.Prepare;
   QWrite1.ExecSQL;


 
O.O   (2010-06-10 17:13) [6]


> Sergey13 ©   (10.06.10 13:13) [4]
> > [0] O.O   (10.06.10 12:17)> Поставить полю параметр not
> Null уже нельзя.Почему? Проапдейтить таблицу set field=0
> where field is null и добавить констрейнт.>
По крайней мере IBExpert этого делать не хочет. Я обычно пытаюсь сделать изменения в нём, и если они проходят - уверенно его скрипт использую в программе для изменения в БД для обновления версий.

>При записи 0  в поле туда записывается Null
>Скорее всего ты в гриде видишь
> этот ноль. А это еще ничего не значит.

Нет, не в гриде. Этот Null сказывается в вычисляемых полях, результат которых тоже Null если в данных для расчёта есть значение Null


 
Sergey13 ©   (2010-06-10 17:50) [7]

> [6] O.O   (10.06.10 17:13)
> По крайней мере IBExpert этого делать не хочет.

Так и пишет: "Не хочу этого делать, хоть сноси меня"?


 
O.O   (2010-06-10 17:57) [8]


> Sergey13 ©   (10.06.10 17:50) [7]
> > [6] O.O   (10.06.10 17:13)> По крайней мере IBExpert этого
> делать не хочет.Так и пишет: "Не хочу этого делать, хоть
> сноси меня"?


:)))
Нет, не так. Просто не даёт изменять параметры этого поля


 
Anatoly Podgoretsky ©   (2010-06-10 19:20) [9]

> O.O  (10.06.2010 12:17:00)  [0]

Тебе уже ответили, ты проверил варианты?


 
O.O   (2010-06-10 19:35) [10]

Да всё проверяю и ничего не выходит !
У таблицы есть триггер такой:

   if (new.id is null) then
   new.id = gen_id(my_gen, 1);


Позволяет либо автоматом очередной ID вставлять либо свой id задать
Работает без проблем !

Пытаюсь тоже сделать с полем которое мне нужно и записать туда 0 - не выходит

 if (new.field is null) then new.field = 0;

Может туплю уже или глаза замылились, но ничё не выходит !  :(


 
O.O   (2010-06-10 19:39) [11]

триггер before


 
O.O   (2010-06-11 06:24) [12]

Извиняюсь перед всеми за беспокойство, сёдня утром легко нашёл причину.
0 записывается без всяких доп примочек, но после записи далее по алгоритму программы вызывается ХП в которой я сам же написал чтоб нулевое значение обращать в Null, и всё это в одной транзакции :)
От оно чё, от оно как бывает када память сбоит !



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

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

Наверх





Память: 0.47 MB
Время: 0.004 c
15-1327388540
OW
2012-01-24 11:02
2012.06.03
Как думаете, в чем лучше всего хранить деньги?


15-1327520756
Dimka Maslov
2012-01-25 23:45
2012.06.03
Что я не правильно делаю?


2-1327950833
Max
2012-01-30 23:13
2012.06.03
Ошибки с Tstream


15-1327573619
>|<
2012-01-26 14:26
2012.06.03
Как правильно обновляться программу


15-1327955402
Юрий
2012-01-31 00:30
2012.06.03
С днем рождения ! 31 января 2012 вторник





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