Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2017, 11:25   #11
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Если я все компоненты (edit,combobox,dateedit) заполняю данными, все прекрасно работает.
Но если хоть один компонент (Числовой или с датой) пустой, вылетает ошибка.
Изображения
Тип файла: jpg Безымянный.jpg (89.8 Кб, 141 просмотров)
Ernest027 вне форума Ответить с цитированием
Старый 23.01.2017, 13:31   #12
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Прошу вашей помощи, толком найти ничего не могу или просто не знаю что и где искать.
Ernest027 вне форума Ответить с цитированием
Старый 23.01.2017, 13:50   #13
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Если еще ни чего не присваивать, то будет NULL тоже по идее.
Код:
  if sEdit19.Text<>'' then Parameters.ParamByName('GV').Value:=StrToInt(sEdit19.Text);
  else ....
  if sDateEdit1.Date<>0 then Parameters.ParamByName('DPZ').Value:=sDateEdit1.Date;
  if sComboBox4.Text<>'' then Parameters.ParamByName('TS').Value:=sComboBox4.Text;
  if sDateEdit2.Date<>0 then Parameters.ParamByName('DSZ').Value:=sDateEdit2.Date;
  if sEdit6.Text<>'' then Parameters.ParamByName('P').Value:=StrToFloat(sEdit6.Text);
  if sEdit5.Text<>'' then Parameters.ParamByName('U').Value:=StrToFloat(sEdit5.Text);
можно попробовать еще так
Код:
Parameters.ParamByName('xxx').Value:= NULL UnAssigned;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 23.01.2017, 13:56   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

если варианты от evg_m не пройдут, то попробуйте ещё такое:

вариант 1.
Код:
Parameters.ParamByName('NPD').Clear;
if sEdit2.Text<>'' then
  Parameters.ParamByName('NPD').Value:=StrToInt(sEdit2.Text);
вариант 2.
Код:
if sEdit2.Text<>'' then
  Parameters.ParamByName('NPD').Value:=StrToInt(sEdit2.Text);
else begin
  Parameters.ParamByName('NPD').DataType := ftString;  // или, например, ftInteger
  Parameters.ParamByName('NPD').Value := NULL;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.01.2017, 14:10   #15
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Спасибо вам огромное)))
Получилось))) Подошел вариант 2)))
СПА-СИ-БО
Ernest027 вне форума Ответить с цитированием
Старый 23.01.2017, 14:13   #16
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
  Parameters.ParamByName('NPD').Attributes:=[paNullable];
  if sEdit2.Text<>'' then Parameters.ParamByName('NPD').Value:=StrToInt(sEdit2.Text);
или
Код:
  Parameters.ParamByName('NPD').Attributes:=[paNullable];
  if sEdit2.Text<>'' then Parameters.ParamByName('NPD').Value:=StrToInt(sEdit2.Text)
                     else Parameters.ParamByName('NPD').Value:=NULL;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.01.2017, 14:20   #17
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Еще раз всем спасибо)))
Ernest027 вне форума Ответить с цитированием
Старый 23.01.2017, 19:36   #18
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Насчет AsInteger лопухнулся не там написал я имел ввиду так
Код:
ADOQueryZavod.FieldByName('NPD').AsInteger
Вижу все решилось))
Aliens_wolfs вне форума Ответить с цитированием
Старый 23.01.2017, 20:31   #19
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

да,спасибо)
Ernest027 вне форума Ответить с цитированием
Старый 26.01.2017, 21:13   #20
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

подскажите, а как сделать чтобы выполнялось условие:
Код:
if sEdit2.Text<>'' then
  Parameters.ParamByName('NPD').Value:=StrToInt(sEdit2.Text);
else 
не вставлять ничего;
Ernest027 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать что бы в Edit был прозрачный текст который при введение в Edit все исчез alman12 Общие вопросы Delphi 22 09.06.2014 22:21
Пустой Edit. Парсер формулы из Edit Silverstone Общие вопросы Delphi 3 16.12.2012 03:07
Математические операции между таблицей ADO и Edit stevieg БД в Delphi 20 26.11.2012 16:02
Открывается пустой лист, но не пустой, а смещенный вверх romamania Microsoft Office Excel 3 31.05.2012 15:28
Копирование строки из Edit в другой Edit. Ibanez Wizard Win Api 3 29.03.2011 02:46