示例#1
0
 /// <summary>
 /// 调整过滤串:数据引擎要求设置给
 /// WherePart的过滤串必须是" and "开头
 /// </summary>
 private void SetFilterString(DynamicQuerySetting dynamicQuerySetting)
 {
     if (!string.IsNullOrEmpty(this._filterString))
     {
         dynamicQuerySetting.WherePart = " AND " + this._filterString;
     }
 }
示例#2
0
        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);
        }
示例#3
0
        /// <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);
        }