n:='王三'; 
  adoquery1.Close; 
  adoquery1.SQL.Clear; 
  adoquery1.SQL.Add('select * from message'); 
  adoquery1.SQL.Add('where'); 
  adoquery1.SQL.Add(format('name=''%s''',[edit1.Text])); 
  adoquery1.Open; n是我自己定义的字符串变量 我想把 [edit1.text] 用n来替换 请问正确的表达方式应该是什么啊?
急! 还有本菜鸟原来是C的用户 结果现在要转到delphi上 请问哪个大哥有delphi的语法书我跪求(c和delphi的差异实在是比较大 ) [email protected] 请发到信箱谢谢!

解决方案 »

  1.   

    n:='王三'; 
      adoquery1.Close; 
      adoquery1.SQL.Clear; 
      adoquery1.SQL.Add('select * from message where name='+quotedstr(n)); 
      adoquery1.Open; 至于语法,你可以在google里搜一下“Pascal精要.chm”这本电子书。
      

  2.   

    samcrm(镜花水月):你能不能给我一个邮件 以后好方便联系 我有不懂就问呵呵
      

  3.   

    n1=edit1.text;
      n2=edit2.text;
      adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add('insert into message (name,address)');
      adoquery1.SQL.Add(format('values (''%s''',[edit1.Text]));
      adoquery1.SQL.Add(format(',''%s'')',[edit2.Text]));
      adoquery1.ExecSQL;
    我想把insert写成类似于adoquery1.SQL.Add('insert into message (name,address) values (n1,n2)');
    应该怎么样正确表达啊?
      

  4.   

    var SqlStr:string;
    .....
    SqlStr:='insert into message (name,address) values (%s,%s)'
    adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add(fromat(SqlStr,[quotedstr(n1),quotedstr(n1),]);
    adoquery1.ExecSQL;
    .....
      

  5.   

    adoquery1.SQL.Add(fromat(SqlStr,[quotedstr(n1),quotedstr(n1),]);后面的一个逗号去掉
      

  6.   

    var
      s: string;
    begin
      showmessage(format('name=''%s''',[s]));
    end;这是你说的,应该没问题,关于insert时,可以这样写:
    var
      n1,n2: String;
    begin
      with query do
      begin
        close;
        sql.text:='insert into table1(t1,t2) values(:t1,:t2)';
        parameters.ParamByName('t1'):=n1;
        parameters.ParamByName('t1'):=n2;
        execsql;
      end;
    end;