Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 04.04.2017
Сообщений: 10

SQL-запросы

06.06.2017, 10:36. Показов 841. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста.
При вводе неправильного пароля, программа очищает поля для ввода пароля(edit9) и его подтверждения (edit10), но при повторном вводе (правильного или неправильного пароля, проге все равно) она вылетает, пишет, что не может пустое значение записать. Не понимаю, в чем дело
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
if StrToInt(sEdit10.Text) = StrToInt(sEdit9.Text) then
         begin
            ADOQuery1.FieldByName('Пароль').AsInteger:= StrToInt(sEdit10.Text);
            ADOQuery1.Post;
            Button3.Click;
         end
      else
        begin
            ShowMessage('Неправильный пароль');
            sEdit9.Clear;
            sEdit10.Clear;
        end;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.06.2017, 10:36
Ответы с готовыми решениями:

SQL запросы
Мне нужно объединить две таблицы. Есть две таблицы Fakultet и Specialnost, нужно чтобы в таблице Specialnost в поле CodFakulteta...

Sql запросы
Приветик!!! Дело так у меня в таблице 3 столбца (фамилия,имя, отчество) мне надо переоброзовать в 1 столбец ФИО. SQl server а интерфейс в...

SQL запросы
Подскажите. если у меня есть следующий запрос на выборку: SELECT Fam, Imya, Otchestvo, SummaBall, CodFakultet, CodSpecialnost FROM...

6
5966 / 4542 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
06.06.2017, 10:43
всю процедуру пожалуйста
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,659
Записей в блоге: 21
06.06.2017, 10:46
для ответа на ваш вопрос этого куска кода недостаточно

Цитата Сообщение от uspu Посмотреть сообщение
Button3.Click;
это ну уж совсем
для того чтобы выполнить процедуру, нужно выполнять процедуру, а не жать на кнопку
при нажатии кнопки вы вполне можете исполнить эту же процедуру
0
0 / 0 / 0
Регистрация: 04.04.2017
Сообщений: 10
06.06.2017, 10:58  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
procedure TForm2.Button2Click(Sender: TObject);
begin
      if (Trim(sEdit1.Text)='') or (Trim(sEdit2.Text)='') or (Trim(sEdit3.Text)='')
        or (Trim(sEdit4.Text)='')or (Trim(sEdit5.Text)='') or (Trim(sEdit7.Text)='')
        or (Trim(sEdit8.Text)='') or (Trim(sEdit9.Text)='')or (Trim(sEdit10.Text)='')
        or (Trim(sEdit11.Text)='')or (Trim(sEdit12.Text)='')or (Trim(sComboBox3.Text)='')
      then
        begin
         ShowMessage('Имеются пустые поля ввода!');
         exit;
        end;
      ADOQuery1.Insert;
      ADOQuery1.FieldByName('Ник').AsString:= sEdit1.Text;
      ADOQuery1.FieldByName('Город').AsString:= sEdit2.Text;
      if sRadioButton1.Checked then
        begin
          ADOQuery1.FieldByName('Пол').AsString:= 'м';
          ADOQuery1.FieldByName('Отношения').AsString:= sComboBox1.Text;
        end
      else
        begin
          ADOQuery1.FieldByName('Пол').AsString:= 'ж';
          ADOQuery1.FieldByName('Отношения').AsString:= sComboBox2.Text;
        end;
      ADOQuery1.FieldByName('Возраст').AsInteger:=StrToInt(sEdit3.Text);
      ADOQuery1.FieldByName('Профессия').AsString:= sEdit7.Text;
      ADOQuery1.FieldByName('Знак зодиака').AsString:= sComboBox3.Text;
      ADOQuery1.FieldByName('Рост').AsInteger:=StrToInt(sEdit4.Text);
      ADOQuery1.FieldByName('Вес').AsInteger:=StrToInt(sEdit5.Text);
      ADOQuery1.FieldByName('О себе').AsString:= sMemo1.Text;
      ADOQuery1.FieldByName('Цель знакомства').AsString:= sEdit8.Text;
      ADOQuery1.FieldByName('Номер телефона').AsString:= sEdit11.Text;
      ADOQuery1.FieldByName('Электронный адрес').AsString:= sEdit12.Text;
      ADOQuery1.FieldByName('Требования').AsString:= sMemo2.Text;
      ADOQuery1.FieldByName('Фото').AsString:= ExtractFileName(OpenPictureDialog1.FileName);
      ADOQuery1.Active:=True;
      if StrToInt(sEdit10.Text) = StrToInt(sEdit9.Text) then
         begin
            ADOQuery1.FieldByName('Пароль').AsInteger:= StrToInt(sEdit10.Text);
            ADOQuery1.Post;
            Button3.Click;
         end
      else
        begin
            ShowMessage('Неправильный пароль');
            sEdit9.Clear;
            sEdit10.Clear;
        end;
end;
Button3.Click - очищает все поля и закрывает форму(это кнопка "Отмена")
0
 Аватар для vijer
