我需要我的程序從數據庫中登錄用戶。這需要一個潛水員號碼(如用戶名)和一個已經在數據庫中的密碼。不幸的是,我現在不知道SQL,寧願使用類似於我在這裏完成的技術。在運行時出現以下錯誤消息:adotblDiversInfo:無法對已關閉的數據集執行此操作。非常感謝你的幫助提前(: 這是我的代碼:登錄顯示錯誤消息
procedure TfrmHomeScreen.btnLogInClick(Sender: TObject);
var
iDiverNumber : Integer;
sPassword, sKnownPassword : String;
bFlagDiverNumber, bFlagPassword, Result : Boolean;
begin
iDiverNumber := StrToInt(ledDiverNumber.Text);
sPassword := ledPassword.Text;
with frmDM do
adotblDiversInfo.Filtered := False;
frmDM.adotblDiversInfo.Filter := 'Diver Number' + IntToStr(iDiverNumber);
frmDM.adotblDiversInfo.Filtered := True;
if frmDM.adotblDiversInfo.RecordCount = 0 then
ShowMessage(IntToStr(iDiverNumber) + ' cannot be found')
else
begin
sKnownPassword := frmDM.adotblDiversInfo['Password'];
if sKnownPassword = sPassword then
ShowMessage('Login successful')
else
ShowMessage('Incorrect password. Please try again');
end;
end;
你的問題與SQL無關。錯誤消息意味着您正在試圖對一個無效的數據集進行操作,直到您打開它(數據集)。你應該在你的問題中提及錯誤發生的位置,所以讀者不必猜測。順便說一句,「避免」像瘟疫一樣。 – MartynA 2014-11-04 16:08:31
另外,你不應該聲明一個名爲'Result'的變量。即使它不是一個關鍵字,它爲功能提供了一個特殊的目的。在程序中聲明自己正在尋找混淆。 – 2014-11-04 16:27:30
另外:你使用純文本密碼? – Birger 2014-11-04 16:40:14