查询/代码在NexusDB上运行,但在Firebird Embedded上运行

时间:2014-08-16 21:24:20

标签: delphi

这个查询/代码,如果我只是拿出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仍然不起作用)......

1 个答案:

答案 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;

愚蠢的我......谢谢大家....