public void Test_Blob() { ConnectString source = new ConnectString { Host = "192.168.0.120", Port = "1521", Instance = "orcl", UserId = "masgh", Password = "******" }; ConnectString dest = new ConnectString { Host = "192.168.0.205", Port = "1521", Instance = "orcl", UserId = "masgh", Password = "******" }; string table = "T5399"; Table tableDetail = Tables.GetTableDetails(source, table); MDataSet dataSet = new MDataSet(tableDetail.Name, tableDetail.Columns.Select(item => item.Name).ToArray()); System.Data.IDataReader dr = Stores.Read(source, table); dataSet.SetDataSource(dr); Stores.Write(dest, dataSet); }
public void Test_Write() { string tableName = "T_USER"; Table tableDetail = Tables.GetTableDetails(ConnString, tableName); MDataSet dataSet = new MDataSet(tableDetail.Name, tableDetail.Columns.Select(item => item.Name).ToArray()); dataSet.SetDataSource(Stores.Read(ConnString, tableName)); dataSet.Table = "T_USER_1"; Stores.Write(ConnString, dataSet); }
/// <summary> /// 传输存储数据 /// </summary> public override void ExecStorage() { IEnumerable <TableProfile> tableIncludeStorage = Profile.ImpTables.Where(item => item.IncludeStorage); foreach (var tableProfile in tableIncludeStorage) { try { if (MigrateLog[tableProfile.TableName].TableStruct != MigrateState.Finished) { UpdateMessage($"{tableProfile.TableName}的表结构创建失败,数据传输取消"); } else { Table tableDetail = Domain.Helper.Tables.GetTableDetails(Profile.SourceConnString, tableProfile.TableName); MDataSet dataSet = new MDataSet(tableDetail.Name, tableDetail.Columns.Select(item => item.Name).ToArray()); int total = Domain.Helper.Stores.Count(Profile.SourceConnString, tableProfile.TableName); int page = 0, pageSize = 100; while (true) { page++; int start = (page - 1) * pageSize + 1; if (start > total) { break; } System.Data.IDataReader dr = Domain.Helper.Stores.ReadPage(Profile.SourceConnString, tableProfile.TableName, start, pageSize); dataSet.SetDataSource(dr); Domain.Helper.Stores.Write(Profile.DestConnString, dataSet); } MigrateLog[tableProfile.TableName].Storage = MigrateState.Finished; UpdateMessage($"{tableProfile.TableName}数据传输完成"); } } catch (Exception ex) { UpdateMessage($"{tableProfile.TableName}数据传输失败:{ex.Message}"); } finally { IncreaseFinishedTask(); } } }
public override void ExecStorage() { PartialWriter pw = writer.CreatePartial("storage", "数据"); int page_index = 0; IEnumerable <TableProfile> tableIncludeStorage = Profile.ImpTables.Where(item => item.IncludeStorage); foreach (var tableProfile in tableIncludeStorage) { try { Table tableDetail = Domain.Helper.Tables.GetTableDetails(Profile.SourceConnString, tableProfile.TableName); MDataSet dataSet = new MDataSet(tableDetail.Name, tableDetail.Columns.Select(item => item.Name).ToArray()); int total = Domain.Helper.Stores.Count(Profile.SourceConnString, tableProfile.TableName); int page = 0, pageSize = 100; while (true) { page++; int start = (page - 1) * pageSize + 1; if (start > total) { break; } System.Data.IDataReader dr = Domain.Helper.Stores.ReadPage(Profile.SourceConnString, tableProfile.TableName, start, pageSize); dataSet.SetDataSource(dr); pw.Append($"{page_index++}", dataSet); } MigrateLog[tableProfile.TableName].Storage = MigrateState.Finished; UpdateMessage($"{tableProfile.TableName}数据导出完成"); } catch (Exception ex) { UpdateMessage($"{tableProfile.TableName}数据导出失败:{ex.Message}"); } finally { IncreaseFinishedTask(); } } pw.Commit(); }