Topic: Подскажите пож что это за ошибка.
https://www.dropbox.com/s/dvxpn8bdrbhzm … 6.png?dl=0
Создаю свое пункт меню "О Программе" и окно с информацией.
My Visual Database → Russian → Подскажите пож что это за ошибка.
https://www.dropbox.com/s/dvxpn8bdrbhzm … 6.png?dl=0
Создаю свое пункт меню "О Программе" и окно с информацией.
У вас дважды объявлена переменная или другой идентификатор. Точнее сказать сложно, не видя кода.
Один раз я так думаю она обьявляется в правах пользователя др в ABOUT. Подскажите как корректно убрать.
var
sUser: string = '';
idUser: integer;
isAdmin: boolean = False;
procedure frmLogin_bLogin_OnClick (Sender: string; var Cancel: boolean);
var
s: string;
begin
// SQL-запрос на регистрацию пользователя и пароль
s := SQLExecute('SELECT count(id) FROM users WHERE (id = ''' + IntToStr(frmLogin.cbLogin.dbItemID) + ''') AND (password = ''' + frmLogin.edPassword.Text + ''');');
// SQL-запрос найден логин и пароль
if (s <> '0') and (s<>'') then
begin
sUser := frmLogin.cbLogin.Text; // запомнить имя пользователя
idUser := frmLogin.cbLogin.dbItemID; // запомнить идентификатор пользователя в базе
// Administrator?
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.bUsers.Visible:=False;
FormGlavn.Caption := 'User: ' + sUser;
frmLogin.Close; // Закрыть главную форму
end else MessageDlg('Некорректный пароль', mtError, mbOk, 0); // сообщение если неверный пароль
end;
// мероприятия закрытия окна для входа
procedure frmLogin_OnClose (Sender: string; Action: string);
begin
// если пользователь не определен, и Пользователь закрывает окно входа в систему, закройте главную форму
if sUser='' then FormGlavn.Close;
end;
procedure formIzm_OnShow (Sender: string; Action: string);
begin
if Action = 'NewRecord' then formIzm.cbUser.dbItemID := idUser ;
end;
// защитить от удаления
procedure FormGlavn_bDelete_OnClick (Sender: string; var Cancel: boolean);
var
sIdUser: string;
begin
if isAdmin then Exit;
sIdUser:=SQLExecute('SELECT id_users FROM TabOtkaz WHERE id='+IntToStr(FormGlavn.TableGrid2.dbItemID));
if sIdUser<>IntToStr(idUser) then
begin
Cancel := True;
ShowMessage('У вас нет разрешения удалять записи, которые не принадлежат вам.');
end;
end;
// защитить от редактирования
procedure formIzm_bOK_OnClick (Sender: string; var Cancel: boolean);
begin
if isAdmin then Exit;
if idUser<>formIzm.cbUser.dbItemID then
begin
Cancel := True;
ShowMessage('У вас нет разрешения редактировать записи, которые не принадлежат вам.');
end;
end;
procedure FormGlavn_OnShow (Sender: string; Action: string);
begin
frmLogin.edPassword.PasswordChar := '*';
frmLogin.ShowModal; // Форма для входа
end;
procedure FormGlavn_TableGrid2_OnCellClick (Sender: string; ACol, ARow: Integer);
begin
zapolnenie();
end;
procedure FormGlavn_TableGrid2_OnKeyUp (Sender: string; var Key: Word; Shift, Alt, Ctrl: boolean);
begin
zapolnenie();
end;
procedure zapolnenie ();
var
idS : string ;
begin
idS := inttostr(FormGlavn.TableGrid2.dbItemID) ;
FormGlavn.Obekt.text := SQLExecute('SELECT ob_name FROM tabobekt WHERE id =(SELECT id_tabobekt FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.Edit2.Text := SQLExecute('SELECT Name_Uzel FROM TabUselOborud WHERE id =(SELECT id_TabUselOborud FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.VneshProyavlOtkaza.Text := SQLExecute('SELECT Proyav_name FROM TabProyavlen WHERE id =(SELECT id_TabProyavlen FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.LitsoObnaruj.Text := SQLExecute('SELECT Obnarug_name FROM TabObnarug WHERE id =(SELECT id_TabObnarug FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.MetodUstraneniya.Text := SQLExecute('SELECT Metod_name FROM TabMetod WHERE id =(SELECT id_TabMetod FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.UsloviyaObnaruj.Text := SQLExecute('SELECT Usl_name FROM TabUslovia WHERE id =(SELECT id_TabUslovia FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.Defekt.Text := SQLExecute('SELECT Defekt_name FROM TabDefekt WHERE id =(SELECT id_TabDefekt FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.VidOborudovaniya.Text := SQLExecute('SELECT Vid_name FROM TabVid WHERE id =(SELECT id_TabVid FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.DefektNomer.Text := SQLExecute('SELECT DEF№ FROM tabotkaz WHERE id = '+idS ) ;
FormGlavn.Edit4.Text := SQLExecute('SELECT ZAPAS FROM tabotkaz WHERE id = '+idS ) ;
FormGlavn.Komentarii.Text := SQLExecute('SELECT Primechanie FROM tabotkaz WHERE id = '+idS ) ;
FormGlavn.Edit3.Text := SQLExecute('SELECT OtcLico FROM tabotkaz WHERE id = '+idS ) ;
end;
procedure FormGlavn_Button4_OnClick (Sender: string; var Cancel: boolean);
begin
OpenFile(ExtractFilePath(Application.ExeName) +'Help.chm');
end;
procedure FormGlavn_OnShow (Sender: string; Action: string); // event OnShow
begin
FormGlavn.mniAbout.OnClick := @MenuClickAbout;
end;
procedure MenuClickAbout (Sender: string); // click in About menu item
begin
frmAbout.ShowModal;
end;
begin
// Начала проверьте, есть ли пользователь, администратор базы данных
// если нет, создать учетную запись администратора с именем пользователя admin и паролем admin
if SQLExecute('SELECT count(id) FROM users;') = '0' then
begin
SQLExecute('INSERT INTO users (login, password, admin) VALUES ("admin", "admin", 1);');
frmLogin.cbLogin.dbItemID:=1;
frmLogin.edPassword.Text := 'admin';
end;
frmLogin.Button1.Default := True;
formIzm.cbUser.Enabled:=false;
end.
Игоревич
Пожалуйста прикладывайте проект вместо скриншота.
Сссылка на проект https://www.dropbox.com/s/gxxwmvkoz9y59 … 2.zip?dl=0
Сссылка на проект https://www.dropbox.com/s/gxxwmvkoz9y59 … 2.zip?dl=0
При запуске данного проекта никакой ошибки не возникает.
Извените не ту весию скинул . Вот ссылка https://www.dropbox.com/s/gxxwmvkoz9y59 … 2.zip?dl=0
Извените не ту весию скинул . Вот ссылка https://www.dropbox.com/s/gxxwmvkoz9y59 … 2.zip?dl=0
У вас два одинаковых события OnShow от формы FormGlavn
procedure FormGlavn_OnShow (Sender: string; Action: string); // event OnShow событие OnShow
begin
FormGlavn.mniAbout.OnClick := @MenuClickAbout;
end;
и
procedure FormGlavn_OnShow (Sender: string; Action: string);
begin
frmLogin.edPassword.PasswordChar := '*';
frmLogin.ShowModal; // Форма для входа
end;
просто объедините их
procedure FormGlavn_OnShow (Sender: string; Action: string);
begin
frmLogin.edPassword.PasswordChar := '*';
frmLogin.ShowModal; // Форма для входа
FormGlavn.mniAbout.OnClick := @MenuClickAbout;
end;
Добрый день, Дмитрий!
Ну подскажите пожалуйста со скриптом.
Вот есть процедура для кнопки. Как должно выглядеть условие, чтобы в таблице Users для учетки Администратора были полные права на редактирование, т.е. не действовала данная процедура. А для всех остальных пользователей действовала.
//защита от прямого входа в форму редактирования записи, с таблицы
procedure Uchet_bUsers_OnClick (Sender: string; var Cancel: boolean);
var
sIdUser: string;
begin
if isAdmin then Exit;
sIdUser:=SQLExecute('SELECT id_Users FROM Uchet WHERE id='+IntToStr(Uchet.TableGrid1.dbItemID));
if sIdUser<>IntToStr(idUser) then
begin
Cancel := True;
ShowMessage('У Вас нет прав на редактирование записи, которая создана не вами.');
end;
end;
Добрый день, Дмитрий!
Ну подскажите пожалуйста со скриптом.
Вот есть процедура для кнопки. Как должно выглядеть условие, чтобы в таблице Users для учетки Администратора были полные права на редактирование, т.е. не действовала данная процедура. А для всех остальных пользователей действовала.//защита от прямого входа в форму редактирования записи, с таблицы
procedure Uchet_bUsers_OnClick (Sender: string; var Cancel: boolean);
var
sIdUser: string;
begin
if isAdmin then Exit;sIdUser:=SQLExecute('SELECT id_Users FROM Uchet WHERE id='+IntToStr(Uchet.TableGrid1.dbItemID));
if sIdUser<>IntToStr(idUser) then
begin
Cancel := True;
ShowMessage('У Вас нет прав на редактирование записи, которая создана не вами.');
end;
end;
Приветствую,
В данной процедуре уже это реализовано, с помощью строки
if isAdmin then Exit;
т.е. если текущий пользователь Администратор, то проверка прав на редактирование не производится, т.к. выходим из процедуры проверки.
My Visual Database → Russian → Подскажите пож что это за ошибка.
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi