1 (edited by sibprogsistem 2018-07-06 13:13:48)

Topic: ограничение не выполнено

procedure frmLogin_OnShow (Sender: TObject; Action: string);
  var sUSN: string = '1';
begin
  // проверка наличия администратора базы данных
  // если нет, то создать первичного пользователя логин demo пароль demo
     if SQLExecute('SELECT count(id) FROM users;') = '0' then
     begin
         SQLExecute('INSERT INTO users (login, password, id_userStatus) VALUES ("demo", "demo", "'+sUSN+'");');
     end;
     UpdateDatabase('users');

если в таблице users отмечаю поле id_userStatus обязательным, то получаю ошибку (ограничение не выполнено)

Post's attachments

Attachment icon service.rar 27.87 kb, 307 downloads since 2018-07-06 

Re: ограничение не выполнено

сперва необходимо создать записи в таблице userStatus, иначе вы пытаетесь указать id записи в id_userStatus, которой еще не существует.


нужно так

procedure frmLogin_OnShow (Sender: TObject; Action: string);
var sUSN: string = '1';
begin
  // проверка наличия прав пользователей
  // если нет, то создать права пользователей
     if SQLExecute('SELECT count(id) FROM userStatus;') = '0' then
     begin
         SQLExecute('INSERT INTO userStatus (userStatusName) VALUES ("Администратор");');
         SQLExecute('INSERT INTO userStatus (userStatusName) VALUES ("Мастер");');
         SQLExecute('INSERT INTO userStatus (userStatusName) VALUES ("Менеджер");');
     end;
     UpdateDatabase('userStatus');


  // проверка наличия администратора базы данных
  // если нет, то создать первичного пользователя логин demo пароль demo
     if SQLExecute('SELECT count(id) FROM users;') = '0' then
     begin
         SQLExecute('INSERT INTO users (login, password, id_userStatus) VALUES ("demo", "demo", '+sUSN+');');
     end;
     UpdateDatabase('users');

end;
Dmitry.

Re: ограничение не выполнено

о боже, как проста оказалась моя ошибка ))))))))