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

Как сделать, чтобы вышло диалоговое окно с надписью 'Такой пользователь уже существует'

18.06.2016, 21:13. Показов 1270. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
я бы хотел бы сделать после поиска соответствующих логинов в поле UserName, вывести в label: если есть совпадение с надписью "Такой пользователь уже существует", а если нет то "этот логин свободен"
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm10.BitBtn1Click(Sender: TObject);
begin
if (edit1.Text <> '') and (edit2.Text <> '') then
begin
Adoquery1.Parameters.ParamByName('RegUserName').Value:=Edit1.Text;
Adoquery1.Parameters.ParamByName('RegUserPassword').Value:=Edit2.Text;
Adoquery1.Parameters.ParamByName('RegUserPasswordRetry').Value:=Edit3.Text;
Adoquery1.Parameters.ParamByName('RegSurname').Value:=Edit4.Text;
Adoquery1.Parameters.ParamByName('RegName').Value:=Edit5.Text;
Adoquery1.Parameters.ParamByName('RegNumberPasport').Value:=Edit6.Text;
Adoquery1.ExecSQL;
end;
end;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.06.2016, 21:13
Ответы с готовыми решениями:

Как в базе данных, в запросе сделать так, чтобы пользователь вводил даты, и если такой даты нету, то выводило окно "тако
Как в базе данных, в запросе сделать так, чтобы пользователь вводил даты, и если такой даты нету, то выводило окно &quot;такой даты нет,...

Как сделать, чтобы диалоговое окно не закрывалось при нажатии клавиши ENTER?
Как сделать, чтобы диалоговое окно не закрывалось при нажатии клавиши ENTER? (если можно то, код)

Как сделать чтобы при нажатии на кнопку открывалось второе диалоговое окно? (MFC)
Как сделать чтобы при нажатии на кнопку открывалось второе диалоговое окно ( в MFC )??

13
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
18.06.2016, 22:29
Цитата Сообщение от Daniyarcfc Посмотреть сообщение
ExecSQL;
а где сам SQL ?
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
18.06.2016, 22:55
Предположу что это у вас на добавление запрос, тогда по вашему плану сначала надо сделать запрос на выборку и при удаче уже потом делать запрос на добавление.
0
1 / 1 / 0
Регистрация: 10.05.2015
Сообщений: 133
19.06.2016, 07:35  [ТС]
krapotkin, в Adoquery.SQL написал

Добавлено через 2 минуты
Пытливый, неа вход все работает, но вот диалоговое окно или label ставлю, они когда авторизация успешно проходит или неправильный пароль он все равно выходит(диалоговое окно)
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
19.06.2016, 17:00
в приведенном коде нет ничего из того, о чем вы говорите
0
1 / 1 / 0
Регистрация: 10.05.2015
Сообщений: 133
19.06.2016, 17:11  [ТС]
krapotkin, INSERT INTO Users (Username, Userpass, UserPassRetry, Surname, Name, NumberPasport) VALUES(:RegUserName, :RegUserPassword, :RegUserPasswordRetry, :RegSurname, :RegName, :RegNumberPasport)
в свойство SQL написал)

Добавлено через 1 минуту
https://www.youtube.com/watch?v=GK54lgpUbmU с помощью этого видеоролика сделал, у него такой же фэйл происходит, если посмотрите все поймете.
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
19.06.2016, 17:55
Прежде чем добавить пользователя, надо проверить наличие его в БД. Делается это либо уникальным индексом, что идеологически более правильно, либо запросом:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
Adoquery1.SQL.Text := 'select * from Users where Username=:RegUserName and Userpass=:RegUserPassword';
Adoquery1.Parameters.ParamByName('RegUserName').Value:=Edit1.Text;
Adoquery1.Parameters.ParamByName('RegUserPassword').Value:=Edit2.Text;
Adoquery1.Open;
if Adoquery1.isEmpty 
then begin
      Adoquery1.SQL.Text := 'INSERT INTO Users (Username, Userpass, UserPassRetry, Surname, Name, NumberPasport) VALUES(:RegUserName, :RegUserPassword, :RegUserPasswordRetry, :RegSurname, :RegName, :RegNumberPasport)';
      Adoquery1.Parameters.ParamByName('RegUserName').Value:=Edit1.Text;
      Adoquery1.Parameters.ParamByName('RegUserPassword').Value:=Edit2.Text;
      ...
      Adoquery1.ExecSQL;
      end
else ShowMessage('Такой пользователь уже существует');
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
19.06.2016, 18:36
индекс +1
но запрос тоже не лишний

