/// <summary> /// Write column names and returns values to be inserted /// </summary> /// <param name="arguments"></param> /// <param name="tableInfo"></param> /// <param name="provider"></param> /// <param name="sb"></param> /// <returns></returns> private static List <object> FillArgs(IDictionary <string, object> arguments, TableInfo tableInfo, IHaveDbProvider provider, StringBuilder sb = null) { var args = new List <object>(); foreach (var col in arguments) { if (col.Key == tableInfo.PrimaryKey) { if (tableInfo.AutoGenerated) { continue; } } if (tableInfo.Excludes.Any(n => n.Equals(col.Key, StringComparison.InvariantCulture))) { continue; } if (sb != null) { sb.AppendFormat("{0},", provider.EscapeName(col.Key)); } if (tableInfo.ConvertToString.Any(t => t == col.Key)) { args.Add(col.Value.ToString()); } else { args.Add(col.Value); } } return(args); }
public SqlFuConnection(DbConnection cnx,DbEngine engine) { cnx.MustNotBeNull(); _conex = cnx; _provider = ProviderFactory.GetProvider(engine); _conex.Open(); }
private void Init(string cnxString, IHaveDbProvider provider) { cnxString.MustNotBeEmpty(); provider.MustNotBeNull(); _provider = provider; _cnxString = cnxString; KeepAlive = false; }
private void Init(string cnxString, IHaveDbProvider provider) { cnxString.MustNotBeEmpty(); provider.MustNotBeNull(); _provider = provider; _conex = _provider.CreateConnection(); _conex.ConnectionString = cnxString; Connection.Open(); }
public static string EscapeSql(this IHaveDbProvider provider, string sql) { if (sql.IsNullOrEmpty()) { return(sql); } if (sql.IndexOf(EscapeSqlMarker) < 0) { return(sql); } var sb = new StringBuilder(sql.Length * 2); bool inIdentifier = false; char[] delimiters = new[] { ',', ' ', '\t', '\n', '\r', '=', '<', '>', ':', '(', ')', ']', '+', '-', '*', '/', '%' }; List <char> identifier = new List <char>(16); foreach (var c in sql) { if (inIdentifier) { if (c == EscapeSqlMarker || delimiters.Any(d => d == c)) { inIdentifier = false; if (c != EscapeSqlMarker) { sb.Append(provider.EscapeName(new string(identifier.ToArray()))); } sb.Append(c); identifier.Clear(); } else { identifier.Add(c); } continue; } if (c == EscapeSqlMarker) { inIdentifier = true; } else { sb.Append(c); } } if (identifier.Count > 0) { sb.Append(provider.EscapeName(new string(identifier.ToArray()))); } return(sb.ToString()); }
public PrepareStatement(IHaveDbProvider provider, string sql, params object[] args) { Provider = provider; _sql = sql; _args = args; }
public DbAccess(string cnxString, IHaveDbProvider provider) { Init(cnxString, provider); }
public SqlFuConnection(string cnxString, IHaveDbProvider provider) { Init(cnxString, provider); }
public PreparePagedStatement(IHaveDbProvider provider, long skip, int take, string sql, params object[] args) : base(provider, sql, args) { _skip = skip; _take = take; }