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); } } }
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())); }
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); }
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); }