Excelden firebirde ADO ile veri aktarımı yapıyorum.Ancak şöyle bir durum var.
Örneğin Ürün Numaralarının yazıldığı bir alan var.Firebird tablosunda bu alan varchar.Çünkü bu alanda hem nümerik hemde alfanümerik karakterler yer alıyor.
Örneğin şöyle bir şey.
UrunKodu
__________
bc398939
ac89398
98908
89890809
78667667
Şimdi adoquery excelden veri alırken bu alanı sayısal olarak görüyor.ve ac89398 ve ac89398 değerlerini almıyor null olarak benim tabloma atıyor.Excelden bu hücreleri biçimlendir diyerek Metin seçiyorum ama durum gene değişmiyor.
Verileri atarkende şu aşağıdaki değişik yöntemlerin hepsini denedim ama sonuç gene değişmedi.
Kod: Tümünü seç
while not DSImport.Eof do
begin
DM.IslemListesiDataset.Insert;
............................................................
............................................................
............................................................
............................................................
DM.IslemListesiDataset.FieldByName('URUNKODU').AsString:=DSImport.fieldbyname('URUNKODU').AsString;
............................................................
............................................................
............................................................
............................................................
DM.IslemListesiDataset.Post;
DSImport.Next;
end;
Kod: Tümünü seç
while not DSImport.Eof do
begin
DM.IslemListesiDataset.Insert;
............................................................
............................................................
............................................................
............................................................
DM.IslemListesiDataset.FieldByName('URUNKODU').Value:=DSImport.fieldbyname('URUNKODU').Value;
............................................................
............................................................
............................................................
............................................................
DM.IslemListesiDataset.Post;
DSImport.Next;
end;
Kod: Tümünü seç
while not DSImport.Eof do
begin
DM.IslemListesiDataset.Insert;
............................................................
............................................................
............................................................
............................................................
DM.IslemListesiDataset.FieldByName('URUNKODU').AsVariant:=DSImport.fieldbyname('URUNKODU').AsVariant;
............................................................
............................................................
............................................................
............................................................
DM.IslemListesiDataset.Post;
DSImport.Next;
end;
Sonra şöyle birşey denedim.
Full Convert Enterprise diye bir program ile bu excel tablosunu MSAccess ve Firebird DB ye convert ettirdim.
Sonuç bunlarda da aynı oldu.Bu programda Urunkodu alanını Accessde Float FB de de BIGINT olarak oluşturuyor.Ve bc398939 ve ac89398 değerlerini null olarak atıyor.Excel tablosuna girip bu alanı Metin olarak biçimlendirmeme rağmen.
Sonuç olarak bu alanda bazı satırlar sadece numerik karakterlerden oluşuyor diye bu alanlarıFloat ve ya BIGINT olarak görüyor.Çok tuhaf görünüyor ama sebebini anlayamadım.Yani tersi durum olsa anlayacağım.Yani string ifadeler içeren bir alanı float bir alana atmay a çalışsam tamam.Ama durum tamamen farklı.
Bu tür bir sorun acaba başınıza geldi mi?
Önerileriniz nedir?
Teşekkürler...