gpt4 book ai didi

database - 登录显示错误信息

转载 作者:搜寻专家 更新时间:2023-10-30 20:39:22 25 4
gpt4 key购买 nike

我需要我的程序从数据库中登录用户。这需要一个潜水员号码(如用户名)和一个已经在数据库中的密码。不幸的是,我现在还不懂 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;

最佳答案

您遇到的错误是因为您在尝试访问数据集之前忘记打开它。使用 frmDM.adoTblDiversInfo.Open;frmDM.adoTblDiversInfo.Active := True; 在尝试使用该表之前执行此操作。

如果您稍作更改,您的代码可能会更简单(也更快)。无需过滤整个数据集,只需查看是否可以找到正确的记录即可。

procedure TfrmHomeScreen.btnLogInClick(Sender: TObject);
var
iDiverNumber : Integer;
begin
if not frmDM.adoTblDiversInfo.Active then
frmDM.adoTblDiversInfo.Open;

iDiverNumber := StrToInt(ledDiverNumber.Text);
sPassword := ledPassword.Text;
if frmDM.adoTblDiversInfo.Locate('Diver Number', iDiverNumber, []) the
begin
if frmDM.adoTblDiversInfo['Password'] = ledPassword.Text then
ShowMessage('Login successful')
else
ShowMessage('Invalid password. Please try again.');
end
else
ShowMessage(ledDiverNumber.Text);
end;

关于database - 登录显示错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26739650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com