我用的是access2003数据库,在Delphi的TQuery中写SQL语句查询。
表中的主键是一个整型的编号。现有记录的编号为1~5(共有五条记录)
现在我写sqlstr := 'select * from ' + TableName + 'where No = cint(''' + strNo + ''')' ;
查出一个空的数据集,
后来又用sqlstr := 'select * from ' + TableName + 'where No = 2' ;
也查不出编号为2的记录,这是为什么?

解决方案 »

  1.   

    sqlstr := 'select * from ' + TableName + 'where No = ''2'''
      

  2.   

    如果是 char字段 的话上楼的就应该可以了
      

  3.   

    sqlstr := 'select * from ' + TableName + 'where No = ' + strNo;
      

  4.   

    错了,在where 前少了一个空
    sqlstr := 'select * from ' + TableName + ' where No = ' + strNo;with ADOQ do
    begin
      Close;
      SQL.Clear;
      SQL.Add(sqlstr);
    //SQL.Add('SELECT * FROM ' + TableName + ' WHERE No = ' + strNo);
      Open;
    end;
    上面的//后面的是二选一,可用上一句,或下一句
      

  5.   

    偶终于找到问题了.偶的字段名是"no",这可能是SQL或是Access的一个关键字.后来换了一个新的字段名,就好了.
    但是还是狂谢谢楼上的!
    偶还是学到了新的东东.