veritabanindan aktarim
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
veritabanindan aktarim
s.a arkadaslar veritabanindan veritabanina aktarma yapan bir program varmi.. onceden interbaseden yazdigim bir programin datasini oracle veritabanina atmak istiyorum.. table lar ayni sadece veritabani degisti ama 1-2 tabloda 1-2 alan eklendi yada cikarildi bunu yapan bir program varmi bildiginiz? hepinize iyi calismalar
delphi nin altındaki datapump isimli programla tüm odbc li tabloları birbirine aktarırsın
datapump

.-.-.-.-.-.-.-. ^_^
-
- Üye
- Mesajlar: 10
- Kayıt: 25 Ağu 2004 01:49
- Konum: Bursa
- İletişim:
s.a
arkadaslar kendim bir program yazayim dedim aslinda yazdimda ..ben soyle yaptim alan alan tablodan diger tabloya atiyorum ancak hicbir hata vermemesine ragmen tabloya baktigimda bu degerle yazilmamis..
Table2.open;
Table2.Last;
table1.open;
table1.First;
while not Table1.Eof do
begin
Table2.insert;
Table2.FieldByName(ComboBox4.Items[ComboBox4.ItemIndex]).Value :=Table1.FieldByName(ComboBox3.Items[ComboBox3.ItemIndex]).Value;
Table2.Post;
Table2.Next;
table1.Next;
end;
table2.Refresh;
bu kodlarda bir hata vermiyor hatta aktariyormus gibi sql ifadesi mouse nin uzerinde kaliyor sonra islem bittiginde tabloya bakiyorum gelen bir sey yokkkk. bunun nedeni ne olabilir acaba
arkadaslar kendim bir program yazayim dedim aslinda yazdimda ..ben soyle yaptim alan alan tablodan diger tabloya atiyorum ancak hicbir hata vermemesine ragmen tabloya baktigimda bu degerle yazilmamis..
Table2.open;
Table2.Last;
table1.open;
table1.First;
while not Table1.Eof do
begin
Table2.insert;
Table2.FieldByName(ComboBox4.Items[ComboBox4.ItemIndex]).Value :=Table1.FieldByName(ComboBox3.Items[ComboBox3.ItemIndex]).Value;
Table2.Post;
Table2.Next;
table1.Next;
end;
table2.Refresh;
bu kodlarda bir hata vermiyor hatta aktariyormus gibi sql ifadesi mouse nin uzerinde kaliyor sonra islem bittiginde tabloya bakiyorum gelen bir sey yokkkk. bunun nedeni ne olabilir acaba
valla senin kodlarının üzerinde birkaç değişiklik yaptım.. Aslında seninkinde çalışmaması için bir neden yok gibi
Bu arada field tiplerin string olmayabilir ancak aktarırken eğer displayformat veya editformat özelliklerine birşey yazmadıysan blob hariç tüm tipleri aktarır diye düşünüyorum. Eğer problem çıkarsada tipleri kontrol ettirip ona göre aktarabilirsin..
Kod: Tümünü seç
Table2.open;
//Table2.Last; bu satıra gerek yok
table1.open;
table1.First;
while not Table1.Eof do
begin
Table2.Append; //Insert yerine append kullandım..
// burada comboboxın değerini almak için bu kodlar daha mantıklı
Table2.FieldByName(ComboBox4.text).ASString
:=Table1.FieldByName(ComboBox3.Text).AsString;
Table2.Post;
table1.Next;
end;
table2.Refresh;
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)
S.A.
tablonun pirmary key alanı varsa ona kayıt girmediğin için yapıyor olabilir.
kodlarla ilgili olarak
1. i kullanarak (insert yerine) tablonun sonuna kayıt ekliyebilirsin. yani last ve next kullanmana gerek yok.
2. yerinekullanabilirsin.
3. eğer field ların aynı ise tarzında bir aktarım yapabilirsin.
field isimleri aynı fakat sıraları farklı ise busefer gibi bir döngü kurup tüm alnları aktarabilirsin.
***kodlarda yazım yanlışı olmuş olabilir.*******
4. Bu işlemi query ile yapmanı paramtere kullanmanı ,ibpmp u biraz incelemeni tavsiye ederim.
Kolay Gelsin
tablonun pirmary key alanı varsa ona kayıt girmediğin için yapıyor olabilir.
kodlarla ilgili olarak
1.
Kod: Tümünü seç
table2.append
2.
Kod: Tümünü seç
Table2.FieldByName(ComboBox4.Items[ComboBox4.ItemIndex]).Value
Kod: Tümünü seç
Table2.FieldByName(ComboBox4.text).Value
3. eğer field ların aynı ise
Kod: Tümünü seç
for i:=0 to table1.fields.count-1 do
table2.fields[i].value:=table1.fields[i].value
field isimleri aynı fakat sıraları farklı ise busefer
Kod: Tümünü seç
for i:=0 to table1.fields.count-1 do
table2.fieldbyname(table1.fields[i].name).value:=table1.fieldbyname(table1.fields[i].name).value;
***kodlarda yazım yanlışı olmuş olabilir.*******
4. Bu işlemi query ile yapmanı paramtere kullanmanı ,ibpmp u biraz incelemeni tavsiye ederim.
Kolay Gelsin
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
arkadaslar zaten bu is icin query kullaniyorum query ile orn interbase deki tum tbalolarin isimlerini bir combobox icine atiyorum ardindan bu combobox dan secilen table nin alanlarini 2. bir combobox icine atiyorum ayni seklilde diger veritabani icinde ayni isi yapiyorum daha sonra aktar diyince yukardaki kod ile aktarmaya calisiyrum ancak hicbir sorun vermemesine rahmen tabloya islemiyor hatta tabloya yazmadan once bu verileri bir listboxa atiyorum goruyum diye oraya atiyor ancak tabloya yazmiyor...dediklerinizi yaptim ancak olmuyor...