如何从 Delphi 中的 ADO 查询导入数据集(或检查它是否存在于数据库 table 中)
How to import a Data set from ADO Query in Delphi (or check if it exist in the database table)
使用 DELPHI 10.3 + MS ACCESS 2010
所以我基本上是在尝试检查数据集(如 用户名 或 密码 是否为 login/sign up 形式) 存在于数据库 table..
我在数据库中使用 Microsoft Access,并配置了以下组件:
- ADOConnection
- ADOQuery
- 数据源
- ADOTable
我的问题是,我怎样才能调用 results/import 结果并从 ADOQuery 或其他东西的数据库中检查它是否存在..
我的理解是我必须使用 ADOQuery.SQL 字符串才能做到这一点?但我不确定如何让它真正起作用。 (我显然是新手)
如果您有答案,我们将不胜感激!如果您需要更多问题,我会尽力回答您,必要时会提供屏幕截图
> PS: 你可以做一个简单的例子来帮助我理解细节
对于您的登录验证,请使用类似这样的东西(超出我的记忆,未经测试):
ADOQuery1.SQL.Text := 'SELECT UserCode FROM Credentials ' +
'WHERE (UserCode = :UserCode) ' +
'AND (Password = :Password)';
ADOQuery1.Parameters.ParamByName('UserCode').Value := FUserCode;
ADOQuery1.Parameters.ParamByName('Password').Value := FPassword;
ADOQuery1.Open;
if ADOQuery1.Eof then
ShowMessage('Invalid credentials')
else
ShowMessage('OK')
顺便说一句:将密码存储在数据库中不是一个好主意。请改用哈希码。
BTW2:我 return 编辑了 UserCode,但您可能会 return 一些更有用的信息,例如权限、上次登录或其他。我不知道你手头有什么。
要在数据库中创建 username/password,您可以这样做:
ADOQuery1.SQL.Text := 'INSERT INTO Credentials (UserCode, Password) ' +
'VALUES (:UserCode, :Password)';
ADOQuery1.Parameters.ParamByName('UserCode').Value := FUserCode;
ADOQuery1.Parameters.ParamByName('Password').Value := FPassword;
ADOQuery1.ExecSql;
通过这段代码,您将了解如何将数据写入数据库。如您的评论所述,“导入”是将数据从 Delphi 写入数据库。也就是向数据库写入数据。上面的代码是你需要的。写入用户名或任何其他数据没有区别。
我强烈建议您阅读一本关于 SQL 的好书(或在线阅读)!
还有一本关于 Delphi.
的书
使用 DELPHI 10.3 + MS ACCESS 2010
所以我基本上是在尝试检查数据集(如 用户名 或 密码 是否为 login/sign up 形式) 存在于数据库 table..
我在数据库中使用 Microsoft Access,并配置了以下组件:
- ADOConnection
- ADOQuery
- 数据源
- ADOTable
我的问题是,我怎样才能调用 results/import 结果并从 ADOQuery 或其他东西的数据库中检查它是否存在..
我的理解是我必须使用 ADOQuery.SQL 字符串才能做到这一点?但我不确定如何让它真正起作用。 (我显然是新手)
如果您有答案,我们将不胜感激!如果您需要更多问题,我会尽力回答您,必要时会提供屏幕截图
> PS: 你可以做一个简单的例子来帮助我理解细节
对于您的登录验证,请使用类似这样的东西(超出我的记忆,未经测试):
ADOQuery1.SQL.Text := 'SELECT UserCode FROM Credentials ' +
'WHERE (UserCode = :UserCode) ' +
'AND (Password = :Password)';
ADOQuery1.Parameters.ParamByName('UserCode').Value := FUserCode;
ADOQuery1.Parameters.ParamByName('Password').Value := FPassword;
ADOQuery1.Open;
if ADOQuery1.Eof then
ShowMessage('Invalid credentials')
else
ShowMessage('OK')
顺便说一句:将密码存储在数据库中不是一个好主意。请改用哈希码。
BTW2:我 return 编辑了 UserCode,但您可能会 return 一些更有用的信息,例如权限、上次登录或其他。我不知道你手头有什么。
要在数据库中创建 username/password,您可以这样做:
ADOQuery1.SQL.Text := 'INSERT INTO Credentials (UserCode, Password) ' +
'VALUES (:UserCode, :Password)';
ADOQuery1.Parameters.ParamByName('UserCode').Value := FUserCode;
ADOQuery1.Parameters.ParamByName('Password').Value := FPassword;
ADOQuery1.ExecSql;
通过这段代码,您将了解如何将数据写入数据库。如您的评论所述,“导入”是将数据从 Delphi 写入数据库。也就是向数据库写入数据。上面的代码是你需要的。写入用户名或任何其他数据没有区别。
我强烈建议您阅读一本关于 SQL 的好书(或在线阅读)! 还有一本关于 Delphi.
的书