运行期创建的数据集,也可以创建在信息中,通过数据集ID来访问
function TMainForm.CreateDataSetInInfo(AInfo: TInfo; AID, AConnectionStr, ASQL: String): TSQLDataSet;
begin
Result := TSQLDataSet.Create(AInfo);
Result.ID := AID;
Result.ConnectionString := 'DATABASEURL='+AConnectionStr;
Result.Connection.Transaction := AInfo.Transaction;
Result.SQL.Text := ASQL;
Result.Open;
//注意,这句必须有,否则Info.DataSetByID会报错
AInfo.RefreshList;
end;
procedure TMainForm.Button6Click(Sender: TObject);
var
lDataSet: TSQLDataSet;
lInfo: TInfo;
lID: String;
begin
lID := 'DataSet'+SysUtils.IntToStr(Random(1000));
lInfo := GetInfoByURL('Biz:\LZ\DLKJXX.Info');
lDataSet := CreateDataSetInInfo(lInfo, lID, 'Biz:\OPERATION\OPERATIONDB.DATABASE', 'SELECT * FROM CRM_CUSTOMER');
lDataSet.Open;
InfoBroker1.AutoBroker := False;
InfoBroker1.Info := lInfo;
DataSetBroker1.InfoBroker := InfoBroker1;
DataSetBroker1.DataSetID := lID;
end; |