Ejemplo n.º 1
0
 public CmdArguments(string[] args)
 {
     //.exe /debug /p[arameters]:Param1=value;Param2=value /output:D:\folder *.tt
     foreach (string OParam in args)
     {
         if (OParam.Equals("/debug", StringComparison.OrdinalIgnoreCase))
         {
             FDebug = true;
             continue;
         }
         if (OParam.StartsWith("/output:", StringComparison.OrdinalIgnoreCase))
         {
             string OPath = OParam.Remove(0, 8);
             //TODO: Check if its a valid file path
             FOutputFile = OPath;
             continue;
         }
         if (OParam.StartsWith("/p:", StringComparison.OrdinalIgnoreCase) || OParam.StartsWith("/parameters:", StringComparison.OrdinalIgnoreCase))
         {
             string OParameters = OParam[2] == ':' ? OParam.Remove(0, 3) : OParam.Remove(0, 12);
             ParseParameters(OParameters);
             continue;
         }
         if (OParam.Contains("*") || OParam.Contains("?"))
         {
             string OParam2   = OParam.Replace("*", "#A#a#B#b#").Replace("?", "#A#a#2#B#b#");
             string OFullPath = Path.GetFullPath(OParam2);
             FSourceFiles.AddRange(Directory.GetFiles(Path.GetDirectoryName(OFullPath), Path.GetFileName(OFullPath).Replace("#A#a#B#b#", "*").Replace("#A#a#2#B#b#", "?")));
         }
         else
         {
             FSourceFiles.Add(OParam);
         }
     }
 }
Ejemplo n.º 2
0
        protected internal override string PrepareStatement()
        {
            string        OSafeTableName = Provider.Current.GetSafeTableName(GetSchemaName(), GetTableName());
            StringBuilder OValues        = new StringBuilder();
            StringBuilder OWheres        = new StringBuilder();

            foreach (IBaseParam OParam in FParameters)
            {
                if (FIncludeValueParams)
                {
                    if (OParam is IValueParam || OParam is INumberParam || OParam is IEnumParam)
                    {
                        if (OValues.Length > 0)
                        {
                            OValues.Append(",");
                        }
                        string OParameterName = OParam.ParameterName;
                        OValues.Append(OParam.GetStatement(Provider.Current.GetSafeColumnName(OParam.ColumnName), OParameterName));
                        OParam.ParameterName = OParameterName;
                    }
                }
                if (OParam is IWhereParam)
                {
                    if (OWheres.Length > 0)
                    {
                        OWheres.Append(" AND ");
                    }
                    string OParameterName = OParam.ParameterName;
                    OWheres.Append(OParam.GetStatement(Provider.Current.GetSafeColumnName(OParam.ColumnName), OParameterName));
                    OParam.ParameterName = OParameterName;
                }
            }

            return(GetQueryableStatement(OSafeTableName, OValues.ToString(), OWheres.ToString()));
        }
Ejemplo n.º 3
0
        public virtual int Execute(IDbConnection connection, IDbTransaction transaction)
        {
            FParameters.Clear();
            PreExecute();
            FSqlStatement = PrepareStatement();
            int OResult = 0;

            using (IDbCommand OCommand = connection.CreateCommand()) {
                OCommand.Transaction = transaction;
                OCommand.CommandText = FSqlStatement;
                foreach (IBaseParam OParam in FParameters)
                {
                    OParam.AddParameter(OCommand);
                }
                OResult = OCommand.ExecuteNonQuery();
            }
            PostExecute(OResult);
            return(OResult);
        }
Ejemplo n.º 4
0
        public override int Execute(IDbConnection connection, IDbTransaction transaction)
        {
            FParameters.Clear();
            PreExecute();
            FSqlStatement = PrepareStatement();
            int OResult = 0;

            using (IDbCommand OCommand = connection.CreateCommand()) {
                OCommand.Transaction = transaction;
                OCommand.CommandText = FSqlStatement;
                foreach (IBaseParam OParam in FParameters)
                {
                    OParam.AddParameter(OCommand);
                }
                if (Provider.Current is SqlServerProvider && FFetchPrimaryKeyValueAfterInsert)
                {
                    /* TODO: The responsibility of returning the inserted PK value should be implemented in the provider instead */
                    using (IDataReader OReader = OCommand.ExecuteReader()) {
                        if (OReader.Read())
                        {
                            FInsertedPKValue = OReader.GetValue(0);
                            OResult          = OReader.GetInt32(1);
                        }
                    }
                    using (IDbCommand OAffectedCommand = connection.CreateCommand()) {
                        OAffectedCommand.Transaction = transaction;
                        OAffectedCommand.CommandText = "";
                    }
                }
                else
                {
                    OResult = OCommand.ExecuteNonQuery();
                }
            }
            PostExecute(OResult);
            return(OResult);
        }