COM+中动态取数据时,单条记录刷新问题;另有一个REPORTMACHINE发布问题。请各位大吓帮忙!!(0分)

  • 主题发起人 主题发起人 无忧鱼
  • 开始时间 开始时间

无忧鱼

Unregistered / Unconfirmed
GUEST, unregistred user!
1、
在中间层,我用动态取数据的方法,所有的数据集都是动态创建,自己写方法来取得DATA数据包。这是取数据的方法:
function TLYSVR.GetData(var Sql: OleVariant;
Compress: Integer;
const FilterString: WideString;
var LastValue: OleVariant;
Count: Integer): OleVariant;
var TmpQry:TMySQLQuery;
TmpDsp:TLYDataSetProvider;
TmpDataSource:TDataSource;
i:integer;
Temp:array of Variant;
mydata:OleVariant;
begin
TmpQry:=CreateQuery(true);
TmpDsp:=CreateProvider;
TmpDsp.DataSet :=TmpQry;
TmpDsp.LYOwnerData := LastValue;
TmpDsp.LYCount :=Count;
if not VarIsArray(Sql) then
begin
TmpQry.SQL.Add(GetSql(Sql,FilterString));
TmpQry.SqlId:=Sql;
end else
begin
TmpQry.SQL.Add(GetSql(Sql[0],FilterString));
TmpQry.SqlId:=Sql[0];
TmpDataSource:=CreateDataSource;
TmpDataSource.DataSet := TmpQry;
Temp:=Sql;
for i:=1 to high(Temp)do
CreateDetail(Sql,TmpDataSource);
end;
try
mydata:=TmpDsp.LYData ;
if Compress=1 then
begin
//此处调用压缩数据代码
MyData:=DoCompress(mydata) ;
end ;
result:=mydata;
finally
freeDataSet;
end;
end;

现在的问题是,如果我在前台需要刷新单条记录,那么我该如何改写CLIENTDATASET的
RefreshRecord方法????
2、ReportMachine问题,我在用这个程序的安装包安装应用程序以后,发现报表不能打印,一打印就报错。DCLReportMachine.bpl这个包我已发布,是否还需要其它的包???
这两个问题非常之急,大家帮忙帮忙!!!!!
 
ClientDataset.ProviderName有没有值,如果没有的话RefreshRecord方法肯定没法用了,
只好你自己写了
 
晕,我当然是自己写,现在关键是自己写的那个方法在刷新单条数据时,从表数据会出现两份相同的数据。
 
接受答案了.
 
后退
顶部