就是要达到state='kumu_name=combobox1.text'的效果。
外侧的单引号是string要求的;中间的单引号是SQL语句要求的。 

解决方案 »

  1.   

    把SQL用的但引号用#39来代替.这样就看的清楚了.
      

  2.   

    还有阿.你那个Where前面是不是要加一个空格阿.
      

  3.   

    刚才说错了,是要达到kumu_name=‘combobox1.text'的效果
      

  4.   

    是用加号把单引号包涵的内容连起来不是用单引号括加号
    你也可以写成这样
    adoquery1.Sql.Add('Select * from '+tablename);
    adoquery1.sql.add(' where kumu_name='+''''+combobox1.text+'''');
      

  5.   

    ''''的中间的两个引号相当于'string'中的string.
    中间的两个引号的第一个引号是字符转义符号,把中间第二个引号字符串标示意义去掉了。
    所以 ''''的结果是只有一个'号的字符串。
      

  6.   

    +是字符串的连接符号!
    其实你这样写是比较麻烦的!可以这样写:
    combo_value:=combobox1.text
    adoquery1.Sql.Add('Select * from '+tablename);
    adoquery1.sql.add('where kumu_name='+#39+combo_value+#39);
      

  7.   

    老弟,为什么要那样用,看我得方法:adoquery1.Sql.Add('Select * from  tablename');
    adoquery1.sql.add('where 表字段=:name');
    parameters.ParamByName('name').value:=combobox.text;
    open;
      

  8.   

    parameters.ParamByName('name').value:=combobox.text;这样写不行啊
    出错[Error] Unit1.pas(123): Undeclared identifier: 'asstring'
      

  9.   

    ''  ''构成一对,形成一组字符串,与kumu_name匹配,所以'+''''+combobox1.text+''''+''这么做,
      

  10.   

    那为什么combobox1.text旁边要加两个+号
      

  11.   

    在字符串中要想再字符'必须多加一个'就是这个意思,所以''''表示一个字符串中的一个',例如:
    I'm a student.这句话要是用单引号引起来就是:'I''m a student'
    如果中间没有字符的话就变成'''',表示'
    这个sql语句意思是:
    where kumu_name='combobox1.text+'
      

  12.   

    更正:where kumu_name='combobox1.text'
      

  13.   

    adoquery1.Sql.Add('Select * from '+tablename+');
    adoquery1.sql.add('where kumu_name='''+combobox1.text+'''');
    这样稍简单一些,但这是格式没办法,就向我们写别的代码一样不符格式就通过一样的。
      

  14.   

    那为什么combobox1.text旁边要加两个+号
      

  15.   

    sql.add('select * from 计算机1');
    sql.add('where kemu_name='''+edit1.text+'''and time='''+edit2.text+'''');运行时说类型不匹配,我的time是长整型,在这个句子怎样才能让time等于edit2.text
      

  16.   

    sql.add('select * from 计算机1');
    sql.add('where kemu_name='''+edit1.text+'''and time=:time');
    parambyname('time').asinteger:=strtoint('edit2.text');
    这是用参数的方法 
      

  17.   

    这个方法在ADOquery中不行,我试了很多次了我这个方法太麻烦了,有没有其他更简单的方法
      

  18.   

    adoquery1.Sql.Add('Select * from '+tablename);
    adoquery1.sql.add('where kumu_name='+''''+Trim(combobox1.text)+'''');改为这样
      

  19.   

    哎,你应该说清楚你的字段是什么类型,如果是整数型那就这样:
    adoquery1.Sql.Add('Select * from  tablename');
    adoquery1.sql.add('where 表字段=:name1 and time=:name2');
    parameters.ParamByName('name1').value:=edit1.text;
    parameters.ParamByName('name2').value:=strtoint(edit2.text);
    open;上边都不用改,只改这一行。
    parameters.ParamByName('name').value:=strtoint(combobox.text);
    如果字段是日期型:
    parameters.ParamByName('name').value:=strtodatetime(combobox.text);
    如果你还不明白,把你的代码发给我。我帮你改。
      

  20.   

    strtoint 意思就是把str(字符型)to(转化成) int(整型)
    根据这个意思,你好好体会,就明白了。
      

  21.   

    在ADO中
    parambyname('time').asinteger:=strtoint('edit2.text');
    这种参数付值方法是错误的,这种适合与BDE,ADO中应该采用:
    parameters.ParamByName('name').value:=strtoint(combobox.text);
    必须增加为parameters.ParamByName