SQL+DELPHI
A1:=QUERY3.FIELDBYNAME('姓名').ASSTRING;
         
         if query3.rowsaffected>0 then
          begin
           with query2 do
           begin
            close;
            sql.Clear;
            sql.Add('select * from bs where TRIM(A1)='+''''+edit1.text+'''');
            open;
引用A1后提示A1无效的列名,我知道不应该这样写,可我实在是想不出来其它办法了,请叫了.

解决方案 »

  1.   

    不能这么用,可以用参数得方法来做,把trim中得内容,当成一个参数
      

  2.   

    if query3.rowsaffected>0 then
              begin
               with query2 do
               begin
                close;
                sql.Clear;
                sql.Add('select * from bs where '+TRIM(A1)+'='+Quotedstr(edit1.text);
                open;         end;
      

  3.   

    with Query1 do
       begin
         Close;
         SQL.Clear;
         sql.Add('select * from bs where TRIM(:#A1)= :#cs');
         ParamByName('#A1').Value :=QUERY3.FIELDBYNAME('姓名').ASSTRING;
         ParamByName('#A1').Value :=edit1.txt;
         open;
       end;
      

  4.   

    wudi_1982兄弟很是热心+活跃,赞一个
      

  5.   

    wudi_1982是你这个是不是有什么地方不对呀,不行呢.第二句PARAMBYNAME('#A1')还要用#A1吗?
      

  6.   

    上面那个是随便写的,给你改了一下,那个A1不要直接写进去,当成一个字符串赋进去。
    var
    a1,s :string;
    begin
    A1:=QUERY3.FIELDBYNAME('姓名').ASSTRING;
             
             if query3.rowsaffected>0 then
              begin
               with query2 do
               begin
                close;
                sql.Clear;
                s := 'select * from bs where trim('+a1+')= :#cs';
                ParamByName('#cs').Value :=edit1.txt;
                open;end;
      

  7.   

    sql语法支持Trim么?如果我没记错,Tsql中只有lTrim和rTrim这样试下看。
    sql.add('select * from bs where '+Trim(A1)+'='''+Trim(Edit1.text)+'''');