在编写图书馆系统中 查询用户名的输入t.SetKey; //准备查询
        t.FieldByName('姓名').AsString:=auserName;
        if not(t.GotoKey) then
          begin
            MessageDlg('用户名'+ausername+'错误',mterror,[mbok],0);
            result:=-1;
            Exit;
          end
系统老是跳出用户名错误 即使我把数据库表上的数据一个个对着写进去还是错误
开始我怀疑 数据库连接是否 有误 
经过调试 
1,将edit1.text:=t.FieldByName('姓名').AsString; 出现的是数据库中的第一个名字sa//排除数据库连接错误
在调试中输入将ausername的值赋予sa 
但是为什么t.gotokey总是找不到 返回false  郁闷啊! 请高手解救啊

解决方案 »

  1.   

    是啊 我验证过了 我输入的调教应该是true  但是为什么每次都是弹出用户名错误
    纳闷啊 高手们 救俺啊
      

  2.   

    没看明白.
    楼主是用的SQL查询语句??
      

  3.   

    gotokey必须用在索引字段上:
            IndexFieldName = '姓名';
            t.SetKey; //准备查询
            t.FieldByName('姓名').AsString:=auserName;
            if not(t.GotoKey) then
              begin
                MessageDlg('用户名'+ausername+'错误',mterror,[mbok],0);
                result:=-1;
                Exit;
              end
       最好不用gotokey, 用locate或sql查询好一些
      

  4.   

    我很少用, 記不太清楚了, 
    好象 setkey 設置的字段必須為索引, 也就是說 姓名 這個 field 必須定義為 index 才可以, 
    要不然, 是會返回 false的你檢查下是不是這個原因
      

  5.   

    谢谢!!! coeltdit(睫毛上的冰)