как всегда, замечу, что либо нужно раз установить и оставить SQL в покое, и пользоваться параметрами
либо параметры абсолютно излишни и можно просто собирать SQL строку
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
19.06.2016, 18:45
Не соглашусь, всему свое место. Бывает запрос который просто запаришься собирать без параметров, а бывает, что запаришься с параметрами делать - проще собрать.
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
19.06.2016, 18:51
в данном случае для собрать используется функция format()
если мы делаем параметры, то
сначала на сервер пересылается запрос
потом отдельно параметры к нему
зачем?
0
1 / 1 / 0
Регистрация: 10.05.2015
Сообщений: 133
20.06.2016, 17:31  [ТС]
Пытливый, ваш код не работает, все равно создает существующий логин
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
20.06.2016, 19:22
Пытливый, ваш код не работает, все равно создает существующий логин
Если только есть чувствительность к регистру, тогда вполне возможно, а иначе не должно.
Как применяете? Покажите свою вариацию.
0
1 / 1 / 0
Регистрация: 10.05.2015
Сообщений: 133
20.06.2016, 19:25  [ТС]
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
procedure TForm10.BitBtn1Click(Sender: TObject);
begin
if (edit1.Text <> '') and (edit2.Text <> '') then
begin
{Adoquery1.Parameters.ParamByName('RegUserName').Value:=Edit1.Text;
Adoquery1.Parameters.ParamByName('RegUserPassword').Value:=Edit2.Text;
Adoquery1.Parameters.ParamByName('RegUserPasswordRetry').Value:=Edit3.Text;
Adoquery1.Parameters.ParamByName('RegSurname').Value:=Edit4.Text;
Adoquery1.Parameters.ParamByName('RegName').Value:=Edit5.Text;
Adoquery1.Parameters.ParamByName('RegNumberPasport').Value:=Edit6.Text;
Adoquery1.ExecSQL;}
Adoquery1.SQL.Text := 'select * from Users where Username=:RegUserName and Userpass=:RegUserPassword';
Adoquery1.Parameters.ParamByName('RegUserName').Value:=Edit1.Text;
Adoquery1.Parameters.ParamByName('RegUserPassword').Value:=Edit2.Text;
Adoquery1.Open;
if Adoquery1.isEmpty
then begin
      Adoquery1.SQL.Text := 'INSERT INTO Users (Username, Userpass, UserPassRetry, Surname, Name, NumberPasport) VALUES(:RegUserName, :RegUserPassword, :RegUserPasswordRetry, :RegSurname, :RegName, :RegNumberPasport)';
      Adoquery1.Parameters.ParamByName('RegUserName').Value:=Edit1.Text;
      Adoquery1.Parameters.ParamByName('RegUserPassword').Value:=Edit2.Text;
      Adoquery1.Parameters.ParamByName('RegUserPasswordRetry').Value:=Edit3.Text;
      Adoquery1.Parameters.ParamByName('RegSurname').Value:=Edit4.Text;
      Adoquery1.Parameters.ParamByName('RegName').Value:=Edit5.Text;
      Adoquery1.Parameters.ParamByName('RegNumberPasport').Value:=Edit6.Text;
      Adoquery1.ExecSQL;
      end
else ShowMessage('Такой логин уже существует!');
end;
form10.Close;
form9.Show;
end;
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
20.06.2016, 22:04
ну так читайте что написано
ищем записи где вот такой логин И вот такой пароль
Цитата Сообщение от Daniyarcfc Посмотреть сообщение
where Username=:RegUserName and Userpass=:RegUserPassword
а вас интересует только логин
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.06.2016, 22:04
Помогаю со студенческими работами здесь

Как сделать так чтобы диалоговое окно закрывалось через определенный промежуток времени?
Как сделать так что бы диалоговое окно закрывалось через определенный промежуток времени ? К примеру я нажал на кнопку и через диалоговое...

OC Windows, как сделать так, чтобы при запуске процесса, он убивался, если уже такой процесс есть?
Ну то есть экзешник должен выполняться в оси в единственном экземпляре, как сие реализовать ГРАМОТНО? По-простому-то я сделаю. Я в крайнем...

Напишите программу, выводящую диалоговое окно с надписью True, если указанное высказывание является истинным
Напишите программу, выводящую диалоговое окно с надписью True, если указанное высказывание является истинным, и значение False – в...

Как сделать чтобы при нажатии на кнопку пользователь переходил в следующее окно программы
Как сделать чтобы при нажатии на кнопку пользователь переходил в следующее окно программы(чтобы окно выскакивало не как дополнительное а...

Как отключить окно с такой надписью: "Microsoft Office Word - обнаружена ошибка. Приложение будет закрыто"?
Дело в том, что оно возникает после закрытия документа и это предупреждение мне совсем не нужно ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru