Yorumları: 2
Konuları: 1
Kayıt Tarihi: 07-06-2020
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 12
Başlangıç
07-06-2020, Saat: 13:08
(Son Düzenleme: 07-06-2020, Saat: 13:11, Düzenleyen: habikus.)
Merhabalar,
IBExpert ile Firebird veritabanı kullanarak bir tablo oluşturdum. Fakat bu tabloda sayısal olması gereken bir alanı yanlışlıkla Varchar yapmıştım. Şimdi ise bu tablo içerisindeki verileri silmeden field tipini değiştirmek istiyorum. Bu mümkün müdür?
İyi çalışmalar.
Yorumları: 540
Konuları: 32
Kayıt Tarihi: 11-11-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 2.600
Uzman
(07-06-2020, Saat: 13:08)habikus Adlı Kullanıcıdan Alıntı: Merhabalar,
IBExpert ile Firebird veritabanı kullanarak bir tablo oluşturdum. Fakat bu tabloda sayısal olması gereken bir alanı yanlışlıkla Varchar yapmıştım. Şimdi ise bu tablo içerisindeki verileri silmeden field tipini değiştirmek istiyorum. Bu mümkün müdür?
İyi çalışmalar.
Merhabalar,
Öncelikle yedeğinizi alın.
FB hiç kullanmadığım için bir kaç önerim olacak.
1. Yeni bir field ekleyin. (Sayısal alan). Eski field verilerini buraya kopyalayın.
Sorunları görüp ona göre hareket edin.
2. Eğer Varchar alan içerisinde noktalama işaretleri kayıtlı değil ise (. veya , )
Alter komutu ile alanın tipini değiştirebilirsiniz.
ALTER TABLE TABLOADINIZ ALTER COLUMN KOLONADINIZ TYPE integer
Umarım faydalı olur.
Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Yorumları: 2
Konuları: 1
Kayıt Tarihi: 07-06-2020
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 12
Başlangıç
07-06-2020, Saat: 23:32
(Son Düzenleme: 07-06-2020, Saat: 23:34, Düzenleyen: habikus.)
Yardımlarınız doğrultusunda, aşağıda olduğu gibi yeni bir alan oluşturdum verileri o alana aktardım.
Allah razı olsun.
// 1.ADIM : YENİ BİR ALAN OLUŞTUR
try
sqltext:='Alter Table IRSALIYE add '+'YENI_ALAN'+' DOUBLE PRECISION';
FDQuery2.Close;
FDQuery2.SQL.Clear;
FDQuery2.SQL.Text :=sqltext;
FDQuery2.ExecSQL;
except
end;
FDQuery2.Close;
FDQuery2.SQL.Clear;
FDQuery2.SQL.Text:='select * from IRSALIYE';
FDQuery2.Active:=TRUE;
// 2.ADIM : BÜTÜTÜN VERİLERİ ESKİ ALANDAN YENİŞ ALANA AKTAR
FDQuery2.Open;
FDQuery2.FIRST;
WHILE NOT FDQuery2.EOF DO
BEGIN
FDQuery2.Edit;
FDQuery2.FieldByName('YENI_ALAN').AsString:=FDQuery2.FieldByName('EVRAKNO').AsString;
FDQuery2.Post;
FDQuery2.Next;
END;
// 3.ADIM : ESKİ ALANI SİL
try
sqltext:='Alter Table IRSALIYE Drop EVRAKNO';
FDQuery2.Close;
FDQuery2.SQL.Clear;
FDQuery2.SQL.Text :=sqltext;
FDQuery2.ExecSQL;
except
end;
// 4.ADIM : YENİ ALANIN ADINI ESKİ ALANI ADIYLA DEĞİŞTİR
try
sqltext:='Alter Table IRSALIYE Alter Column YENI_ALAN to EVRAKNO';
FDQuery2.Close;
FDQuery2.SQL.Clear;
FDQuery2.SQL.Text :=sqltext;
FDQuery2.ExecSQL;
except
end;