/// <summary> /// 调整过滤串:数据引擎要求设置给 /// WherePart的过滤串必须是" and "开头 /// </summary> private void SetFilterString(DynamicQuerySetting dynamicQuerySetting) { if (!string.IsNullOrEmpty(this._filterString)) { dynamicQuerySetting.WherePart = " AND " + this._filterString; } }
private DynamicQuerySetting GetDynamicQuert4SqlQuerySetting(QuerySetting qs) { DynamicQuerySetting dynamicQuerySetting = new DynamicQuerySetting(); string sourceSelectPart = this.GetSourceSelectPart(qs); string finalSelectPart = string.Empty; if (!string.IsNullOrEmpty(this._filterString)) { finalSelectPart = GetFinalSelectPartWhenHasFilter(sourceSelectPart); if (!ContainsUfWhereString(sourceSelectPart)) { this.SetFilterString(dynamicQuerySetting); } } else { finalSelectPart = GetFinalSelectPartWhenNoFilter(sourceSelectPart); } // 当sourceSelectPart不包含"{{UFWHERE}}"时,finalSelectPart // 必然为空,从而不会设置dynamicQuerySetting.SelectPart // 此时如果filterString不为空,会在以上的处理中设置在 // dynamicQuerySetting.WherePart之中 if (!string.IsNullOrEmpty(finalSelectPart)) { dynamicQuerySetting.SelectPart = finalSelectPart; } return(dynamicQuerySetting); }
/// <summary> /// 1.this._filterString为空; /// 原始的selectPart含有{{UFWHERE}},则把{{UFWHERE}}替换成where /// 2.this._filterString不为空,则把this._filterString包装成where字句并替换{{UFWHERE}}; /// A.原始的selectPart含有{{UFWHERE}}: /// 则把this._filterString包装成where字句并替换{{UFWHERE}}, /// 此时不设置DynamicQuerySetting.WherePart /// B.原始的selectPart不含有{{UFWHERE}}: /// 此时仅仅设置DynamicQuerySetting.WherePart = " AND " + this._filterString /// </summary> /// <returns> /// 返回值为一个动态设置好sql信息的数据引擎定义的对象。 注意: /// DynamicQuerySetting对象是数据引擎允许在代码中动态设置sql /// 的实现方式,因此设置此对象之后原来在UAP中预置的selectpart /// 将被忽略,所以需要将原来设置的selectpart相应信息转移到 /// DynamicQuerySetting对象中 /// </returns> private DynamicQuerySetting GetDynamicQuerySetting() { QuerySetting qs = this.GetQuerySetting(); if (qs is SQLQuerySetting) { return(this.GetDynamicQuert4SqlQuerySetting(qs)); } DynamicQuerySetting dynamicQuerySetting = new DynamicQuerySetting(); this.SetFilterString(dynamicQuerySetting); if (!string.IsNullOrEmpty(this._extendingDataSourceTempDBName)) { dynamicQuerySetting.ChildQueryTmpTables[this._extendingDataSourceTempDBName] = this._extendingDataSourceTempDBName; } return(dynamicQuerySetting); }