24 / 22 / 9
Регистрация: 23.09.2014
Сообщений: 326
06.06.2017, 11:49
uspu,В каком месте кода появляется ошибка? Есть ли обработчики EditChange ?
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
06.06.2017, 12:21
Delphi
1
ADOQuery1.Active:=True;
Вот это вам зачем в середине заполнения записи?
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,659
Записей в блоге: 21
06.06.2017, 12:32
что за бред - сначала сделать Insert и заполнить поля, а потом ADOQuery1.Active:=True; ?
если оно УЖЕ не True, так всего этого бы и не было

вообще самое дурацкое всегда, когда все в одной куче и проверки, и работа с базой, и checkboxы всякие...
делите на малые и правильные части, которые выполняют ОДНО действие
должно быть
форма раз
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.RunForm2;
var f:TForm2;
begin
  f:=TForm2.Create(NIL);
  try
    if f.showModal=mrOk then 
    begin
      f.SaveAll;
      SomeOtherProc;
    end
    else
    begin
      f.ClearAll;
    end;
  finally
    f.free;
  end;
end;
форма два
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//на кнопках form2 OK и Cancel должно быть заполнено свойство ModalResult - mrOk и mrCancel например
//кнопка OK Enabled=False
procedure TForm2.CancelAll;
begin
  // что-то  
end;
 
procedure TForm2.Button3Click(Sender: TObject);
begin
  CancelAll;
end;
 
function TForm2.IsValid:boolean;
begin
  result := (Trim(sEdit1.Text)='') or (Trim(sEdit2.Text)='') or (Trim(sEdit3.Text)='')
        or (Trim(sEdit4.Text)='')or (Trim(sEdit5.Text)='') or (Trim(sEdit7.Text)='')
        or (Trim(sEdit8.Text)='') or (Trim(sEdit9.Text)='')or (Trim(sEdit10.Text)='')
        or (Trim(sEdit11.Text)='')or (Trim(sEdit12.Text)='')or (Trim(sComboBox3.Text)='')
  result := not result;
  result := result AND (StrToInt(sEdit10.Text) = StrToInt(sEdit9.Text))
end;
 
// этот обработчик назначить всем едитам на форме
procedure TForm2.EditChange(Sender:TObject);
begin
  buttonOK.enabled:=isValid();
end;
 
procedure TForm2.SaveAll;
begin
      ADOQuery1.Insert;
      ADOQuery1.FieldByName('Ник').AsString:= sEdit1.Text;
      ADOQuery1.FieldByName('Город').AsString:= sEdit2.Text;
      if sRadioButton1.Checked then
        begin
          ADOQuery1.FieldByName('Пол').AsString:= 'м';
          ADOQuery1.FieldByName('Отношения').AsString:= sComboBox1.Text;
        end
      else
        begin
          ADOQuery1.FieldByName('Пол').AsString:= 'ж';
          ADOQuery1.FieldByName('Отношения').AsString:= sComboBox2.Text;
        end;
      ADOQuery1.FieldByName('Возраст').AsInteger:=StrToInt(sEdit3.Text);
      ADOQuery1.FieldByName('Профессия').AsString:= sEdit7.Text;
      ADOQuery1.FieldByName('Знак зодиака').AsString:= sComboBox3.Text;
      ADOQuery1.FieldByName('Рост').AsInteger:=StrToInt(sEdit4.Text);
      ADOQuery1.FieldByName('Вес').AsInteger:=StrToInt(sEdit5.Text);
      ADOQuery1.FieldByName('О себе').AsString:= sMemo1.Text;
      ADOQuery1.FieldByName('Цель знакомства').AsString:= sEdit8.Text;
      ADOQuery1.FieldByName('Номер телефона').AsString:= sEdit11.Text;
      ADOQuery1.FieldByName('Электронный адрес').AsString:= sEdit12.Text;
      ADOQuery1.FieldByName('Требования').AsString:= sMemo2.Text;
      ADOQuery1.FieldByName('Фото').AsString:= ExtractFileName(OpenPictureDialog1.FileName);
      ADOQuery1.FieldByName('Пароль').AsInteger:= StrToInt(sEdit10.Text);
      ADOQuery1.Post;
end;
примерно так
каждая процедура делает что-то одно
форма 2 создается и уничтожается ПО НЕОБХОДИМОСТИ и не болтается в памяти
форма 1 вызывает форму 2 и ПО НЕОБХОДИМОСТИ-2 сохраняет что-то или очищает
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.06.2017, 12:32
Помогаю со студенческими работами здесь

SQL - запросы
Что делать, если имя поля состоит из двух слов. На данную конструкцию делфи ругается: ...

SQL запросы и БД
Всем привет. Есть код делал его очень давно когда еще помнил SQL запросы. Вот суть есть форма на которой два dbgrita в ним фамилии и...

SQL запросы
Здравствуйте. Имеется база данных на Delphi с использованием adotable, adoquery. Мне нужно создать sql запрос к одной из форм, но с...

Запросы к бд ms sql
Работаю через dbExpress. Создаю обычный запрос select id from db where name=@name. Суть не в самом запросе, а в том как посмотреть...

SQL Запросы
Помогите пожалуйста написать правильно запрос SQL, так, чтобы в DBGrid показывал только ту информацию из баблицы, которую мне надо, вот код...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru