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();
        }