Поиск:

Ответ в темуСоздание новой темы Создание опроса
> полю не задается значение по умолчанию :( 
:(
    Опции темы
Dimyan
Дата 25.2.2005, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 441
Регистрация: 12.1.2004
Где: Новосибирск

Репутация: нет
Всего: 4



InterBase
есть поле типа DOUBLE PRECISION, в базе ему задано значение по умолчанию 0
считывается оно из базы в TQuery где ему в свойстве DefaultExpression так же задано значение по умолчанию 0
редактируется поле через TDBEdit и если в TDBEdit то поле почему то имеет значение null как будто ему по барабану что у него задано значение по умолчанию, как это исправить? как сделать чтоб 100% если я не ввел ничего в поле то оно автоматом было бы равно 0?


--------------------
Как хорошо ничего не делать, а потом еще немного отдохнуть :)
PM MAIL ICQ   Вверх
Bes
Дата 25.2.2005, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



может параметр not null задать или что тоже самое непустое.?
PM MAIL   Вверх
Dimyan
Дата 25.2.2005, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 441
Регистрация: 12.1.2004
Где: Новосибирск

Репутация: нет
Всего: 4



Bes, он задан, он то и ругается что вносится пустое(null) значение smile


--------------------
Как хорошо ничего не делать, а потом еще немного отдохнуть :)
PM MAIL ICQ   Вверх
DimW
Дата 25.2.2005, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



А перед редактированием в DBEdit '0' есть?
Если есть то нормальная ситуация, 0 присваивается полю при создании записи, а приредактировании, если ты его удаляешь то передается нальный параметр, а поле нот налл, вот и ошибка. предусмотри это в коде:

if DBEdit.text='' then DBEdit.text:='0';

а если поле нальное при создании сроки и если ты все правильно сделал то этого не может быть...
PM MAIL ICQ   Вверх
Bes
Дата 25.2.2005, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



какая база? как создается? попробую у себя такое же сотворить.
PM MAIL   Вверх
Alex
Дата 25.2.2005, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 17
Всего: 162



Цитата(Bes @ 25.2.2005, 15:02)
какая база?

InterBase написано в первой строчке вопроса.
Добавлено @ 22:03
Dimyan, если я правильно тебя понял, то у тебя была таблица, в которой одно поле оставалось, в некоторых ситуациях null теперь ты установил в базе данных значение по умолчанию для этого поля и не понимаешь, почему тебе по-прежнему возвращают null. Я правильно понял?


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Dimyan
Дата 28.2.2005, 07:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 441
Регистрация: 12.1.2004
Где: Новосибирск

Репутация: нет
Всего: 4



Alex, ага smile


--------------------
Как хорошо ничего не делать, а потом еще немного отдохнуть :)
PM MAIL ICQ   Вверх
Bes
Дата 28.2.2005, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Сорри с Интербейзом не работал, но я клоню к тому, что значение по умолчанию и ненулевое поле это две разные вещи и указываются в разных местах. ДАК МОЖЕТ ПОСТАВИТЬ NOT NULL????
PM MAIL   Вверх
Dimyan
Дата 28.2.2005, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 441
Регистрация: 12.1.2004
Где: Новосибирск

Репутация: нет
Всего: 4



Bes, я же уже сказал что у меня установлено ограничение not null на это поле, но у меня есть для него значение по умолчанию и через клиенскую программу оно не задается
вот описание поля
Код

ADD_SUMM            DOUBLE PRECISION DEFAULT 0 NOT NULL,



--------------------
Как хорошо ничего не делать, а потом еще немного отдохнуть :)
PM MAIL ICQ   Вверх
Bes
Дата 28.2.2005, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Блин, ничего не понимаю. Зачем поле у которого есть значение по умолчанию задавать через клиентскую программу. Или ты модифицирцешь таблицу через клиента или ты меняешь значение поля через клиента, тогда вопрос: когда утебя нулевое значение до модификации или после. При чем тут клиент-то? Или ты добавляешь запись и значение нуловое в новой записи?....??????????????????
PM MAIL   Вверх
DimW
Дата 28.2.2005, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



Dimyan я тебя понял, есть поля которые заполняются юзером, среди них твое хитрое поле которое если юзер заполнел должно иметь его значение иначе значение по умолчанию в товоем случае "0". Я повторюсь, наверника есть параметры которые ты передаешь в INSERT, среди них твое поле, которое может передаться нальным, если юзер его невписал в TEdit, здесь и ошибка т.к. это поле not null, а параметр передается null, это не обойти ни как кроме:
if DBEdit.text='' then pCell_In:=0;
ParamByName('pCell_In').Values:=pCell_In;
ExecSQL;

или исключи этот параметр из INSERT, что как я понял тебе делать не надо.


PM MAIL ICQ   Вверх
Dimyan
Дата 28.2.2005, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 441
Регистрация: 12.1.2004
Где: Новосибирск

Репутация: нет
Всего: 4



DimW, спасибо сделал так как ты подсказал.
проверку по if
правда это всеравно как то неправильно реализовано (имхо) я считаю это автоматом должно быть раз все указано smile(


--------------------
Как хорошо ничего не делать, а потом еще немного отдохнуть :)
PM MAIL ICQ   Вверх
DimW
Дата 28.2.2005, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



А по моему все верно, раз ты в инсерт включаешь это поле то оно пишется как оно есть, а ограничения только предупреждают что существует нарушение...
Ну сам посуди ты хочешь полю присвоеть значение '125', а оно ставит тебе '0' присваевает, ерунда правда...
другое дело если ты его не укажишь в инсерте, то срабатывают значение поумолчанию + ограничения.

Думаю проблема решена, но чувствую что ты остался не даволен и тот вариан что я передложил наверниака держал прозапас...
PM MAIL ICQ   Вверх
Alex
Дата 28.2.2005, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 17
Всего: 162



Dimyan, нет не должно, все это значение по умолчанию учитывается только в момент добавления НОВОЙ записи, если в запросе на добавление ты не задал значение этого поля.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.