【问题标题】:How do i use SQL codeing Within my class?我如何在课堂上使用 SQL 编码?
【发布时间】:2013-09-17 18:22:31
【问题描述】:

我创建了一个类,它必须使用 SQL 代码从我的数据库中进行验证检查,但是当我尝试运行我的程序时,它不使用我的表单中的 ADOquery。我试图通过将我的主要单元添加到我班级的单元来修复它,但它随后给出了循环错误。我也尝试将 Form1 添加到用途中(这是我的表单的名称,我只有一个表单),但它不理解 Form1。如果有人可以提供帮助,将不胜感激。

这是我班上的:

procedure TCheckA.CheckIfAdmin;
var iRecordA : Integer;
begin
    qryInfo.Active := False;
    qryInfo.SQL.Clear;
    qryInfo.SQL.Add(' Select [Lid Naam], [Lid Wagwoord], Adminustrateur ');
    qryInfo.SQL.Add(' From [CATSA Lede] ');
    qryInfo.SQL.Add(' Where [Lid Naam] = "'+fgebruikernaam+'"and [Lid Wagwoord] = "'+fpassword+'" and Adminustrateur = True ');
    qryInfo.Active := True;
    iRecordA := qryinfo.recordcount;


 if iRecordA = 1
  then begin
   fAdminAnswer := True;
   end
  else begin
   fAdminAnswer := False;
  end;
end;

然后它通过这个错误:[Error] IntekenCheck.pas(29): Undeclared identifier: 'qryInfo'

然后,如果我尝试将我的主要单元放在班级的单元中,例如:

unit IntekenCheck;

interface
 uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons, jpeg, ExtCtrls, XPMan, Grids,
  DBGrids, DB, ADODB, Math, AdminCheck, Chairmin_u{main unit};

那么错误是:[Fatal Error] IntekenCheck.pas(7): Circular unit reference to 'IntekenCheck'

【问题讨论】:

  • 您能否展示失败的代码并提供您收到的具体错误消息?
  • 嘿伙计们,当我发布这个问题时,我仍然在编程愚蠢,并没有想到在我的课程中构建我的查询然后将其返回到我的主程序。谢谢大家的帮助,我很感激,我会记住这些提示。顺便说一句,我现在用 C# 而不是 delphi 编码,但原则保持不变。

标签: sql delphi class delphi-7


【解决方案1】:

将查询传递给你的类,并在那里使用它:

procedure TCheckA.CheckIfAdmin(const Query: TAdoQuery);
begin
  AQuery.Active := False;
  AQuery.SQL.Clear;
  AQuery.SQL.Add(' Select [Lid Naam], [Lid Wagwoord], Adminustrateur ');
  AQuery.SQL.Add(' From [CATSA Lede] ');
  AQuery.SQL.Add(' Where [Lid Naam] = "' + fgebruikernaam +
                 '"and [Lid Wagwoord] = "'+ fpassword + 
                 '" and Adminustrateur = True ');
  AQuery.Active := True;
  fAdminAnswer := (AQuery.RecordCount = 1);
end;

(您还应该更改为使用参数化查询,而不是与+ 相联系。它更安全。这里还有许多其他与参数化查询和Delphi 相关的问题;在[delphi] parameter query 上快速搜索应该可以找到它们你。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    相关资源
    最近更新 更多