internal static RecordInfo BuildRecordInfo(SqlDataReader reader, ITableInfoProvider tableInfoProvider) { RecordInfo record = new RecordInfo(); record._Operation = GetOperation((string)reader["Operation"]); record._LogSequenceNumber = new LogSequenceNumber(reader); if (!reader.IsDBNull(reader.GetOrdinal("AllocUnitName"))) { record._AllocationUnitName = AllocationUnitName.FromString((string)reader["AllocUnitName"]); if (record._AllocationUnitName != null) { record._Table = tableInfoProvider.GetTable(record._AllocationUnitName.ObjectName, "sys".Equals(record._AllocationUnitName.SchemaName)); } } if (!reader.IsDBNull(reader.GetOrdinal("RowLog Contents 0"))) { record._RowLogContents0 = reader.GetSqlBytes(reader.GetOrdinal("RowLog Contents 0")).Buffer; } if (!reader.IsDBNull(reader.GetOrdinal("RowLog Contents 1"))) { record._RowLogContents1 = reader.GetSqlBytes(reader.GetOrdinal("RowLog Contents 1")).Buffer; } if (!reader.IsDBNull(reader.GetOrdinal("Offset in Row"))) { record._RowOffset = (short)reader["Offset in Row"]; } return record; }
internal static RecordInfo BuildRecordInfo(SqlDataReader reader, ITableInfoProvider tableInfoProvider) { RecordInfo record = new RecordInfo(); record._Operation = GetOperation((string)reader["Operation"]); record._LogSequenceNumber = new LogSequenceNumber(reader); if (!reader.IsDBNull(reader.GetOrdinal("AllocUnitName"))) { record._AllocationUnitName = AllocationUnitName.FromString((string)reader["AllocUnitName"]); if (record._AllocationUnitName != null) { record._Table = tableInfoProvider.GetTable(record._AllocationUnitName.ObjectName, "sys".Equals(record._AllocationUnitName.SchemaName)); } } if (!reader.IsDBNull(reader.GetOrdinal("RowLog Contents 0"))) { record._RowLogContents0 = reader.GetSqlBytes(reader.GetOrdinal("RowLog Contents 0")).Buffer; } if (!reader.IsDBNull(reader.GetOrdinal("RowLog Contents 1"))) { record._RowLogContents1 = reader.GetSqlBytes(reader.GetOrdinal("RowLog Contents 1")).Buffer; } if (!reader.IsDBNull(reader.GetOrdinal("Offset in Row"))) { record._RowOffset = (short)reader["Offset in Row"]; } return(record); }
public void Remove(ITableInfoProvider table) { var tableInfo = table.TableInfo; var query = from item in tableInfo.Columns where NameValidator.VerifyItemPath(item.DataType) select new ItemName(item.DataType); foreach (var item in query) { var type = this[item.Name, item.CategoryPath]; type.Remove(table); } }
/// <param name="connectionString">MySQL connection string</param> /// <param name="transformers">Transformers that need to be used with raw string values</param> /// <param name="defaultTransformer">Default transformer used to transform data when transform for type is not found</param> public MySqlDatabaseImportService(string connectionString, Dictionary <string, ITransformer>?transformers = null, ITransformer?defaultTransformer = null) { _mySqlConnection = new MySqlConnection(connectionString); _mySqlConnection.Open(); _commandBuilder = new MySqlCommandBuilder(); _tableInfoProvider = new TableInfoProvider(_mySqlConnection); _transformers = transformers ?? new Dictionary <string, ITransformer>() { { "timestamp", new DateTimeTransformer() }, { "datetime", new DateTimeTransformer() } }; _defaultTransformer = defaultTransformer ?? new StringTransformer(); }
public LogReader(SqlConnection connection, ITableInfoProvider tableInfoProvider) { _Connection = connection; _TableInfoProvider = tableInfoProvider; }