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

Вывод ФИО пользователя(который авторизировался) в DBLookupComboBox

14.08.2019, 17:58. Показов 3294. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, подскажите пожалуйста. Есть форма авторизации, проверяю так:
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
var
k: boolean;
begin
    DM.Users.Active:=True;
  DM.Users.First;
  k:= false;
    while not DM.Users.Eof do begin
    if DM.Users.FieldByName('login').Value=RzEdit1.Text then
      if DM.Users.FieldByName('Password').Value=RzEdit2.Text then begin
        k:=true;
      end;
    DM.Users.Next;
  end;
  if k then begin
    Timer1.Enabled:=True;
    cxProgressBar1.Visible:=True;
    rzLabel1.Visible:=true;
    With cxProgressBar1 do
    Begin cxProgressBar1.Position:=Position+1;
   if Position<>Properties.Max Then begin rzlabel1.font.color:=clred; rzLabel1.Caption:='Выполняется загрузка БД...' ;
   form1.RzBitBtn1.Enabled:=False;
   end;
   if Position=Properties.Max then
   begin
   form1.RzBitBtn1.Enabled:=TRUE;
   end;
   end;
 end
  else ShowMessage('Неверный логин или пароль.Обратитесь к администратору!');
end;
ФИО всех пользователей вывожу в DBLookupComboBox, SQL :
SQL
1
SELECT id_users, name&" "&surname&" "&patronymic AS ФИО, login, password FROM users
, проблема заключается в том, что при открытии формы - DBLookupComboBox пустой, приходится нажимать на кнопку чтобы выбрать ФИО пользователя, как сделать чтобы DBLookupComboBox при открытии формы отображал ФИО в зависимости от того, кто авторизировался?
Изображения
    
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.08.2019, 17:58
Ответы с готовыми решениями:

Как сделать подтверждение ручным вводом в edit-ы выбранной фио из dblookupcombobox?
Имеется dblookupcombobox с Фамилия Имя Отчество, и пустые edit1 edit2 edit3 Как сделать...

Определите функцию, печатающую ФИО в строку, а вывод ФИО в столбец
Доброе время суток, прошу помочь в написании программы. Задание: Определите функцию ,...

ФИО пользователя учетной записи
Добрый день! Подскажите как выцепить ФИО пользователя из учетной записи. Environ возвращает логин...

ФИО пользователя в поле формы
Всем здравствуйте! 1с-Bitrix корпоративный портал Создал новую страницу, на ней форма с двумя...

26
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
14.08.2019, 23:09 2
1. а зачем вам вообще DBLookupComboBox ???
это компонент, который по коду из одной таблицы выводит поле из таблицы-справочника

2. зачем тянуть сначала всех пользователей в программу, а потом перебором все проверять?
Это работа сервера. Вы ему запрос с нужными условиями, он вам - ответ.

3. И еще немного рассуждений про форму логина

4. строки с 14 по 26 вообще не понимаю что там происходит. На экране - точно ничего))
0
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 155
15.08.2019, 13:28  [ТС] 3
krapotkin, я буду очень благодарен, если вы покажете как это сделать - правильно)
0
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
15.08.2019, 21:30 4
для решения задачи нужно две вещи
"дано" и "требуется"
0
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 155
25.08.2019, 16:51  [ТС] 5
krapotkin,почитал Про форму логина у меня есть Главная форма(TForm2) и форма авторизации(TForm1), далее делаю по вашему совету:
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
58
59
60
61
62
63
64
65
66
67
unit Unit3;
 
interface
 
uses
  classes, types, forms, Controls, StdCtrls, Dialogs, SysUtils;
 
type
   TForm2 = class(TForm)
  private
    procedure CheckLogin;
    function LoginCorrect(login, pass: String): Boolean;
  public
    constructor Create(AOwner: TComponent); override;
  end;
 
var
  Form2: TForm2;
 
implementation
 
uses
  Unit1;
 
 
{$R *.dfm}
 
function TForm2.LoginCorrect(login,pass:String):Boolean;
begin
  result := true;
end;
 
procedure TForm2.CheckLogin();
var
  f:TForm1;
  r:TModalResult;
begin
  f:=TForm1.Create(NIL);
  try
    repeat
      r:=f.ShowModal;
      if r=mrOk then
      begin
        // придумаем функцию LoginCorrect() которая возвращает нам True или False
        // откуда она берет эти данные, из базы или файла или придумывает сама, нам все равно
        if LoginCorrect(f.Edit1.text, f.Edit2.text) then
          Break
      end;
    until r=mrCancel;
    if r=mrCancel then
    begin
      ShowMessage('Отказ от авторизации. Программа завершает свою работу.');
      Application.Terminate();
      Abort;
    end;
  finally
    f.free;
  end;
end;
 
constructor TForm2.Create(AOwner: TComponent);
begin
  inherited;
  CheckLogin;
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, Forms, StdCtrls, Classes, Controls;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
 
implementation
 
{$R *.dfm}
 
end.
Вопрос: Естественно по нажатию на кнопку "Ok" - ничего не происходит. Как сделать так чтобы проверка логина и пароля шла из БД (Табл - Users, Поля- login,password) и после чего ФИО пользователя, который авторизовался была на "первом" месте в списке ComboBox?
0
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
25.08.2019, 21:24 6
Цитата Сообщение от kikaa Посмотреть сообщение
по нажатию на кнопку "Ok" - ничего не происходит
Эмм. Не совсем так. В статье написано, что кнопкам нужно не забыть заполнить свойство ModalResult, тогда при нажатии на Ок она должна как минимум закрыться и программа перейдет к функции LoginCorrect

Цитата Сообщение от kikaa Посмотреть сообщение
Как сделать так чтобы проверка логина и пароля шла из БД
тоже процитирую
// придумаем функцию LoginCorrect() которая возвращает нам True или False
// откуда она берет эти данные, из базы или файла или придумывает сама, нам все равно
if LoginCorrect(f.Edit1.text, f.Edit2.text) then

предполагается что мы тут не рассказываем как в делфи подключиться к БД и делать в нее запросы.
ну и что у вас за БД я без понятия
накрайняк, я писал про это тут https://www.cyberforum.ru/blog... g5254.html
поэтому +- кактотак
Delphi
1
2
3
4
5
6
7
8
9
function TForm2.LoginCorrect(login,password:string):boolean;
begin
  Query1.Sql.text := 'select ........ from users u where u.login=:login and u.password=:password';
  Query1.Parameters.ParamByName('login').Value := login;
  Query1.Parameters.ParamByName('password').Value := password;
  Query1.Open;
  result := not Query1.eof;
  Query1.Close;
end;
Цитата Сообщение от kikaa Посмотреть сообщение
ФИО пользователя, который авторизовался была на "первом" месте в списке ComboBox?
абсолютно отдельный вопрос, вне тем про пользователей, БД и т.д.
"как мне поместить свою строку первой в комбобокс?"
Delphi
1
combo.items.insert(0, 'моя строка');
0
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 155
25.08.2019, 22:04  [ТС] 7
krapotkin, сделал так:
Delphi
1
2
3
4
5
6
7
8
9
function TForm2.LoginCorrect(login,password:String):Boolean;
  begin
  DM.Users.sql.text := 'SELECT id_users, name&" "&surname&" "&patronymic AS ФИО, login, password  from users u where u.login=:login and u.password=:password';
  DM.Users.Parameters.ParamByName('login').Value := login;
  DM.Users.Parameters.ParamByName('password').Value := password;
  DM.Users.Open;
  result := not DM.Users.eof;
  DM.Users.Close;
end;
Если ввожу верный логин и пароль, то форма авторизации мигает, после чего, что бы я не нажимал - ничего не происходит, как сделать чтобы всё таки открывалась главная форма при вводе верного логина и пароля ?
0
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
26.08.2019, 07:37 8
для этого берем в руки отладчик
https://habrahabr.ru/post/178007/
ставим прерывание на строке 8
и, раз за разом нажимая F8, трассируем программу и проверяем значения переменных

потому что если логин/пароль верный, то значение Result = true
поэтому программа выйдет на Break в строке 47 первого листинга и далее в два шага выйдет из CheckLogin
если у вас этого не происходит, значит, где-то обман...
0
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 155
26.08.2019, 09:19  [ТС] 9
krapotkin,
Delphi
1
2
3
4
5
6
7
8
9
10
function TForm2.LoginCorrect(login,password:String):Boolean;
  begin
  DM.Users.sql.text := 'SELECT id_users, name&" "&surname&" "&patronymic AS ФИО, login, password  from users u where u.login=:login and u.password=:password';
  DM.Users.Parameters.ParamByName('login').Value := login;
  DM.Users.Parameters.ParamByName('password').Value := password;
  DM.Users.Open;
  result := not DM.Users.eof;
  exit;
  DM.Users.Close;
end;
после ввода верного логина и пароля по нажатию кнопки ok, отладчик останавливается на Application.CreateForm(TForm3, Form3);(визуально ничего не происходит,форма не открывается) при повторном нажатии f8 дойдя до Application.Run; снова открывается форма авторизации(тут уже ни одна из кнопок не работает).
0
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
26.08.2019, 19:31 10
ну же прямо классика. КМБУ )))
откуда, простити, появилась Application.CreateForm(TForm3, Form3)
ее вроде не было в вопросе?

в той же статье есть ссылка на рассуждения про AutoCreate...

давайте уберем все лишнее из AutoCreate, оставим TForm2, а еще переименуем ее как-то чтобы у меня глаза кровью не плакали, например TMainForm !
и прямо сразу понятно чо как...

а как только справимся с первым шагом и все заработает, начнем создавать другие формы, в тот момент, когда они реально нужны...
0
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 155
28.08.2019, 15:58  [ТС] 11
krapotkin, ok, создал главную форму(TMainForm):
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
unit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
 
type
  TMainForm = class(TForm)
  private
    { Private declarations }
    procedure CheckLogin;
    function LoginCorrect(login, pass: String): Boolean;
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override;
  end;
 
var
  MainForm: TMainForm;
 
implementation
 
{$R *.dfm}
 
uses Unit2, Unit3;
function TMainForm.LoginCorrect(login,pass:String):Boolean;
  begin
  DM.Users.sql.text := 'SELECT id_users, name&" "&surname&" "&patronymic AS ФИО, login, password  from users u where u.login=:login and u.password=:pass';
  DM.Users.Parameters.ParamByName('login').Value := login;
  DM.Users.Parameters.ParamByName('password').Value := pass;
  DM.Users.Open;
  result := not DM.Users.eof;
  exit;
  DM.Users.Close;
end;
procedure TMainForm.CheckLogin();
var
  f:TLoginForm;
  r:TModalResult;
begin
  f:=TLoginForm.Create(NIL);
  try
    repeat
      r:=f.ShowModal;
      if r=mrOk then
      begin
        // придумаем функцию LoginCorrect() которая возвращает нам True или False
        // откуда она берет эти данные, из базы или файла или придумывает сама, нам все равно
        if LoginCorrect(f.Edit1.text, f.Edit2.text) then
          Break
      end;
    until r=mrCancel;
    if r=mrCancel then
    begin
      ShowMessage('Отказ от авторизации. Программа завершает свою работу.');
      Application.Terminate();
      Abort;
    end;
  finally
    f.free;
  end;
end;
 
constructor TMainForm.Create(AOwner: TComponent);
begin
  inherited;
  CheckLogin;
end;
 
end.
Форму логина(TLoginForm):
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
unit Unit2;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
 
type
  TLoginForm = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  LoginForm: TLoginForm;
 
implementation
 
{$R *.dfm}
 
end.
Для подключения к БД DataModule(DM):
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
unit Unit3;
 
interface
 
uses
  System.SysUtils, System.Classes, Data.DB, Data.Win.ADODB;
 
type
  TDM = class(TDataModule)
    ADOConnection1: TADOConnection;
    Users: TADOQuery;
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  DM: TDM;
 
implementation
 
{%CLASSGROUP 'Vcl.Controls.TControl'}
 
{$R *.dfm}
 
end.
Компилирую всё это, после нажатия кнопки OK выскакивает непонятная ошибка: Ошибка: Exception EAccessViolation in module. Сам проект прикладываю.
Вложения
Тип файла: rar Форма авторизации.rar (2.75 Мб, 7 просмотров)
0
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
29.08.2019, 22:04 12
1. сразу при открытии опять про Auto-Create. третий раз

2. следующая тема - строку подключения к базе нужно формировать программно:
Путь к БД

3. параметр в запросе называется pass, а в коде устанавливается password

4. не знаю, для чего в loginCorrect вы вписали Exit

теперь все работает
отладчик рулит
Миниатюры
Вывод ФИО пользователя(который авторизировался) в DBLookupComboBox   Вывод ФИО пользователя(который авторизировался) в DBLookupComboBox  
Вложения
Тип файла: rar Форма авторизации.rar (2.93 Мб, 4 просмотров)
1
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 155
30.08.2019, 19:33  [ТС] 13
krapotkin, Спасибо большое, хотел бы ещё у Вас спросить. Я тут же прописываю код для вывода ФИО пользователя в combobox, который прошёл авторизацию - это работает(но выводится естественно одна запись , исходя из sql запроса), но хотелось бы чтобы при открытии списка combobox выводились и другие пользователи(ФИО),которые есть в БД, но первая запись была именно авторизованного пользователя, вот мой код, гляньте пожалуйста если не сложно:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function TMainForm.LoginCorrect(login,pass:String):Boolean;
  begin
  DM.Users.sql.text := 'SELECT id_users, name&" "&surname&" "&patronymic AS ФИО, login, password  from users u where u.login=:login and u.password=:pass';
  DM.Users.Parameters.ParamByName('login').Value := login;
  DM.Users.Parameters.ParamByName('pass').Value := pass;
  DM.Users.Open;
  result := not DM.Users.eof;
  while not DM.Users.eof do begin
  rzcombobox1.items.add(DM.Users.fieldbyname('ФИО').asstring);
  rzcombobox1.ItemIndex:=0;
  DM.Users.next;
  DM.Users.Close;
  end;
  end;
0
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
30.08.2019, 21:35 14
12 и 13 строки местами поменяйте, а то глупость...

у вас функция называется loginCorrect
никакие комбобоксы к ней не должны иметь ни малейшего отношения
хотите сделать действие - сделайте его
напишите метод FillUsersCombo();
там сначала добавьте этого пользователя, потом всех остальных
это не единственный вариант, но зато точно рабочий
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
procedure TForm1.FillUsersCombo();
begin
DM.Users.sql.text := 'SELECT id_users, name&" "&surname&" "&patronymic AS ФИО, login, password  from users u where u.login=:login and u.password=:pass';
  DM.Users.Parameters.ParamByName('login').Value := login;
  DM.Users.Parameters.ParamByName('pass').Value := pass;
  DM.Users.Open;
  result := not DM.Users.eof;
  while not DM.Users.eof do 
  begin
  rzcombobox1.items.add(DM.Users.fieldbyname('ФИО').asstring);
  DM.Users.next;
  end;
DM.Users.Close;
DM.Users.sql.text := 'SELECT id_users, name&" "&surname&" "&patronymic AS ФИО, login, password  from users u where u.login<>:login and u.password<>:pass';
  DM.Users.Parameters.ParamByName('login').Value := login;
  DM.Users.Parameters.ParamByName('pass').Value := pass;
  DM.Users.Open;
  result := not DM.Users.eof;
  while not DM.Users.eof do 
  begin
  rzcombobox1.items.add(DM.Users.fieldbyname('ФИО').asstring);
  DM.Users.next;
  end;
DM.Users.Close;
  
end;
0
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 155
30.08.2019, 22:17  [ТС] 15
krapotkin, Срабатывает только вторая часть кода, выводится весь список по порядку, как расположен в БД.
0
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
31.08.2019, 07:45 16
ну, для начала, этот код, т.к. я его просто копипастом, на коленке писал, вообще не должен компилироваться
нужно убрать строки 7 и 18, т.к. в процедуре нет result, и добавить параметры login и pass аналогично function loginCorrect()

а по вопросу
вы вообще отладчиком пользуетесь ??
заходит программа в 10-ю строку или нет?

если у вас LoginCorrect работает, то здесь тот же самый код.
значит, в строке 10 найденный юзер добавится в rzcombobox1
0
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 155
02.09.2019, 22:37  [ТС] 17
krapotkin,
Цитата Сообщение от krapotkin Посмотреть сообщение
в процедуре нет result
, ну тут я догадался,
Цитата Сообщение от krapotkin Посмотреть сообщение
вы вообще отладчиком пользуетесь ??
заходит программа в 10-ю строку или нет?
сейчас пытаюсь пользоваться, к сожалению не заходит , доходит до
Delphi
1
while not DM.Users.eof do
дальше перескакивает две строки(как раз на вывод) :
Delphi
1
2
rzcombobox1.items.add(DM.Users.fieldbyname('ФИО').asstring);
DM.Users.next;
после DM.Users.Close и уходит на следующий запрос, сам не могу ещё разобраться.Почему именно не заходит?
Вот код:
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
procedure TMainForm.FillUsersCombo();
var
login: String;
pass: String;
begin
DM.Users.sql.text := 'SELECT id_users, name&" "&surname&" "&patronymic AS ФИО, login, password  from users u where u.login=:login and u.password=:pass';
  DM.Users.Parameters.ParamByName('login').Value := login;
  DM.Users.Parameters.ParamByName('pass').Value := pass;
  DM.Users.Open;
  while not DM.Users.eof do
  begin
  rzcombobox1.items.add(DM.Users.fieldbyname('ФИО').asstring);
  DM.Users.next;
  end;
DM.Users.Close;
DM.Users.sql.text := 'SELECT id_users, name&" "&surname&" "&patronymic AS ФИО, login, password  from users u where u.login<>:login and u.password<>:pass';
  DM.Users.Parameters.ParamByName('login').Value := login;
  DM.Users.Parameters.ParamByName('pass').Value := pass;
  DM.Users.Open;
  while not DM.Users.eof do
  begin
  rzcombobox1.items.add(DM.Users.fieldbyname('ФИО').asstring);
  DM.Users.next;
  end;
DM.Users.Close;
end;
Добавлено через 3 часа 20 минут
krapotkin, И подскажите ещё пожалуйста на счёт формы авторизации, что надо добавить, чтобы при закрытии главной формы, открывалась форма авторизации
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
procedure TMainForm.CheckLogin();
var
  f:TLoginForm;
  r:TModalResult;
begin
  f:=TLoginForm.Create(NIL);
  try
    repeat
      r:=f.ShowModal;
      if r=mrOk then
      begin
        // придумаем функцию LoginCorrect() которая возвращает нам True или False
        // откуда она берет эти данные, из базы или файла или придумывает сама, нам все равно
        if LoginCorrect(f.Edit1.text, f.Edit2.text) then
          Break
          else
          f.rzStatusBar1.SimpleCaption:='Неверный логин или пароль!';
      end;
    until r=mrCancel;
    if r=mrCancel then
    begin
      ShowMessage('Отказ от авторизации. Программа завершает свою работу.');
      Application.Terminate();
      Abort;
    end;
  finally
    f.Free;
  end;
end;
0
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 155
03.09.2019, 21:52  [ТС] 18
krapotkin, хотя , если сделать так, то всё работает
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
function TMainForm.LoginCorrect(login,pass:String):Boolean;
  begin
  DM.Users.sql.text := 'SELECT id_users, name&" "&surname&" "&patronymic AS ФИО, login, password  from users u where u.login=:login and u.password=:pass';
  DM.Users.Parameters.ParamByName('login').Value := login;
  DM.Users.Parameters.ParamByName('pass').Value := pass;
  DM.Users.Open;
  result := not DM.Users.eof;
  begin
  rzcombobox1.items.add(DM.Users.fieldbyname('ФИО').asstring);
  DM.Users.next;
  end;
  DM.Users.next;
  DM.Users.Close;
  DM.Users.sql.text := 'SELECT id_users, name&" "&surname&" "&patronymic AS ФИО, login, password  from users u where u.login<>:login and u.password<>:pass';
  DM.Users.Parameters.ParamByName('login').Value := login;
  DM.Users.Parameters.ParamByName('pass').Value := pass;
  DM.Users.Open;
  while not DM.Users.eof do
  begin
  rzcombobox1.items.add(DM.Users.fieldbyname('ФИО').asstring);
  DM.Users.next;
  end;
DM.Users.Close;
end;
0
5786 / 4528 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
03.09.2019, 22:23 19
Цитата Сообщение от kikaa Посмотреть сообщение
login: String;
pass: String;
begin
DM.Users.sql.text := 'SELECT id_users, name&" "&surname&" "&patronymic AS ФИО, login, password *from users u where u.login=:login and u.password=:pass';
DM.Users.Parameters.ParamByName('login').Value := login;
DM.Users.Parameters.ParamByName('pass').Value := pass;
потому что тут login и pass - не параметры а обычные локальные переменные
при этом никто туда ничего не записал
там просто мусор
0
0 / 0 / 0
Регистрация: 24.04.2017
Сообщений: 155
05.09.2019, 03:05  [ТС] 20
krapotkin, спасибо, тут понятно. И подскажите ещё пожалуйста на счёт формы авторизации, что надо добавить, чтобы при закрытии главной формы, открывалась снова форма авторизации. Ещё заметил один "недостаток" при открытии Главной формы, форма открывается на заднем плане windows окон.
0
05.09.2019, 03:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.09.2019, 03:05
Помогаю со студенческими работами здесь

Получить ФИО пользователя компьютера
Как получить ФИО пользователя? Например, логин юзера ivanov_ii, а в меню пуск написано Иванов Иван...

Можно ли использовать в качестве домашней директории пользователя каталог, который отличается от имени пользователя?
Сори, но не в тот раздел написал, Имеется вопрос: Можно ли использовать в качестве домашней...

скрипт, который бы распозновал ай пи поситителя или через таблицу днс провайдера местонахождение пользователя который зашел на страничку
Есть ли такой скрипт, который бы распозновал ай пи поситителя или через таблицу днс провайдера...

Нужен простейший php скрипт, который выводит ip. днс,маску и шлюз того пользователя который находится на странице
Нужен простейший php скрипт, который выводит ip. днс,маску и шлюз того пользователя который...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru