Exemplo n.º 1
0
        protected void TranslateScalarParameter(CatalogDevicePlan devicePlan, CatalogDevicePlanNode devicePlanNode, PlanNode planNode)
        {
            SQLType type = null;

            switch (planNode.DataType.Name)
            {
            case "System.String":
            case "System.Name":
            case "System.UserID":
                type = new SQLStringType(200);
                break;

            case "System.Integer":
                type = new SQLIntegerType(4);
                break;

            case "System.Boolean":
                type = new SQLIntegerType(1);
                break;
            }

            if (type != null)
            {
                string parameterName = String.Format("P{0}", devicePlanNode.PlanParameters.Count + 1);
                devicePlanNode.PlanParameters.Add(new CatalogPlanParameter(new SQLParameter(parameterName, type, null), planNode));
                devicePlanNode.WhereCondition.AppendFormat("@{0}", parameterName);
            }
            else
            {
                devicePlan.IsSupported = false;
            }
        }
Exemplo n.º 2
0
        public string GetCommandText(string sql, SQLStringType type)
        {
            string provider = this.provider;

            if (provider != null)
            {
                if (!(provider == "System.Data.OracleClient"))
                {
                    if (provider == "System.Data.SqlClient")
                    {
                        switch (type)
                        {
                        case SQLStringType.OracleSQLString:
                            sql = sql.Replace(":", "@");
                            sql = sql.Replace("||", "+");
                            sql = sql.Replace("NVL", "ISNULL");
                            sql = sql.Replace("SYSDATE", "SYSDATETIME()");
                            return(sql);

                        case SQLStringType.SqlServerSQLString:
                            return(sql);
                        }
                    }
                    return(sql);
                }
                switch (type)
                {
                case SQLStringType.OracleSQLString:
                    return(sql);

                case SQLStringType.SqlServerSQLString:
                    sql = sql.Replace("@", ":");
                    sql = sql.Replace("+", "||");
                    sql = sql.Replace("ISNULL", "NVL");
                    sql = sql.Replace("SYSDATETIME()", "SYSDATE");
                    return(sql);
                }
            }
            return(sql);
        }