Topic: проблемы с MySQL
Добрый день, столкнулся с такой проблемой, сделал разграничения по логинам ( 3 разных типа групп), нужно чтобы при разных группах были видимы или не видимы некоторые кнопки, в версии с SQLLite все работает как надо, при подключении базы через MySQL работает только для для группы admin, а для teradmin распростроняется на всех пользователей.
Проэкт приложить не могу архив весит 4,3 Мб, ваш сервер выдает "Выбранный файл слишком велик. Сервер отклонил загрузку."
sUser: string = '';
idUPF: integer;
procedure Start_OnShow (Sender: string; Action: string);
begin
Start.Pas.PasswordChar := '*';
end;
procedure Form1_OnClose (Sender: string; Action: string);
begin
Start.Close;
end;
procedure MemUser (Sender: string; var Key: Word; Shift, Alt, Ctrl: boolean);
begin
DobUser.Key.Text:= StrToMD5(DobUser.AddPas.Text);
end;
procedure Start_bLogin_OnClick (Sender: string; var Cancel: boolean);
var
sHash: string;
s: string;
begin
//
// SQL query get hash of password
sHash := VarToStr( SQLExecute('SELECT Password FROM BEZOP WHERE (Login = ''' + Start.Login.Text + ''');') );
// if the hash in the database = hash of entered a password
if sHash = StrToMD5(Start.Pas.Text) then//
begin
sUser := Start.Login.Text; // Запомнить имя пользователя
Form1.TableSr.dbPopupMenu.Items.Items[0].Enabled := False;// отключение двойного клика в таблице на Form1
// Administrator?
// check admin rights
// Кнопки видимые только для администратора, и терадминистратора
s := VarToStr( SQLExecute('SELECT `admin` FROM BEZOP WHERE (login = ''' + sUser + ''');') );
if s='0' then Form1.Custom.Visible:=False;
s := VarToStr( SQLExecute('SELECT `teradmin` FROM BEZOP WHERE (login = ''' + sUser + ''');') );
if s='0' then Form1.RedakPr.Visible:=False;
s := VarToStr( SQLExecute('SELECT `teradmin` FROM BEZOP WHERE (login = ''' + sUser + ''');') );
if s='0' then Form1.UdalitPr.Visible:=False;
s := VarToStr( SQLExecute('SELECT `teradmin` FROM BEZOP WHERE (login = ''' + sUser + ''');') );
if s='0' then Form1.Import.Visible:=False;
s := VarToStr( SQLExecute('SELECT `teradmin` FROM BEZOP WHERE (login = ''' + sUser + ''');') );
if s='0' then Form1.UpfSr.Visible:=False;
s := VarToStr( SQLExecute('SELECT `teradmin` FROM BEZOP WHERE (login = ''' + sUser + ''');') );
if s='0' then RabotaSPredp.DelEv.Visible:=False;
// if the user does not have administrator privileges, deactivate the button to create other users
idUPF := SQLExecute('SELECT IFNULL(id_UPF, 0) FROM BEZOP WHERE (login = ''' + sUser + ''');');
// hide records for manager who from another departament
if (idUPF<>0) then Form1.TableSr.dbFilter := 'id_UPF='+IntToStr(idUPF);
Form1.Caption := 'Пользователь: ' + sUser; // отображение имя пользователя на форме 1
Start.Hide; // close login form
Form1.Show; //показать Form 1
end
else MessageDlg('Неверно введен логин или параль', mtError, mbOk, 0); // Сообщение при неверном логине и пароле
end;