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

Вывод данных при авторизации в БД

24.04.2016, 20:33. Показов 1174. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста найти ошибку, авторизацию прохожу успешно, но при попытке передать на другую форму ФИО учётной записи, передаются ФИО последней записи в БД, а не той, под которой осуществлён вход

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
procedure TFormEnter.Button1Click(Sender: TObject);
var
LogPass:array of string;
I, H, Counst: integer;
Login, Password, LoginAndPassword: string;
begin
setLength(LogPass, 50);
if ((EditLogin.Text=('Admin')) and (EditPassword.Text=('qwerty')))  then
begin
FormEnter.Visible:=False;
FormAdmin.ShowModal;
FormEnter.Close;
end
else
FormBD.ADOTable1.First;
For I:=0 to FormBD.ADOTable1.RecordCount -1 do
begin
LogPass[I]:=FormBD.ADOTable1.FieldValues['Логин']+' '+FormBD.ADOTable1.FieldValues['Паполь'];
FormBD.ADOTable1.Next;
Inc(Counst);
end;
 
LoginAndPassword:=Trim(EditLogin.Text)+' '+Trim(EditPassword.Text);
For H:=0 to Counst do
begin
if LoginAndPassword = LogPass[H] then                                 //мне кажется ошибка где то в этом цикле, как перенести указатель БД с последнего на текущего??
begin
FormEnter.Visible:=False;
FormKlient.Show;
FormKlient.Label6.Caption:=FormBD.ADOTable1.FieldValues ['Фамилия']+' '+FormBD.ADOTable1.FieldValues['Имя']+' '+FormBD.ADOTable1.FieldValues['Отчество'];
 
end
else
Label4.Visible:=true;
EditLogin.Clear;
EditPassword.Clear;
end;
Подскажите где ошибка, знаю где то в цикле, но не пойму где и как установить указатель на текущую учётную запись в БД
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.04.2016, 20:33
Ответы с готовыми решениями:

Вывод сообщения при авторизации
нужно что-бы при неверном вводе выводило сообщение с ошибкой. проблема заключается в том что в моем коде сообщение выводится помимо...

Ввод данных при авторизации
Ребят, возник такой вопрос. При входе в прогу юзер вводит логин и пароль. Как сделать так, что бы после авторизации некоторые данные, в...

Безопасная передача данных при авторизации
Где безопаснее всего хранить данные при авторизации и регистрации?Нужно ли их кодировать?

6
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
24.04.2016, 20:56
Паполь - это так и должно быть?

тут какбы все не по-людски
массив из 50 строк - а если больше в базе, то что? а если меньше, то почему 50 а не 10 например, или 5 ??
возьмите StringList и не мучайтесь с массивом

цикл по датасету не должен быть for ... RecordCount
должно быть
Delphi
1
2
3
4
5
while not Dataset.Eof do
begin
 ...
  dataset.Next;
end;
For H:=0 to Counst do должно быть Counst-1

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

ну и совершенно невыносимая каша в коде - все вместе и визуальные компоненты и данные и действия
это не взлетит

алгоритм
1. скачать пары логин пароль в StringList
2. проверить есть ли в StringList'е (есть у него метод IndexOf) ваша пара логин/пароль
3. если есть - сделать это
4 иначе - сделать то

всё
0
0 / 0 / 0
Регистрация: 21.04.2016
Сообщений: 16
24.04.2016, 22:58  [ТС]
Мне бы не хотелось переделывать код, так как не очень хорошо знаю синтаксис, да и просто лень, этот код работает, кроме 1 момента, не берёт имя. Да я понимаю, что после цикла указатель стоит на последнем элементе, сможете подсказать, как взять имя нужной учётной записи? И да,ПАПОЛЬ это опечатка =)
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
25.04.2016, 09:05
Цитата Сообщение от kopa-rus Посмотреть сообщение
Мне бы не хотелось переделывать код
Цитата Сообщение от kopa-rus Посмотреть сообщение
так как не очень хорошо знаю синтаксис, да и просто лень
Цитата Сообщение от kopa-rus Посмотреть сообщение
этот код работает,
Цитата Сообщение от kopa-rus Посмотреть сообщение
кроме 1 момента
то есть надо просто сказать где 1 поменять на 2 и у тебя все заработает?

представь что ты построил очень кривой дом и говоришь что все хорошо, дом то стоит. только вот дверь в подъезд не открывается.
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
25.04.2016, 09:07
у вас логин пароль сохраняются в массиве, а ФИО нигде не сохраняется, поэтому взять его для вывода в label негде
а писать код за вас мне
Цитата Сообщение от kopa-rus Посмотреть сообщение
просто лень
ведь
Цитата Сообщение от kopa-rus Посмотреть сообщение
этот код работает
0
0 / 0 / 0
Регистрация: 21.04.2016
Сообщений: 16
27.04.2016, 10:44  [ТС]
Всё решилось, добавив после второго цикла
Delphi
1
2
FormBD.DBGrid1.DataSource.DataSet.Locate('Логин',Login,[loPartialKey]);
FormKlient.Label6.Caption:=FormBD.DBGrid1.DataSource.DataSet.Fields.Fields[1].Value+' '+FormBD.DBGrid1.DataSource.DataSet.Fields.Fields[2].Value+' '+FormBD.DBGrid1.DataSource.DataSet.Fields.Fields[3].Value;
Может когда нибудь мне подскажут на этом форуме, а не скажу - "Так непишут, так не правильно!!", может когда нибудь.... Тему можно закрывать
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
27.04.2016, 11:19
тебе подсказали, что надо делать не так
если хочешь, можешь игнорировать такие подсказки, но это дорога в обе стороны
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.04.2016, 11:19
Помогаю со студенческими работами здесь

Сохранение данных из форм в .txt при авторизации
Добрый день друзья. Есть форма авторизации за сайте <form method=post name=mainform onsubmit="return checkform()"> ...

Ошибка пароля при авторизации базы данных
Всем добрый день, есть база данных "автолюбители", также есть форма авторизации, всё работает но есть одно но, когда вводится не правильный...

Повторять процедуру авторизации в консоли при неверно введенных данных
День добрый, Заранее прошу извинения если вопрос задан глупо так как я новечек в програмировании и мало в чем разбераюсь. У меня...

Код PHP не берёт данные из базы данных, при авторизации всегда выдаёт прописанную ошибку "Неверный логин или пароль"
<head> <meta charset="UTF-8"> <title>QestBar</title> </head> <?php require...

Вывод значения из запроса авторизации
Добрый день. Ситуация следующая. Пытаюсь сделать форму авторизации. В качестве БД используется mysql, в которой есть таблица users,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
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 и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru