private void ddlogKaydiniSil(DataDefinitionInfo ddi) { string silmeKomutu = "delete from ddlog where fprkddlog = " + ddi.FprkDdLog; OleDbCommand command = _foxproConnection.CreateCommand(); command.CommandText = silmeKomutu; command.ExecuteNonQuery(); }
private void tabloGuncellemesiniYap(string tabloAdi, DataRow[] kaynakTabloKolonlari, DataDefinitionInfo ddi) { if (string.IsNullOrWhiteSpace(ddi.DegisenAlanAdi)) return; SqlCommand command = _sqlConnection.CreateCommand(); command.CommandText = "select * from " + tabloAdi + " where 1=2"; DataTable dtHedefKolonlar = new DataTable(); new SqlDataAdapter(command).Fill(dtHedefKolonlar); string[] hedefKolonlar = dtHedefKolonlar.Columns.Cast<DataColumn>().Select(dc => dc.ColumnName.ToLowerInvariant()).ToArray(); tabloAlaniniGuncelle(ddi, kaynakTabloKolonlari, hedefKolonlar); }
private void tabloAlaniniGuncelle(DataDefinitionInfo ddi, DataRow[] kaynakTabloKolonlari, string[] hedefKolonlar) { DataRow ilgiliKolonBilgisi = kaynakTabloKolonlari.SingleOrDefault(dr => string.Equals(dr["column_name"].ToString().Trim(), ddi.DegisenAlanAdi, StringComparison.InvariantCultureIgnoreCase)); string komut; if (ilgiliKolonBilgisi == null) // Kolon kaynak tabloda yok. Yani silinmiş. { if (!hedefKolonlar.Contains(ddi.DegisenAlanAdi.ToLowerInvariant())) // kolon zaten yoksa birşey yapma { return; } komut = "alter table " + ddi.TabloAdi + " drop column " + ddi.DegisenAlanAdi; } else { bool tablodaPrimaryKeyVar = true; string kolonTipi = kolonTipiniAl(ilgiliKolonBilgisi, ref tablodaPrimaryKeyVar); if(hedefKolonlar.Contains(ddi.DegisenAlanAdi.ToLowerInvariant())) // kolon zaten varsa komut = "alter table " + ddi.TabloAdi + " alter column " + ddi.DegisenAlanAdi + " " + kolonTipi; else komut = "alter table " + ddi.TabloAdi + " add " + ddi.DegisenAlanAdi + " " + kolonTipi; } SqlCommand command = _sqlConnection.CreateCommand(); command.CommandTimeout = 180; command.CommandText = komut; command.ExecuteNonQuery(); }