gpt4 book ai didi

delphi - 如何在函数内添加查询

转载 作者:行者123 更新时间:2023-12-02 04:36:40 25 4
gpt4 key购买 nike

我正在尝试创建一个包含整个查询(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;

如果您对此问题有任何解决方案或想法,请帮助我。

最佳答案

您的函数登录应该是函数TForm6.Login,因为它被声明为表单本身的方法。您可以通过在表单类中编写声明(在私有(private)或公共(public)部分,而不是当前的位置)并点击 Ctrl+Shift+< 来避免此问题kbd>C,IDE 将在 implementation 部分生成正确的代码。

您当前的代码:

procedure login(username,password:String);
begin
EveryQuery.SQL.Clear; //here error
end;

更正后的代码:

procedure TForm6.login(username,password:String);
begin
EveryQuery.SQL.Clear; //here error
end;

关于delphi - 如何在函数内添加查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55841015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com