Example #1
0
        private void InsertOpenTypeFiltersWhenRhs(object val)
        {
            OpenTypePropertySqlMetaData openTypePropertySqlMetaDatum = this.m_OpenTypeProperties.Pop();
            string sqlTypeForClrType = ExpressionUtility.GetSqlTypeForClrType(val.GetType());
            string str = string.Format("( CASE WHEN ( Data.exist('(/Properties/{0})[1]') = 1 ) THEN", openTypePropertySqlMetaDatum.PropertyName);

            str = string.Concat(str, string.Format("\n {0} THEN", this.GetCaseStatementToCheckSqlType(openTypePropertySqlMetaDatum.PropertyName, sqlTypeForClrType)));
            str = string.Concat(str, string.Format("\n Data.value('(/Properties/{0})[1]','{1}' )", openTypePropertySqlMetaDatum.PropertyName, sqlTypeForClrType));
            str = string.Concat(str, " END END)");
            this.PartialClause.Insert(openTypePropertySqlMetaDatum.QueryIndex, str);
        }
Example #2
0
        private void InsertOpenTypeFilters(object val, string sqlParam)
        {
            OpenTypePropertySqlMetaData sqlQueryExpressionOperator = this.m_OpenTypeProperties.Pop();
            string sqlTypeForClrType = ExpressionUtility.GetSqlTypeForClrType(val.GetType());
            string str = string.Format("( 1 = CASE WHEN ( Data.exist('(/Properties/{0})[1]') = 1 ) THEN", sqlQueryExpressionOperator.PropertyName);

            str = string.Concat(str, string.Format("\n {0} THEN", this.GetCaseStatementToCheckSqlType(sqlQueryExpressionOperator.PropertyName, sqlTypeForClrType)));
            if (sqlQueryExpressionOperator.ComparisonOperator == null)
            {
                sqlQueryExpressionOperator.ComparisonOperator = this.GetSqlQueryExpressionOperator(ExpressionType.Equal);
            }
            object[] propertyName = new object[] { sqlQueryExpressionOperator.PropertyName, sqlTypeForClrType, sqlQueryExpressionOperator.ComparisonOperator, sqlParam };
            str = string.Concat(str, string.Format("\n CASE WHEN ( Data.value('(/Properties/{0})[1]','{1}') {2} {3} ) THEN 1 ELSE 0", propertyName));
            str = string.Concat(str, " END END END )");
            this.PartialClause.Insert(sqlQueryExpressionOperator.QueryIndex, str);
        }