在增加删除操作的时候,游标总是出界,怎么办啊?
在编写登陆框的时候,总是出现Error mapping filed?!
怎么办啊?!
兄弟在线等

解决方案 »

  1.   

    delphi7连接SQL server数据库时候的问题
    登陆框要到数据库中的表中取数据
      

  2.   

    procedure TPasswordDlg.OKBtnClick(Sender: TObject);
    var
      MaxRetries : Integer;
    begin
      MaxRetries := 3;
      Inc( FRetries );
      SQLDataSet1.Close;
      SQLDataSet1.CommandType := ctQuery;
      SQLDataSet1.CommandText := 'select * from AppUser where UserId =:pID and PassWord =:pPWD';
      SQLDataSet1.Params.ParamByName('pID').Value := EdtName.Text;
      SQLDataSet1.Params.ParamByName('pPWD').Value := EdtPswd.Text;
      SQLDataSet1.Open;
    if SQLDataSet1.RecordCount >0 then
      ModalResult := mrOK
      else
      begin
        if  FRetries >= MaxRetries then
        begin
          ShowMessage( '非法用户,请核对以后再试!' );
          ModalResult := mrCancel;
        end
        else
          begin
            //AppUser
            ShowMessage( '密码错误,请核对以后再试!' );
            EdtName.text := '';
            EdtName.SetFocus;
            EdtPswd.Text := '';
            ModalResult := mrNone;
          end;
      end;
    end;出现Error mapping filed的问题
      

  3.   

    你Debug一下,看执行到那儿出的错
      

  4.   

    问题还是自己解决了
    很奇怪SQLDataSet1.RecordCount在我机器上不可以识别
    下面是修改后的代码procedure TPasswordDlg.OKBtnClick(Sender: TObject);
    var
      MaxRetries : Integer;
      num : Integer;
    begin
      MaxRetries := 3;
      Inc( FRetries );
      SQLConnection1.Connected :=true;
      num := 0;  SQLDataSet1.Close;
      SQLDataSet1.CommandText := 'select count(*) as rows from AppUser where UserId =:pPWD and UserName =:pName';
      SQLDataSet1.Params.ParamByName('pPWD').AsString := EdtPswd.Text;
      SQLDataSet1.Params.ParamByName('pName').AsString := EdtName.Text;
      try
        SQLDataSet1.Open;
      except
        ShowMessage('Open Error');
      end;
      try
        num := SQLDataSet1.Fields.FieldByName('rows').AsInteger;
      except
        ShowMessage('Move Error');
      end;if num >0 then
       ModalResult := mrOK
      else
      begin
        if  FRetries >= MaxRetries then
        begin
          ShowMessage( '非法用户,请核对以后再试!' );
          ModalResult := mrCancel;
        end
        else
          begin
            //AppUser
            ShowMessage( '密码错误,请核对以后再试!' );
            EdtName.text := '';
            EdtName.SetFocus;
            EdtPswd.Text := '';
            ModalResult := mrNone;
          end;
      end;
    end;
      

  5.   

    用odbc数据源table query 的recordcount值不正确