【发布时间】:2017-08-16 07:45:09
【问题描述】:
我正在构建这个函数,它将返回查询是否返回 ID。我是 Delphi 的新手,我得到了错误
变量 emailExistsId 可能未初始化。
我的代码:
function emailExists (const APersonId: TStandardPK) : Boolean ;
var
Email : TPhoneEmail;
emailExistsId: TStandardPK;
begin
Email := TPhoneEmail.Create(nil);
try
emailExistsId := Email.qrySelect.FieldByName('id').AsFloat;
finally
if emailExistsId <> 0 then
Result := TRUE
else
Result :=False;
end;
end;
【问题讨论】:
-
@DalijaPrasnikar 如果没有分配电子邮件,为什么会有例外?我的阅读是,如果没有分配电子邮件,
id的值将为零。虽然id被认为是一个浮点数有点奇怪.... -
有浮点主键真好 :)
-
@DavidHeffernan line
Email.qrySelect.FieldByName('id').AsFloat可以抛出异常。如果是这样,那么在 try 块中分配给emailExistsId的操作将不会完成。 -
@DavidHeffernan 因为这似乎是 OP 想要的。我并不是说这是好还是坏的方法,没有更多的上下文很难说。我见过很多这样的代码,人们期望得到布尔结果,而他们得到的只是他们没有准备好的异常。
-
@kobik,我当然是在开玩笑 :) 我很欣赏这种情况下的创造力。
标签: delphi