调用栈:
TCodeRelevancyDefStorage:: LoadCodeRelevancyDef
TCodeCreator:: DoInit
TCodeCreator:: ReInit
TCodeCreator:: .ctor
TCodeServiceFunc:: DoCreateCodeCreator
TBizModuleCreateMsgHandle:: DoCreateCodeCreator
TBizModuleCreateMsgHandle:: DoExecute
TFuncManager:: InternalRunFunc
TFuncManager:: RunFunc
TFuncManager:: RunFunc
TSTANDARDSTYLEMAINFORM:: UIRunFunc
TFuncManager:: RunFunc
TOperatorFuncTreeView:: Click
TOperatorFuncTreeView:: WndProc
代码:文号资源集1818行开始
static procedure TCodeRelevancyDefStorage.LoadCodeRelevancyDef(AOwner: TComponent;
ACodeDefList: TCodeDefList;
ACodeRelevancyDefList: TCodeRelevancyDefList;
AInfoURL,AFuncURL: string);
var
lQuery: TSQLDataset;
lCodeDefIDs: TStrings;
lCodeRelevancyDef: TCodeRelevancyDef;
const
cSQL1 = 'select * from %s where (FFuncURL isNull or FFuncURL=''%s'') and FInfoURL=''%s''';
cSQL2 = 'select * from %s where FInfoURL=''%s''';
begin
if not Assigned(ACodeRelevancyDefList) or (AInfoURL='') then exit;
lQuery := TSQLDataset.Create(AOwner);
lCodeDefIDs := TStringList.Create;
try
lQuery.Database.URL := TDBProcedureLib.OperationDBConnectionURL;
if AFuncURL='' then
lQuery.SQL.Text := SysUtils.Format(cSQL2,[GetCodeRelevancyDefTabName, SysUtils.AnsiUpperCase(AInfoURL)])
else
lQuery.SQL.Text := SysUtils.Format(cSQL1,[GetCodeRelevancyDefTabName, SysUtils.AnsiUpperCase(AFuncURL), SysUtils.AnsiUpperCase(AInfoURL)]);
lQuery.Open; //执行到这里报错
while not lQuery.Eof do
begin
lCodeDefIDs.Add(lQuery.FieldByName('FCodeGUID').AsString);
lQuery.Next;
end;
TCodeDefStorage.LoadCodeDefs(AOwner, ACodeDefList, lCodeDefIDs);
lQuery.First;
while not lQuery.Eof do
begin
lCodeRelevancyDef := ACodeRelevancyDefList.AddCodeRelevancyDef;
LoadCodeRelevancyDefByDataset(lCodeRelevancyDef, ACodeDefList, lQuery);
lQuery.Next;
end;
lQuery.Close;
finally
lCodeDefIDs.Free;
lQuery.Free;
end;
end; |