我在程序中用的是Query用DatabaseName连接的数据库
path:=ExtractFilePath(application.ExeName)+'DataBase';
Query1.DatabaseName:=path;
with Query1 do
begin
  Close;
  SQL.Clear;
  SQL.Add('select * from Login.db');
  Open;
end;
Query1.Close;
这都可以但我在下面用条件查询时就出错
with Query1 do
   begin
     close;
     SQL.Clear;
     SQL.Add('select * from Login.db where PassWord ='+''''+Trim(PassWordE.Text)+'''');
     Open
   end;

解决方案 »

  1.   

    'select * from Login.db where PassWord ='+''''+Trim(PassWordE.Text)+''''//改成:
    close;
    SQL.Clear;
    sql.add('select * from login.db where password=:psw');
    parameters.parameterbyname('psw').value:=trim(passworde.text);
    open;试试;
      

  2.   

    连续用一个query查询两次而且是同一个表干什么呢
      

  3.   

    是不是Query1.DatabaseName:=path;出现的错误
    当我用bde时就没有出现错误
    请大家帮我解决一下
      

  4.   

    password不要乱用、改一下字段名
      

  5.   

    with Query1 do
       begin
         close;
         SQL.Clear;
         SQL.Add('select * from Login.db where [PassWord] ='+''''+Trim(PassWordE.Text)+'''');
         Open
       end;//在password两边加中括号即可
      

  6.   

    为什么不能用password作字段
      

  7.   

    SQL.Add('select * from Login.db where PassWord ='+''''+Trim(PassWordE.Text)+''''+');
    你少了最后的+'
      

  8.   

    function Tdm.Login(AUserName, APassword: string): integer;
    var
        strSQL : String;
    begin
        Result := 0;
        strSQL := 'select * from 口令 where name ='
                  + QuotedStr(AUserName)// QuotedStr()等于在参数两边加""
                  +'And Password ='
                  + QuotedStr(APassword);
        with qryPassword do
        begin
            Close;//关闭数据集
            SQL.Text := strSQL;
            Open; //active=True
            If not IsEmpty then
            begin
                Result := fieldbyname('ID').AsInteger;
            end;
        end;
    end;