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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2012, 07:00   #1
Ericnex
Форумчанин
 
Регистрация: 07.04.2010
Сообщений: 218
По умолчанию Запрет на ввод пустых значений

Есть код добавления записи в таблицу:
Код:
DM.Query1.SQL.Text:='Insert into PO (Name_program, Kolvo_licensy, Name_server) values ( :Name_program, :Kolvo_licensy, :Name_server)';
DM.Query1.ParamByName('Name_program').AsString:=Edit1.Text;
DM.Query1.ParamByName('Kolvo_licensy').AsInteger:=strtoint(Edit2.Text);
DM.Query1.ParamByName('Name_server').AsString:=ComboBox1.Text;
DM.Query1.ExecSQL;
DM.Query1.Close;
DM.Query1.SQL.Clear;
DM.Query1.SQL.Text:='Select * from PO';
DM.Query1.Open;
Edit1.Clear;
Edit2.Clear;
ComboBox1.Clear;
Как с помощью обработчика исключений try except или как то по другому запретить ввод пустых значений.
Ericnex вне форума Ответить с цитированием
Старый 30.08.2012, 09:03   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Может, так:

Код:
if (Edit1.Text<>'') and (Edit2.text<>'') and (ComboBox1.Text<>'') then begin

{Ваш код}

end;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 30.08.2012, 09:21   #3
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

с помощью try ... except его можно поймать только в том случае если у тебя поле помеченное как Not Null ... в остальных случаях - как написал Sciv
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 30.08.2012, 10:07   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Код:
try
if (Edit1.Text<>'') and (Edit2.text<>'') and (ComboBox1.Text<>'') then 
begin
DM.Query1.SQL.Text:='Insert into PO (Name_program, Kolvo_licensy, Name_server) values ( :Name_program, :Kolvo_licensy, :Name_server)';
DM.Query1.ParamByName('Name_program').AsString:=Edit1.Text;
DM.Query1.ParamByName('Kolvo_licensy').AsInteger:=strtoint(Edit2.Text);
DM.Query1.ParamByName('Name_server').AsString:=ComboBox1.Text;
DM.Query1.ExecSQL;
DM.Query1.Close;
DM.Query1.SQL.Clear;
DM.Query1.SQL.Text:='Select * from PO';
DM.Query1.Open;
Edit1.Clear;
Edit2.Clear;
ComboBox1.Clear;
end;
except on E: Exception do
begin
 ShowMessage('Не заполнено одно из полей!');
end;
end;
Примерно так.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 30.08.2012, 11:06   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Даже примерно так нельзя. Ошибка может вывалиться на любой из команд внутри блока try. А тут на все случаи жизни одно сообщение, которое не соответствует действительности. В данном примере сама проверка на не пустые значения уже выполнена и при чем здесь сообщение в except?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 31.08.2012, 07:01   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Я же и говорю "Примерно так", что значит, что либо так нельзя делать, либо не желательно
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 31.08.2012, 10:01   #7
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

artemavd, при таком расскладе даже в худшем случае ничего не случится т.к. в самом худшем варианте будет вставлена запись с null в полях и всё .. но ошибкой это не будет и try ... except этого не увидит
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с выводом пустых значений zimmion PHP 2 28.07.2012 16:46
Удаление пустых и ошибочных значений ymnuhj Microsoft Office Excel 1 03.04.2012 14:33
Запрет пустых столбцов в DataSet JeyKip C# (си шарп) 4 18.04.2011 09:43
Запрет на ввод в форме kapitel_bc@ukr.net Microsoft Office Access 4 02.02.2010 03:45
Поиск значений и удаление пустых строк OgE®_M@G Microsoft Office Excel 12 16.12.2009 20:37