我在保存字符串时遇到错误。错误是: 项目 prKlanten.exe 引发异常类 EVariantInvalidArgError 并显示消息“无效参数”。
var
fmOrder: TfmOrder;
orderid: string;
implementation
{$R *.dfm}
uses unDm, unInloggen, unKlant, unKeuze, unbeheer, unAccount, unOrderChange;
procedure TfmOrder.btOpslaanOClick(Sender: TObject);
begin
dm.atOrder.open;
dm.atOrder.Append;
dm.atOrder ['OrderStatus'] := ('Aangemeld');
dm.atOrder ['klantID'] := fminloggen.userid;
dm.atOrder ['OrderDatum'] := leOphaalDatum.text;
dm.atOrder ['Opmerkingen'] := leOpmerkingen.text;
fminloggen.userid := dm.atOrder ['KlantID'];
dm.atOrder ['OrderID'] := fmOrder.orderid ;
dm.atOrder.post;
fmOrderChange.ShowModal;
end;
end.
行:
dm.atOrder ['OrderID'] := fmOrder.orderid ;
给出错误。我拼写正确,fminloggen.userid 确实有效。
有谁知道问题出在哪里吗?
提前致谢!
贾斯珀
我以其他形式做了同样的事情:
public
var inlognaam : string;
userid : string;
end;
var
fmInloggen: TfmInloggen;
implementation
{$R *.dfm}
uses unKlant, unbeheer, unaccount, unKeuze,unDm;
procedure TfmInloggen.BTinloggenClick(Sender: TObject);
var Gevonden: boolean;
begin
dm.atInlog.open;
Gevonden := false;
while (not Gevonden) and (not dm.atInlog.eof) do
begin
if dm.atInlog['email'] = leUser.Text
then
begin
Gevonden := true ;
fminloggen.inlognaam := dm.atInlog['email'];
fminloggen.userid := dm.atInlog['KlantID'];
end
else
dm.atInlog.Next
end;
if Gevonden and (dm.atInlog['Password'] = lePassword.text)
then
if dm.atInlog['Autorisatie'] = '1'
then
begin
fmKlant.Caption := dm.atInlog['email'];
fmKeuze.ShowModal;
end
else if dm.atInlog['Autorisatie'] = '2'
then
begin
fmKlant.Caption := dm.atInlog['email'];
fmBeheer.ShowModal;
end;
dm.atInlog.Close;
end;
除非这是带有用户ID的
最佳答案
在您的工作示例中,您有:
public
var inlognaam : string;
userid : string;
end;
假设它们都是表单声明中的字段。
在您的非工作示例中,您有:
var
fmOrder: TfmOrder;
orderid: string;
fmOrder 似乎是 IDE 生成的表单实例变量。如果 orderid 紧随其后,则它不能是表单声明的字段。
您确定已将 orderid 声明为 TfmOrder 表单声明中的字段吗?正如您在对 @BugFinder 的回答的评论中所说,您无法插入 myStringVar := fmOrder.orderId;
行,我怀疑您会遇到编译器错误,这很可能是因为 orderId 不是fmOrder 的成员字段...
关于delphi - delphi 无效参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5511416/