Delphi TClientDataSet定位问题
我正在使用 Delphi7
、MS Vista
和 Devart's dbExpress
驱动程序(版本 4.70)。我删除了一个 TSQLConnection
、一个 TSQLTable
(tabA
)、一个 TDataSetProvider
、一个 TClientDataSet
(cdsA
)、一个DataSource
和一个DBGrid
。
我通过图形设计工具进行了所有设置。一切正常,当我打开 cdsA 时,我可以看到网格中的所有数据。这是我的代码:
procedure TForm1.Button1Click(Sender: TObject);
var
fields, values: string;
begin
cdsA.Close;
cdsA.Open;
fields := 'fielda;fieldb';
values := Edit1.Text+';'+Edit2.Text;
cdsA.SetKey;
cdsA.Locate(fields, values, [loCaseInsensitive]);
end;
fieldA
和 fieldB
存在于表中,并且也在 cdsA.Fields
中定义。当我执行此代码时,Locate
指令生成异常 EVariantInvalidArgError ... Invalid argument
。我想知道出了什么问题。 TIA。
弗朗西斯科
I'm using Delphi7
, MS Vista
and Devart's dbExpress
drivers (version 4.70). I drop a TSQLConnection
, a TSQLTable
(tabA
), a TDataSetProvider
, a TClientDataSet
(cdsA
), a DataSource
and a DBGrid
.
I made all the settings via graphical design tool. Everything works fine, as I open cdsA
, I can see all the data in the Grid. Here is my code:
procedure TForm1.Button1Click(Sender: TObject);
var
fields, values: string;
begin
cdsA.Close;
cdsA.Open;
fields := 'fielda;fieldb';
values := Edit1.Text+';'+Edit2.Text;
cdsA.SetKey;
cdsA.Locate(fields, values, [loCaseInsensitive]);
end;
fieldA
and fieldB
exists in table and are defined in cdsA.Fields
too. When I execute this code the Locate
instruction generate exception EVariantInvalidArgError ... Invalid argument
. I'm wondering what's wrong. TIA.
Francesco
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的代码是错误的。 :)
Your code is wrong. :)