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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2008, 12:26   #1
Tanuska___:)
Пользователь
 
Аватар для Tanuska___:)
 
Регистрация: 22.04.2008
Сообщений: 84
По умолчанию как сформировать проверку (вложенные блоки)

я пытаюсь сформировать запросик на обновление.... но на форме присутствуют MaskEdit(6 шт) для даты. и при отсутствии вводимой информации на MaskEdit у меня появляеться ошибка 'несоответствие типов при отборе данных' как сформировать блоки проверки так чтобы условия проверялись все .при этом по ходу проверки выполнялось исключение из запроса той информации которой пользователь не ввел в MaskEdiT?
пробовала вот так:
Код:
if TryStrToDateTime(MaskEdit11.Text, d)    then   begin
  if TryStrToDateTime(MaskEdit12.Text, d)    then   begin
   if TryStrToDateTime(MaskEdit13.Text, d)    then   begin
      if TryStrToDateTime(MaskEdit14.Text, d)    then   begin
        if TryStrToDateTime(MaskEdit15.Text, d)    then   begin
         if TryStrToDateTime(MaskEdit16.Text, d)    then   begin
tex:= 'update Zurnal set DataPost='+ QuotedStr(MaskEdit11.text)+',StatusKol='+ QuotedStr(Edit36.text)+',KemPereslano='+ QuotedStr(Edit38.text)+',Adress='+ QuotedStr(Edit40.text)+',Soderganie='+ QuotedStr(Edit41.text)+',Ispolnitel='+ QuotedStr(Edit42.text)+',Status='+ QuotedStr(ComboBox6.text)+',DataIspolnen='+ QuotedStr(MaskEdit15.text)+',Ident='+ QuotedStr(ComboBox10.text)+'  where PorNomer='+QuotedStr(Edit37.Text)+'';
tex1:='update RegistraKartochka set DataPovtOb ='+ QuotedStr(MaskEdit12.text)+',IndexPovtObr='+ QuotedStr(Edit44.text)+',Korrespondent='+ QuotedStr(LabeledEdit2.text)+', ';
tex1:=tex1+'DataP='+ QuotedStr(MaskEdit13.text)+',IndexP='+ QuotedStr(Edit45.text)+',VidObr='+ QuotedStr(ComboBox7.text)+', ';
tex1:=tex1+'FormulZayav='+ QuotedStr(Edit55.text)+',SocGruppa='+ QuotedStr(Edit46.text)+',Tematika='+ QuotedStr(ComboBox8.text)+', ';
tex1:=tex1+'Rezol='+QuotedStr(Edit47.Text)+',Ispolnitel='+QuotedStr(Edit42.Text)+',DataN='+QuotedStr(MaskEdit11.Text)+',DataS='+QuotedStr(MaskEdit14.Text)+', ';
tex1:=tex1+'DataI='+QuotedStr(MaskEdit15.Text)+',HodRassmotr='+QuotedStr(Edit49.Text)+',KontrMetka='+QuotedStr(Edit50.Text)+',DataOt='+QuotedStr(MaskEdit16.Text)+',RezRassmObras='+QuotedStr(ComboBox9.Text)+',OtmetkaOsnatii='+QuotedStr(Edit51.Text)+', ';
tex1:=tex1+'DokumentPodsit='+QuotedStr(Edit52.Text)+',kolListov='+QuotedStr(Edit43.Text)+',naIspolnen='+QuotedStr(Edit48.Text)+'';
tex1:=tex1+'  where PorNomer='+QuotedStr(Edit37.Text)+'';
end else begin
// исключаю из зипроса данные с MaskEdit16
end;
end else begin
// исключаю из зипроса данные с MaskEdit15
end;
end else begin
// исключаю из зипроса данные с MaskEdit14
end;
end else begin
// исключаю из зипроса данные с MaskEdit13
end;
end else begin
// исключаю из зипроса данные с MaskEdit12
end;
end else begin
// исключаю из зипроса данные с MaskEdit11
end;
Tanuska___:) вне форума Ответить с цитированием
Старый 25.11.2008, 13:27   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А зачем использовать MaskEdit ?
Календарик разве не удобнее?
mihali4 вне форума Ответить с цитированием
Старый 25.11.2008, 14:04   #3
Tanuska___:)
Пользователь
 
Аватар для Tanuska___:)
 
Регистрация: 22.04.2008
Сообщений: 84
По умолчанию

календарик конечно удобнее! Но! есть случаи когда дата еще не поставлена и ставиться во время работы ! и тем самым календарик усложняет а не упрощает работу!
Tanuska___:) вне форума Ответить с цитированием
Старый 25.11.2008, 14:11   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Тогда я вам порекомендую следующий алгоритм:
- первая строковая переменная - tex1:='update RegistraKartochka set ';
- вторая строковая переменная - tex2 - в ней вы будете накапливать наименования полей(pole1,pole2...);
- третья строковая переменная - tex3 - в ней вы одновременно будете накапливать значения для этих полей values(val1,val2,...);
- когда вы последовательно проверите все маскэдиты, у вас все 3 переменных будут сформированы и их останется сложить вместе и использовать как текст SQL-запроса.
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в Методе гаусса создать обратную(At) матрицу!выполнить проверку! vdv08 Помощь студентам 1 29.10.2008 15:46
Как сформировать запрос RDS2008 БД в Delphi 10 07.03.2008 23:01