vsql:='select * from jzb where BaseCateName = ''1100'' ';
  字符串带‘时用双引号表示,例如: ’100‘  --> ''100''

解决方案 »

  1.   

    直接带值,没错啊!
    是不是带了参数了?
    vsql:='select * from jzb where BaseCateName='''+Variant1+'''';
      
      

  2.   

    弹出错误信息
    General sql error.
    [microsoft][ODBC microsoft access driver]Too few paramaters.Excepted 1.
    我用的是ODBC建的数据源。
      

  3.   

    用...BaseCateName='''+'1100'+''''就可以
      

  4.   

    试过了,用vsql:='select * from jzb where BaseCateName='''+'1100'+'''';也不行
    还是一样弹出上面的错误信息。
      

  5.   

    的确没有错误呀!DELPHI中两个单引号表示一个字符串字符(')。
    要不你换一种方法试试:
      query1.close;
      query1.sql.Clear;
      vsql:='select * from jzb where BaseCateName='+chr(39)+'1100'+chr(39);
      query1.SQL.Add(vsql);
      query1.open;
    其中,chr(39)表示一个(')。
      

  6.   

    其实单双引号无所谓的,一般在delphi中你在字符串中使用双引号就相当于非字符串的一个单引号,比如: 'select * from table_name where fieldname="12323"'=
              'select * from table_name where fieldname=''12323'''
      

  7.   

    看看你的QUERY组件的PARAMS属性里有没有什么东西?如果有,清空。
      

  8.   

    改用参数赋值语句吧!
    select * from jzb where BaseCateName=:p_basecatename//冒号后面是参数
    ...
    parambyname('p_basecatename').value:='Variant1'
      

  9.   


    vsql:='select * from jzb where BaseCateName='+chr(39)+'1100'+chr(39);
    也不行!!!
    另外用 'select * from jzb where BaseCateName="1100"' 的话,在query组件的 sql中都行不同。
      

  10.   

    其实单双引号无所谓的,一般在delphi中你在字
    符串中使用双引号就相当于非字符串的一个单引号,比如:
     'select * from table_name where fieldname="12323"'其实相当于
     'select * from table_name where fieldname=''12323'''估计是你的query里面带了参数
      

  11.   

    建议你删除这个query,在放上去一个。
    用bde连接db,用单引号或者双引号都可以
    但是用ado连接,必须用单引号。
    你的语句没有问题
      

  12.   

    不好意思,问个菜鸟问题
    bde连接db时,user和password在那里设定?
      

  13.   

    (上面的)如果用odbc来做数据源的话,就在odbc中有配置。
      

  14.   

    对了,好象还要设置BDE呀。
    USER和PASSWORD在BDE里可以设置。