SQL通过ADO在Delphi中返回值

Acr*_*ron 2 sql delphi ado

我有这个功能来确定用户是否存在于数据库中的天气

DM是我的DataModule

AQ_LOGIN是一个ADOQuery

BENU是我的桌子,里面装满了用户和他们的密码

代码如下:

function UserCheckExist(Login, pw: string): boolean;
begin
    with DM do
    begin
        AQ_LOGIN.Close;
        AQ_LOGIN.SQL.Clear;
        AQ_LOGIN.SQL.Add('select BLOGIN from BENU where BLOGIN = ''Login'' AND BPW = ''pw''');
        AQ_LOGIN.Open;
    end;
end;
Run Code Online (Sandbox Code Playgroud)

我现在的问题是:如何使该功能返回true或false天气具有相应密码的用户存在?

提前致谢.

rob*_*oft 8

我会选择smok1的答案(我只是发布类似的东西)但是我会对你的输入进行参数设置,因此;

AQ_LOGIN.SQL.Add('select count(*) from BENU where BLOGIN=:login and BPW=:pw');
AQ_LOGIN.Parameters.ParamByName('login').AsString:=login;
AQ_LOGIN.Parameters.ParamByName('pw').AsString:=pw;

然后与smok1一样 - 打开数据集并查看返回计数的值.

注意 - 没有方便的ADO delphi组件,但99.9%确定这是语法:-)

编辑:使用这样的参数的一个优点是你不必清理输入字符串(对于像引号这样的东西) - 组件知道如何处理字符串.您不希望其中包含带有单引号的用户名,但您可能拥有一个密码.:-)