全局区声明临时变量
public
testPro : TDataSetProvider;
testQr : TQuery;
动态创建Provider并注册:function TTest.sFunIniProvider(Name: string): Boolean;
begin
if FindComponent('dsp'+Name) = nil then
begin
if FindComponent('qr'+Name) = nil then
begin
try
testQr := TQuery.Create(Self);
except
result := false;
Exit;
End;
testQr.Name := 'qr'+Name;
testQr.DatabaseName := 'hnjtBase';
testQr.SQL.Text := Uppercase('select * from zxy_TestM');
end;
try
testPro := TDataSetProvider.Create(Self);
except
result := false;
Exit;
End;
testPro.Name := 'dsptestM';
testPro.DataSet := testQr;
sTableName := 'zxy_testM';
sTableField := 'No';
testPro.BeforeGetRecords := dspBeforeGetRecords;
testPro.Exported := true;
testPro.Constraints := true;
Self.RegisterProvider(testPro);
end; Result := True;
end;但客户端引用时不存在动态创建的Provider,报错:Provider not exported在创建方法中写入输出所有对象代码时能输出动态创建的Provider.但在退出创建方法后,在其它地方测试时没有动态创建的Provider.只有表态创建的那些对象.请各位高手指教
public
testPro : TDataSetProvider;
testQr : TQuery;
动态创建Provider并注册:function TTest.sFunIniProvider(Name: string): Boolean;
begin
if FindComponent('dsp'+Name) = nil then
begin
if FindComponent('qr'+Name) = nil then
begin
try
testQr := TQuery.Create(Self);
except
result := false;
Exit;
End;
testQr.Name := 'qr'+Name;
testQr.DatabaseName := 'hnjtBase';
testQr.SQL.Text := Uppercase('select * from zxy_TestM');
end;
try
testPro := TDataSetProvider.Create(Self);
except
result := false;
Exit;
End;
testPro.Name := 'dsptestM';
testPro.DataSet := testQr;
sTableName := 'zxy_testM';
sTableField := 'No';
testPro.BeforeGetRecords := dspBeforeGetRecords;
testPro.Exported := true;
testPro.Constraints := true;
Self.RegisterProvider(testPro);
end; Result := True;
end;但客户端引用时不存在动态创建的Provider,报错:Provider not exported在创建方法中写入输出所有对象代码时能输出动态创建的Provider.但在退出创建方法后,在其它地方测试时没有动态创建的Provider.只有表态创建的那些对象.请各位高手指教
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货