with OperateQry do
    begin
      Close;
      SQL.Clear ;
      SQL.Add('select * from Operate where Code = ''' + AUID + '''');
      Open;
      if not IsEmpty  then
      begin
        lstr := FieldbyName('Password').asstring;
   //出错,提示说没有这个字段,用Fields[1].asstring;也不行,好像根本就没有数据。可IsEmpty却是False 实际上数据库里是有满足条件的纪录的。   

解决方案 »

  1.   

    .......
          Open;
          if not IsEmpty  then
          begin
            first;/////////
            if not Fields[0].Isnull then lstr := Fields[0].asstring;///////////
      

  2.   

    你连接一个DBGrid看看是否真的有数据先。
      

  3.   

    用DBGrid显示没有数据,但我用另外一个Query同样的SQL是可以得到结果的。
    并且软件运行很久了,发行出去的没出现这个问题,最近我的电脑里的都出现这个问题了,
    我重新编译原来的代码也不行。
      

  4.   

    lstr := query1.FieldbyName('Password').asstring;试试
      

  5.   

    你用的是ADO还是BDE,Query的属性有没有设对?
      

  6.   

    是不是,delphi类型与库中类型映射的问题
      

  7.   

    注意了:
    把SQL.Add('select * from Operate where Code = ''' + AUID + '''');
    改为SQL.Add('select * from Operate where Code = '' + AUID + '');
      

  8.   

    如果字段类型为字符串的话,那么sql语句没错,你试试这样with OperateQry do
        begin
          Close;
          SQL.Clear ;
          SQL.Add('select password from Operate where Code = ''' + AUID + '''');
          Open;
          if not IsEmpty  then
          begin
            lstr := Fields[0].asstring;
      

  9.   

    如果库中的字段是decimal型的呢?
      

  10.   

    不要用与系统关键字冲突的字段命名,Password改为PWD试试
      

  11.   

    with OperateQry do
        begin
          Close;
          SQL.Clear ;
          SQL.Add( Format( 'select password from Operate where Code = %s ), [ QuotedStr( AUID ) ] );
          Open;
          If RecordCount > 0 Then      
          begin
               lstr := Fields[0].asstring;
         ....
      

  12.   

    回复人: Wayliqu(邱利伟) ( ) 信誉:100 注意了:
    把SQL.Add('select * from Operate where Code = ''' + AUID + '''');
    改为SQL.Add('select * from Operate where Code = '' + AUID + '');这样肯定错
      

  13.   

    赞成下面的观点****************************************
    回复人: DWGZ() ( ) 信誉:100  2003-06-23 13:06:00  得分:0 
     
     
      不要用与系统关键字冲突的字段命名,Password改为PWD试试
     
     
    ***************************************8
      

  14.   

    改字段PASSWORD为PASS试试,我以前也碰到过,改了就好了,
      

  15.   

    是数据库字段的问题,具体没研究,本来是VarChar后来不知道谁给改成nVarChar了,改过来就好了。谢谢各位