public void AddSchemaAndTablenameParametersToCommand(IDbCommand dc, SchemaObjectName tableOrViewname) { if (tableOrViewname.HasSchema()) { AddInput(dc, "dbname", tableOrViewname.Schema); } AddInput(dc, "tablename", tableOrViewname.Name); }
public override Dictionary <string, DbParameterAccessor> GetAllColumns(string tableOrViewName) { String[] qualifiers = NameNormaliser.NormaliseName(tableOrViewName).Split('.'); SchemaObjectName name = SchemaObjectName.Parse(qualifiers); string qry = GetAllColumnsSql(name); return(ReadIntoParams(name, qry)); }
public string GetAllColumnsSql(SchemaObjectName tableOrViewName) { StringBuilder query = new StringBuilder(); query .Append("SELECT column_name, data_type, character_maximum_length as data_type_size ") .Append("FROM information_schema.columns ") .Append("WHERE "); if (tableOrViewName.HasSchema()) { query.Append("LOWER(table_schema)=?dbname AND LOWER(table_name)=?tablename "); } else { query.Append("(table_schema=database() AND LOWER(table_name)=?tablename) "); } query.Append("ORDER BY ordinal_position"); return(query.ToString()); }
private Dictionary <string, DbParameterAccessor> ReadIntoParams(SchemaObjectName tableOrViewname, string query) { Dictionary <string, DbParameterAccessor> accessorDictionary = new Dictionary <string, DbParameterAccessor>(); int position = 0; DbCommand dc = CurrentConnection.CreateCommand(); dc.Transaction = CurrentTransaction; dc.CommandText = query; dc.CommandType = CommandType.Text; AddSchemaAndTablenameParametersToCommand(dc, tableOrViewname); using (DbDataReader reader = dc.ExecuteReader()) { while (reader.Read()) { DbParameterAccessor accessor = MySqlTypeConverter.BuildDbParameterAccessorFrom(reader, position++); Console.WriteLine("DbParameter DbFieldName={0}", accessor.DbFieldName); accessorDictionary.Add(accessor.DbFieldName.ToLowerInvariant(), accessor); } } return(accessorDictionary); }
public void AddSchemaAndTablenameParametersToCommand(IDbCommand dc, SchemaObjectName tableOrViewname) { if (tableOrViewname.HasSchema()) AddInput(dc, "dbname", tableOrViewname.Schema); AddInput(dc, "tablename", tableOrViewname.Name); }
private Dictionary<string, DbParameterAccessor> ReadIntoParams(SchemaObjectName tableOrViewname, string query) { Dictionary<string, DbParameterAccessor> accessorDictionary = new Dictionary<string, DbParameterAccessor>(); int position = 0; DbCommand dc = CurrentConnection.CreateCommand(); dc.Transaction = CurrentTransaction; dc.CommandText = query; dc.CommandType = CommandType.Text; AddSchemaAndTablenameParametersToCommand(dc, tableOrViewname); using(DbDataReader reader = dc.ExecuteReader()) { while (reader.Read()) { DbParameterAccessor accessor = MySqlTypeConverter.BuildDbParameterAccessorFrom(reader, position++); Console.WriteLine("DbParameter DbFieldName={0}", accessor.DbFieldName); accessorDictionary.Add(accessor.DbFieldName.ToLowerInvariant(), accessor); } } return accessorDictionary; }
public string GetAllColumnsSql(SchemaObjectName tableOrViewName) { StringBuilder query = new StringBuilder(); query .Append("SELECT column_name, data_type, character_maximum_length as data_type_size ") .Append("FROM information_schema.columns ") .Append("WHERE "); if(tableOrViewName.HasSchema()) { query.Append("LOWER(table_schema)=?dbname AND LOWER(table_name)=?tablename "); } else { query.Append("(table_schema=database() AND LOWER(table_name)=?tablename) "); } query.Append("ORDER BY ordinal_position"); return query.ToString(); }