Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi,数据库认证_Delphi - Fatal编程技术网

Delphi,数据库认证

Delphi,数据库认证,delphi,Delphi,我计划在我的程序中包括身份验证功能 我需要有关在表记录之间切换的信息。我当前的程序只读取第一条记录中的用户名和密码 如何移动到后续的表记录?数据集有下一个方法,这样您可以遍历整个数据集 qDS.Open ; while not qDS.EOF do begin anyString := qDS.fieldbyname('usern').asString ; // will give you the username qDS.Next ; // go to the next reco

我计划在我的程序中包括身份验证功能

我需要有关在表记录之间切换的信息。我当前的程序只读取第一条记录中的用户名密码


如何移动到后续的表记录?

数据集有下一个方法,这样您可以遍历整个数据集

qDS.Open ; 
while not qDS.EOF do
begin
   anyString := qDS.fieldbyname('usern').asString ; // will give you the username
   qDS.Next ; // go to the next record in the dataset.
end ;
qDS.close ;

只需使用
TDataSet.Locate
。在下面的所有内容中,我使用
ds
表示
TDataSet
变量

UserName := EditUserName.Text;
Password := EditPassword.Text;
if ds.Locate(UserName, ['UserNameField']) then
begin
  if ds.FieldByName('Password').AsString = Password then
    // Passwords match
  else
    // Passwords don't match
end
else
  // User name not found
要从一个记录(行)移动到下一个记录(行),只需使用
ds.next,并移动到使用前的一个
ds.Prior。要转到第一行,请使用
ds.first
,和
ds.Last
转到最后一行


这确实是基本的数据库编程。您可能应该搜索一个教程来解释它,并完成它

听到这个消息太好了!:-)你们遇到了什么问题?问题在于,若当前记录为用户N,如何使程序切换到下一个记录。和pasw。检查失败您应该查找TDataSet.Locate方法。它将记录移动到匹配条件,如果没有找到记录,则返回false。嗯,我真的不知道你在说什么。我正在比较身份验证表单edit.text字段与DBedit.text字段。。。如果你想说应该添加哪些代码行,那就太好了,泰!!如果您的数据库支持SQL,那么从USERTABLE WHERE=:param1和=:param2
语句执行SQL
SELECT COUNT(*)可能会更容易,而不是在数据集中导航