0 / 0 / 0
Регистрация: 21.04.2016
Сообщений: 16

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

24.04.2016, 20:33. Показов 1199. Ответов 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
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 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
5989 / 4564 / 1096
Регистрация: 29.08.2013
Сообщений: 28,207
Записей в блоге: 3
25.04.2016, 09:05
Цитата Сообщение от kopa-rus Посмотреть сообщение
Мне бы не хотелось переделывать код
Цитата Сообщение от kopa-rus Посмотреть сообщение
так как не очень хорошо знаю синтаксис, да и просто лень
Цитата Сообщение от kopa-rus Посмотреть сообщение
этот код работает,
Цитата Сообщение от kopa-rus Посмотреть сообщение
кроме 1 момента
то есть надо просто сказать где 1 поменять на 2 и у тебя все заработает?

представь что ты построил очень кривой дом и говоришь что все хорошо, дом то стоит. только вот дверь в подъезд не открывается.
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 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
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru