public override string GetTableName(PocoData pd, TableNameManger tn) { var ti = pd.TableInfo; if (ti.TableName.Contains(".")) { return(ti.TableName); } var tag = ti.FixTag; var tableName = ti.TableName; var name = tn.Get(tag); if (name != null) { tableName = name.TablePrefix + tableName + name.TableSuffix; } var schemaName = ti.SchemaName; if (string.IsNullOrEmpty(schemaName)) { return(this.EscapeSqlIdentifier(tableName)); } return(string.Format("[{0}_{1}]", schemaName, tableName)); }
private void initSqlHelper(string _providerName) { _cacheService = new MemoryCacheService(); _events = new SqlEvents(); _tableNameManger = new TableNameManger(); _sqlConfig = new SqlConfig(this); _sql = new SqlRecord(); _sqlMonitor = new NullSqlMonitor(); _sql.SqlMonitor = _sqlMonitor; _connectionType = ConnectionType.Default; if (_providerName != null) { _sqlType = SqlConfig.GetSqlType(_providerName, _writeConnectionString); var _provider = DatabaseProvider.Resolve(_sqlType); _factory = _provider.GetFactory(); } else { _sqlType = SqlConfig.GetSqlType(_factory.GetType().FullName, _writeConnectionString); } _provider = DatabaseProvider.Resolve(_sqlType); }
public virtual string EscapeTableName(PocoData pd, TableNameManger tn) { var ti = pd.TableInfo; var index = ti.TableName.IndexOf('.'); if (index > -1) { return(ti.TableName.Substring(index)); } var tag = ti.FixTag; var tableName = ti.TableName; var name = tn.Get(tag); if (name != null) { tableName = name.TablePrefix + tableName + name.TableSuffix; } return(EscapeSqlIdentifier(tableName)); }
public virtual string GetTableName(Table ti, TableNameManger _tableNameManger) { if (ti.TableName.Contains(".")) { return(ti.TableName); } var tag = ti.FixTag; var tableName = ti.TableName; var name = _tableNameManger.Get(tag); if (name != null) { tableName = name.TablePrefix + tableName + name.TableSuffix; } var schemaName = ti.SchemaName; if (string.IsNullOrEmpty(schemaName)) { return(provider.EscapeSqlIdentifier(tableName)); } return(string.Format("{0}.{1}", provider.EscapeSqlIdentifier(schemaName), provider.EscapeSqlIdentifier(tableName))); }
public static string AddSelectClause <T>(DatabaseProvider DatabaseType, string sql, TableNameManger manger) { if (sql.StartsWith(";")) { return(sql.Substring(1)); } if (rxSelect.IsMatch(sql)) { return(sql); } var type = typeof(T); var selectHeaders = selectClause.Get(Tuple.Create(type, DatabaseType), () => { var pd = PocoData.ForType(typeof(T)); var tableName = DatabaseType.EscapeTableName(pd.TableInfo.TableName); StringBuilder sb = new StringBuilder(); foreach (var col in pd.Columns) { if (sb.Length > 0) { sb.Append(","); } if (col.ResultColumn && string.IsNullOrEmpty(col.ResultSql) == false) { sb.AppendFormat(col.ResultSql, tableName + "."); sb.Append(" AS '"); sb.Append(col.ColumnName); sb.Append("'"); } else { sb.Append(tableName); sb.Append("."); sb.Append(DatabaseType.EscapeSqlIdentifier(col.ColumnName)); } } if (sb.Length == 0) { sb.Append("NULL"); } sb.Insert(0, "SELECT "); return(sb.ToString()); }); StringBuilder s = new StringBuilder(); s.Append(selectHeaders); if (!rxFrom.IsMatch(sql)) { s.Append(" FROM "); var tableName2 = DatabaseType.EscapeTableName(PocoData.ForType(typeof(T)).TableInfo.TableName); s.Append(tableName2); } s.Append(" "); s.Append(sql); return(s.ToString()); }
//private static Cache<List<Type>, List<SelectHeader>> SelectDict = new Cache<List<Type>, List<SelectHeader>>(); public static string GetSelectCount <T>(DatabaseProvider DatabaseType, string sql, TableNameManger manger) { if (sql.StartsWith(";")) { return(sql.Substring(1)); } if (rxSelect.IsMatch(sql)) { return(sql); } if (rxFrom.IsMatch(sql)) { return("SELECT Count(1) " + sql);// string.Format("SELECT Count(1) {1}", cols, sql); } var pd = PocoData.ForType(typeof(T)); var fullTableName = DatabaseType.GetTableName(pd, manger); return(string.Format("SELECT Count(1) FROM {0} {1}", fullTableName, sql)); }