这个查询/代码,如果我只是拿出DataModule的东西,就可以了 使用FireDac嵌入Firebird的NexusDB.With没有。 所以要么我在代码中没有做正确的事情,要么......
procedure TForm1.AdvGlowButton1Click(Sender: TObject);
begin
DataModule2.FDQuery4.Active:=false;
DataModule2.FDQuery4.SQL.Clear;
DataModule2.FDQuery4.SQL.Add('select LOC_ID,USER,PASSWORD from USERS where USER='+QuotedStr(cxlookupcombobox1.Text)+' and GESLO ='+QuotedStr(cxTextEdit1.Text));
DataModule2.FDQuery4.Open;
if DataModule2.FDQuery4.FieldByName('PASSWORD').AsString<>''
then begin
if DataModule2.FDQuery4.FieldByName('LOC_ID').asString = '13'
then begin
Form3.Show;
Form1.Hide;
end;
if DataModule2.FDQuery4.FieldByName('LOC_ID').asString = '15'
then begin
Form4.Show;
Form1.Hide;
end;
end else begin
cxTextedit1.Text := '';
showmessage('Wrong password !');
end;
end;
有人可以告诉我,我做错了什么吗? Edit1:代码的第二部分(Form4.Show;)不会执行 Edit2:也是这样尝试的:
....
if DataModule2.FDQuery4.FieldByName('PASSWORD').AsString<>''
then
case DataModule2.FDQuery4.FieldByName('LOC_ID').Value of
13: begin
Form3.Show;
Form1.Hide;
end;
15 : begin
Form4.Show;
Form1.Hide;
end;
end else begin
cxTextedit1.Text := '';
showmessage('Wrong password !');
end;
end;
第二部分(显示表格4仍然不起作用)......
答案 0 :(得分:0)
我设法找到了我的查询中的缺陷。 FDQuery4只选择一次所需的记录。记录被冻结。我应该检查一下FDQuery3
....
if DataModule2.FDQuery4.FieldByName('password').AsString<>''
then begin
if DataModule2.FDQuery3.FieldByName('lok_ic').AsString = '13'
then
Form3.Show;
Form1.Hide;
if DataModule2.FDQuery3.FieldByName('loc_id').AsString = '15'
then
Form4.Show;
Form1.Hide;
if DataModule2.FDQuery3.FieldByName('loc_id').AsString = '6'
then
Form5.Show;
Form1.Hide;
end else begin
cxTextedit1.Text := '';
showmessage('wrong password !');
end;
end;
愚蠢的我......谢谢大家....