Delphi初学者,请教各位这条语法为什老报错:
str1:='select * from talbe1 where P_Name="'+trim(edit1.text)+'"';
query1.close;
query1.sql.clear;
query1.sql.add(str1);
query1.open;
可是在执行时老报错:“eidt为非法的字段”!
请各位帮忙解决多谢!!!!

解决方案 »

  1.   

    用的什么数据库?试试
    str1:='select * from talbe1 where P_Name='''+trim(edit1.text)+''';
      

  2.   

    eidt为非法的字段???
    是不是你的Edit中的内容和字段定义的格式(或是类型)不同!!!另外还要注意引号的用法~~~~~~
      

  3.   

    应该是在双引号那儿出的问题P_Name字段的数据类型也要注意
      

  4.   

    str1:='select * from talbe1 where( P_Name="'+ trim(edit1.text) +'")';
    query1.close;
    query1.sql.clear;
    query1.sql.add(str1);
    //query1.open;
    query1.Active := True;这样应该没问题。
      

  5.   

    str1:='select * from talbe1 where( P_Name='''+ trim(edit1.text) +''')';
    query1.close;
    query1.sql.clear;
    query1.sql.add(str1);
    query1.open;
      

  6.   

    如果是引号的问题的话,试试这样,P_Name字段是字符型的吧
    str1:='select * from talbe1 where P_Name='+#39+trim(edit1.text)+#39;
    query1.close;
    query1.sql.clear;
    query1.sql.add(str1);
    query1.open;
      

  7.   

    str1:='select * from talbe1 where P_Name='''+trim(edit1.text)+''';
    这样写应该没问题了吧
      

  8.   

    如果你用的是oracle,你写的是对的,但是别的数据库可能就是双引号的问题了。
      

  9.   

    str1:='select * from talbe1 where P_Name=' + #39 + trim(edit1.text)+ #39;
      

  10.   

    上面都说过了,我补充一点,edit.text内不能有'
      

  11.   

    with query do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from talbe1 where P_Name= : SS');
      ParamByName('ss').AsString := edit1.text;
      Open;
    end;
      

  12.   

    Close;
      SQL.Clear;
      SQL.Add('select * from talbe1 where P_Name= : SS');
      ParamByName('ss').AsString := edit1.text;
      Open;
    end;
      

  13.   

    SQL.Add('select * from talbe1 where P_Name= : SS');
      ParamByName('ss').AsString := edit1.text;
      Open;
    end;
      

  14.   

    str1:='select * from talbe1 where P_Name='''+trim(edit1.text)+'''';
      

  15.   

    str1:='select * from talbe1 where P_Name='''+trim(edit1.text)+'''';
      

  16.   

    str1:='select * from talbe1 where P_Name='''+trim(edit1.text)+'''';
    可能是你用的数据库字符型数据用的是单引号吧,另外在Delphi中用两个单引号表示字符串里的一个单引号.
      

  17.   

    str1:='select * from talbe1 where P_Name="'+'"'+'trim(edit1.text)'+'"';
      

  18.   

    同意andy_qhz(自然村) 的观点
      

  19.   

    用模糊查询吧。用like % ...%
    这样一定是可以的。哈哈
      

  20.   

    这样写吧:
    str1:='select * from talbe1 where P_Name='''+trim(edit1.text)+'''';