public override void Emit(SsisEmitterContext context) { // select * from (select FactIncidentID, CaseNumber from FactIncident) [refTable] // where [refTable].[FactIncidentID] = ? // Enable Cache and No-Cache Modes ////switch (_astLookupNode.CacheMode) ////{ //// case AstLookupCacheMode.Full: // Keep default //// Instance.SetComponentProperty("CacheType", 0); //// break; //// case AstLookupCacheMode.Partial: //// Instance.SetComponentProperty("CacheType", 1); //// break; //// case AstLookupCacheMode.None: //// Instance.SetComponentProperty("CacheType", 2); //// break; //// default: // do nothing and keep default //// break; ////} ////if (_astLookupNode.CacheMode != AstLookupCacheMode.Full) ////{ //// var sqlCommandParamPropertyName = string.Format("[{0}].[SqlCommandParam]", Component.Name); //// var sqlCommandParamBody = ""; //// this.Dataflow.SetExpression(sqlCommandParamPropertyName, sqlCommandParamBody); //// Instance.SetComponentProperty("SqlCommandParam", //// SSISUtilities.EvaluateSSISExpression(sqlCommandParamBody, context.ParentContainer.DtsContainer) //// ); ////} if (_astLookupNode.Query.QueryType == QueryType.Expression) { var sqlCommandPropertyName = string.Format(CultureInfo.InvariantCulture, "[{0}].[SqlCommand]", Component.Name); Dataflow.SetExpression(sqlCommandPropertyName, _astLookupNode.Query.Body); Instance.SetComponentProperty( "SqlCommand", SSISUtilities.EvaluateSSISExpression(_astLookupNode.Query.Body, context.ParentContainer.DtsContainer)); } else { Instance.SetComponentProperty("SqlCommand", _astLookupNode.Query.Body); } if (_astLookupNode.EnableNoMatchOutputPath) { Instance.SetComponentProperty("NoMatchBehavior", 1); } else { foreach (IDTSOutput100 output in Component.OutputCollection) { output.ErrorRowDisposition = ConvertErrorRowDisposition(_astLookupNode.DefaultErrorRowDisposition); } } Flush(); ProcessBindings(context); foreach (var input in _astLookupNode.Inputs) { MapInput(input.LocalColumnName, input.RemoteColumnName); } Instance.SetComponentProperty("ParameterMap", _parameterMap); _parameterMap = string.Empty; foreach (var output in _astLookupNode.Outputs) { MapOutput(output.LocalColumnName, output.RemoteColumnName); } Flush(); }