J
jettop
Unregistered / Unconfirmed
GUEST, unregistred user!
在DBClient.pas 的TCustomClientDataSet.OpenCursor(InfoQuery: Boolean) 过程中报错,通常是什么原因??? ( 积分: 100 )<br />前提:
动态创建2个 adoquery + dataSetProvider + ClientDataSet
目的:用于主从结构的模式,并override 了TCustomClientDataSet.DoBeforeGetRecords
其代码如下:
procedure TMasterDataSet.DoBeforeGetRecords(var OwnerData: OleVariant);
var i : integer ;
begin
if Assigned(FDetailQuerys) then
//FDetailQuerys 是 TList类
for i := 0 to FDetailQuerys.Count - 1do
begin
TADOQuery(FDetailQuerys.Items).SQL.Assign(Self.Details.Items.DataSet.SQL);
TADOQuery(FDetailQuerys.Items).DataSource := FMasterDataSource ;
end ;
FMasterQuery.SQL.Assign(fsql);
Self.SetProvider(FDataSetProvider) ;
inherited;
end;
问题:
当我Open ClientDataset 时 ,在在DBClient.pas 的TCustomClientDataSet.OpenCursor(InfoQuery: Boolean) 过程的 Check(FDSBase.AppendData(DataPacket, ProviderEOF));中报错如下:
Field name can't be null, datapacket may be corrupted
请问大吓,这个错误通常是怎样引起的 ??
动态创建2个 adoquery + dataSetProvider + ClientDataSet
目的:用于主从结构的模式,并override 了TCustomClientDataSet.DoBeforeGetRecords
其代码如下:
procedure TMasterDataSet.DoBeforeGetRecords(var OwnerData: OleVariant);
var i : integer ;
begin
if Assigned(FDetailQuerys) then
//FDetailQuerys 是 TList类
for i := 0 to FDetailQuerys.Count - 1do
begin
TADOQuery(FDetailQuerys.Items).SQL.Assign(Self.Details.Items.DataSet.SQL);
TADOQuery(FDetailQuerys.Items).DataSource := FMasterDataSource ;
end ;
FMasterQuery.SQL.Assign(fsql);
Self.SetProvider(FDataSetProvider) ;
inherited;
end;
问题:
当我Open ClientDataset 时 ,在在DBClient.pas 的TCustomClientDataSet.OpenCursor(InfoQuery: Boolean) 过程的 Check(FDSBase.AppendData(DataPacket, ProviderEOF));中报错如下:
Field name can't be null, datapacket may be corrupted
请问大吓,这个错误通常是怎样引起的 ??