大家帮我看看下面的sql语句有什么问题sql.Add('select * from brda where name=''No Name''');运行时报错:参数 name 没有默认值。

解决方案 »

  1.   

    sql.Add('select * from brda where name=:Name');
    fieldbyname('Name').values :='No Name';
      

  2.   

    我在查询名称为‘No Name’的记录,如果有的话
      

  3.   

    楼上的没有找到问题的实质:
    在SQL语句中,Name是保留字,所以
    sql.Add('select * from brda where [name]=''No Name''');
      

  4.   

    如果是想查找‘No Name’的记录,那么可以写成
    var
     SQLStr : String;
    begin
      SQLStr := 'select * from brda where name=' + QuotedStr('No Name')
      adoquery1.SQL := SQLStr
    end;
      

  5.   

    To: li_zhifu(东北人)    老乡啊!不是关键字的原因,我曾用了别的名,也不好使
      

  6.   

    表里面有没有这个字段啊? 先把where后面的去掉看看查询结果再说.
      

  7.   

    在查询分析器里先试试看,句子本身没问题,name不是保留字
      

  8.   

    企业管理器中“工具|SQL查询分析器”
      

  9.   

    brda表的结构:
      自动编号   newDate   sampleNo   name   sex  .....代码:
      with dbform.dqjczsave do
         begin
         close;
         sql.Clear;
         sql.Add('select * from brda where name=''No Name''');
         open;
         if recordcount>0 then
         begin
         ...
      

  10.   

    1、确认有这样的记录存在,用查询分析器
    2、TADOQuery的RecordCount有时是不灵的,对于某些后台来说其值永远是-1,建议用
       if ADOQuery1.Eof and ADOQuery1.Bof then//说明无相应记录
       来判断