var
  cStrLen:integer;
begin
  cStrLen:=length(TempStr);
  with AdoQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select str from Tbl where len(str)='+QuotedStr(IntToStr(cStrLen)));
      Open;
    end;
end;
查询时报语法错误,SQL语句在这里应该如何写?

解决方案 »

  1.   

    试试
    SQL.Add('select str from Tbl where len(str)='+IntToStr(cStrLen));
      

  2.   

    你加了这个等转成sql语句,变成字符了

    select str from Tbl where len(str)='11'
      

  3.   

    procedure TRes_HrCq_YD_F.Button1Click(Sender: TObject);
    var
      cStrLen:integer;
      TempStr:string;
    begin
      inherited;
      cStrLen:=length(TempStr);
      with ADOQuery1 do
       begin
          Close;
          SQL.Clear;
          SQL.Add('select [str] from t_Tb1 where len([str])='+IntToStr(cStrLen));
          Open;
       end;
    end;
      

  4.   

    var
      cStrLen:integer;
    begin
      cStrLen:=length(TempStr);
      with AdoQuery1 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('select str from Tbl where len(str)=:strLen';
          parameters.parambyname('strlen').value :=cStrLen;
          Open;
        end;
    end;
      

  5.   

    格式
    procedure TRes_HrCq_YD_F.Button1Click(Sender: TObject);
    var
      cStrLen:integer;
      TempStr:string;
    begin
      inherited;
      cStrLen:=length(TempStr);
      with ADOQuery1 do
      begin
      Close;
      SQL.Clear;
      SQL.Add('select [str] from [Tb1] where len([str])='+IntToStr(cStrLen));
      Open;
      end;
    end;
      

  6.   

    如果和sql server 中的关键字与表中定义的field同名的话.在写sql语句时引用此field要加[]这个东东