private void SyncCurrentId(APDatabase db, APGenBusinessModelSection businessModel) { List<string> tcnames = new List<string>(); DbCommand dbCmd = db.CreateSqlCommand("select {1} from {0}", currentIdTable, currentIdName); using (IDataReader reader = dbCmd.ExecuteReader()) { while (reader.Read()) { tcnames.Add(reader.GetString(0)); } } foreach (APGenTable table in businessModel.Tables) { foreach (APGenColumn column in table.Columns) { if (column.IdentityType == APColumnIdentityType.Provider && businessModel.CanIdentityRelyOnProvider(column) && column.ParsedType != typeof(Guid)) { string tcname = table.TableName + "." + column.ColumnName; if (!tcnames.Contains(tcname)) { dbCmd = db.CreateSqlCommand("insert into {0} ({1}, {2}) values ('{3}', '{4}')", currentIdTable, currentIdName, currentIdValue, tcname, column.ProviderIdentityBase); dbCmd.ExecuteNonQuery(); } } } } }
private void SyncSequence(APDatabase db, APGenBusinessModelSection businessModel) { List<string> seqnames = new List<string>(); DbCommand dbCmd = db.CreateSqlCommand("select sequence_name from user_sequences"); using (IDataReader reader = dbCmd.ExecuteReader()) { while (reader.Read()) { seqnames.Add(reader.GetString(0)); } } foreach (APGenTable table in businessModel.Tables) { foreach (APGenColumn column in table.Columns) { if (column.IdentityType == APColumnIdentityType.Provider && businessModel.CanIdentityRelyOnProvider(column) && column.ParsedType != typeof(Guid)) { string seqname = SEQ_name(table.TableName, column.ColumnName).ToUpper(); if (!seqnames.Contains(seqname)) { dbCmd = db.CreateSqlCommand("create sequence {0} increment by 1 start with {1} nomaxvalue nocycle nocache", seqname, column.ProviderIdentityBase); dbCmd.ExecuteNonQuery(); } } } } }