如何通过delphi clientdataset中特定行(记录)的ID向字段引用插入值(数据)
我试图在运行时将数据插入到clientdataset中由行(或记录)的特定ID引用的字段中 我使用的是delphi,下面是我案例的结构——mysql数据库>mysqluniprovider>uniquery>数据集提供程序>clientdataset>数据源>dbgrid 我试图插入的数据是在运行时由同一过程中的另一个代码生成的。因此,dbnavigator在这里不适用于我。另一方面,我更喜欢在clientdataset级别执行此操作,而不希望直接使用sql 我能够使用clientdataset.lookup/locate/findkey找到引用id。但我无法将光标指向同一行引用id和特定字段的单元格以插入数据 我认为对于这种情况,必须有一个代码组件,就像cds.lookup/locate/findkey一样,在运行时更新现有表中的数据如何通过delphi clientdataset中特定行(记录)的ID向字段引用插入值(数据),delphi,Delphi,我试图在运行时将数据插入到clientdataset中由行(或记录)的特定ID引用的字段中 我使用的是delphi,下面是我案例的结构——mysql数据库>mysqluniprovider>uniquery>数据集提供程序>clientdataset>数据源>dbgrid 我试图插入的数据是在运行时由同一过程中的另一个代码生成的。因此,dbnavigator在这里不适用于我。另一方面,我更喜欢在clientdataset级别执行此操作,而不希望直接使用sql 我能够使用clientdataset
我将非常感谢您在这方面提供的任何帮助。您使用TDBGrid显示数据是偶然的,您更改了clientdataset中的数据,TDBGrid将自动更新其记录显示。您需要做的是使用clientdataset的方法移动到记录并更新其字段数据。您可以使用clientdataset的
Locate
方法移动到所需的记录,如下所示:
ID := 99; // the ID of the record to change
if ClientDataSet1.Locate('ID', ID, []) then begin
ClientDataSet1.Edit; // Put the CDS into dsEdit mode so you can change its field data
ClientDataSet1.FieldByName('SomeField').AsString := 'Whatever';
ClientDataSet1.Post; // save the change(s) to the record
end;
查看
t字段
的在线帮助,了解其各种AsXXX
方法,如AsInteger
,AsFloat
,等等。MartynA,它对我来说非常顺利。非常感谢你。