Arkadaşlar, MsAccess formatında(*.mdb) uzantılı bir database dosyasındaki bir tablonun bir alanı tasarlanırken String olarak tasarlanmış ama sayısal ifadeler tutulmuş bu alanda.Aslında otomatik artan sayı olarak ayarlannmsı gereken bu alan(firebirddeki sayısal bir alanın generatöre bağlanması gibi) bu şekilde tasarlanıp bu işlemler manuel olarak programcı tarafından yapılmış.Ama bu sistem doğal olarak zaman zaman hatalara sebebp oluyor.Bu alanı sayısal bir tipe dönüştürüp aynı zamanda da otomatik artan sayıya çevirmeliyim.Bu alandaki değerler hep sayısal ifadeler olduğundan alanın tipini MsAccess programı ile değiştirince sorun olmadı ama benim bunu kod ile yapmam lazım.Bu konuda yardımcı olabilirmisiniz.?
Teşekkürler.
MDB kütüğünde string alanı kod ile otomatik sayıya çevirmek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Alan tipi değişikliği için aşağıdaki örneği dene.
- AUTOINCREMENT bir alan olacaksa bu, @ASE'nin dediği geçerli, o zaman bu alanı DROP edip yani silip, AUTOINCREMENT özellikli bir alan ekleyeceksin.
Kod: Tümünü seç
With TAdoQuery.Create(Nil) do begin
Active := False;
Connection := AdoConnection1;
SQL.Text := 'ALTER TABLE tablo ALTER COLUMN alan Integer';
ExecSQL;
Free;
end;
- Bu tablondaki manuel arttırılmış numaraları anahtar bağlamında önemlidir. Diğer tablolarla arasındaki bağlantıyı koparmamak için önerim, bir dönüştrücü servis fonksiyonu yaz.
- Fonksiyon, master veritabanının bir kopyasını çıkartacak, çıkartırken MANUEL attırım yaptığın bu alanı AUTOINCREMENT alan ile donatılmış olan ile değiştiredek.
- Eski tabloyu bu yenisine aktarırken, DETAIL bağlı diğer tablolardaki her kayıt için eski numarayı içeren kayıtların numaralarını AUTOINCREMENT verilen yenisi ile UPDATE et.
- Bu senin uygulaman gereken çözümdür.
- Fonksiyon, master veritabanının bir kopyasını çıkartacak, çıkartırken MANUEL attırım yaptığın bu alanı AUTOINCREMENT alan ile donatılmış olan ile değiştiredek.
- Eski tabloyu bu yenisine aktarırken, DETAIL bağlı diğer tablolardaki her kayıt için eski numarayı içeren kayıtların numaralarını AUTOINCREMENT verilen yenisi ile UPDATE et.
- Bu senin uygulaman gereken çözümdür.