Запрос (query) — это средство выбора необходимой информации из базы данных. Вопрос, сформированный по отношению к базе данных, и есть запрос.
SQL — запросы составляются из последовательности SQL — инструкций. Эти инструкции задают, что надо сделать с входным набором данных для генерации выходного набора. [3, c.2].
Существует несколько типов запросов: на выборку, на обновление, на добавление, на удаление, перекрестный запрос, создание таблиц.
Представленный ниже SQL-запрос добавляет новых пользователей в базу данных и позволяет выбрать права для него:
// SQL query for check user and password.
s := VarToStr (SQLExecute ('SELECT count (id) FROM users WHERE (login = ''' + frmLogin.edUser.Text + ''') AND (password = ''' + frmLogin.edPassword.Text + ''');'));
// if SQL query found login and password.
if (s '0') and (s'') then.
begin.
sUser := frmLogin.edUser.Text; // remember username.
// check admin rights.
s := VarToStr (SQLExecute ('SELECT administrator FROM users WHERE (login = ''' + sUser + ''');'));
if s='0' then Form1.bUsers.Enabled := False; // if the user does not have administrator privileges, deactivate the button to create other users.
// check permissions to read.
s := VarToStr (SQLExecute ('SELECT read FROM users WHERE (login = ''' + sUser + ''');'));
if s='0' then Form1.bEdit.Enabled := False; // deactivate the button to edit the record.
// check write permissions.
s := VarToStr (SQLExecute ('SELECT write FROM users WHERE (login = ''' + sUser + ''');'));
if s='0' then.
begin.
Form1.bAdd.Enabled := False; // deactivate the button to add the record.
frmEmployee.bOK.Enabled := False; // deactivate the button to save the record.
end;
// check permission to delete.
s := VarToStr (SQLExecute ('SELECT remove FROM users WHERE (login = ''' + sUser + ''');'));
if s='0' then Form1.bDelete.Enabled := False; // deactivate the button to delete the record.
// check permission to search.
s := VarToStr (SQLExecute ('SELECT search FROM users WHERE (login = ''' + sUser + ''');'));
if s='0' then Form1.bSearch.Enabled := False; // deactivate the button to search the records.
frmLogin.Close; // close login form.
end else MessageDlg ('password is incorrect', mtError, mbOk, 0); // message if the password is incorrect.
end;
Графическая реализация данного запроса представлена на рис. 10.
Рис. 8.Запрос на добавление новых пользователей
Для приложения «Напоминания» так же прописан SQL — запрос и выглядит он следующим образом:
sMessage := SQLExecute ('SELECT message FROM reminder WHERE strftime (''%d.%m.%Y %H:%M'', datetime) = strftime (''%d.%m.%Y %H:%M'', ''now'', ''localtime'') ').