三层结构:ADO多表更新会出现[列名 'xxx' 无效。]的错误,为什么? D6+Sql2000 (300分)

  • 主题发起人 主题发起人 afeisky
  • 开始时间 开始时间
A

afeisky

Unregistered / Unconfirmed
GUEST, unregistred user!
在多表更新中:
中间层:
ADODataSet1的CommandText:='Select a.*,b.FName from table1 a,table2 b where a.id1=b.id2'
DataSetProvider1指向ADODataSet1
客户端:
ClientDataSet1 指向 DataSetProvider1
运行:
对ClientDataSet的id1和FName字段填写值。
出错,系统提示:列名 'FName' 无效。 ?

为了这个问题:
我用了在以下办法:(都不起作用?)
procedure TCoClass1.DataSetProvider1BeforeUpdateRecord(Sender: TObject;
SourceDS: TDataSet; DeltaDS: TCustomClientDataSet;
UpdateKind: TUpdateKind; var Applied: Boolean);
begin
DeltaDS.FieldByName('KeyID').ProviderFlags :=
DeltaDS.FieldByName('KeyID').ProviderFlags + [pfInKey]
DeltaDS.FieldByName('FName').ProviderFlags :=
DeltaDS.FieldByName('FName').ProviderFlags - [pfInUpdate];
end;

procedure TCoClass1.ADODataSet1AfterOpen(DataSet: TDataSet);
begin
ADODataSet1.Recordset.Properties.Item['Unique Table'].Value := 'table1'
end;


哪位大侠能帮帮我吗?
先谢谢你!
 
后退
顶部