Я пытаюсь создать класс, содержащий полный запрос (CRUD) для других модулей / форм, чтобы вызывать и использовать его. Но тогда я сталкиваюсь с некоторыми ошибками.
Я использую Firebird в качестве базы данных.
Я понятия не имею, как добавить запрос для выполнения внутри функции.
Я получаю сообщение об ошибке при попытке ввести код запроса в функцию.
unit AllClass;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
FireDAC.Stan.Intf, FireDAC.Stan.Option,FireDAC.Stan.Error,FireDAC.UI.Intf,
FireDAC.Phys.Intf, FireDAC.Stan.Def,FireDAC.Stan.Pool, FireDAC.Stan.Async,
FireDAC.Phys, FireDAC.Phys.FB,FireDAC.Phys.FBDef, FireDAC.VCLUI.Wait,
FireDAC.Stan.Param, FireDAC.DatS,FireDAC.DApt.Intf, FireDAC.DApt, Data.DB,
FireDAC.Comp.DataSet,FireDAC.Comp.Client, Vcl.StdCtrls;
type
TForm6 = class(TForm)
FDConnection1: TFDConnection;
EveryQuery: TFDQuery;
procedure login(username,password:String);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
procedure login(username,password:String);
begin
EveryQuery.SQL.Clear; //here error
end;
end.
Но не будет ошибки, если я введу код запроса внутри процедуры триггера кнопки.
procedure TForm1.LogInClick(Sender: TObject);
begin
if (Username.Text <> '') And (Password.Text <> '') then
begin
loginQuery.SQL.Clear;
//use parameter method
loginQuery.SQL.Text := 'Select Password from MYGUESTS where FIRSTNAME = :theID';
loginQuery.ParamByName('theID').AsString := Username.Text;
loginQuery.Open();
passwords := loginQuery.FieldByName('Password').AsString;
if(passwords = Password.Text) then
begin
with form3 do
begin
Show;
Username.Clear;
Password.Clear;
Form1.Hide;
end;
end
else
begin
ShowMessage('Wrong username or password. please re-enter');
end;
end
else
begin
ShowMessage('Please enter something');
end;
end;
Пожалуйста, помогите мне, если у вас есть какие-либо решения или идеи по этой проблеме.