2 FDB
2 FDB
Merhaba arkadaslar ;
d7 fb 2.1
soyle bi sorunum 2 tane fdb var 2 si aynı fdb fakat eski olan fdb deki sabit tablosunu yeni olan fdb ye tasımak istiyorum tabi yeni fdb de de sabit tablosu var yani eskideki sabitleri yeni fdb deki sabitler tablosu ile degistirmek istiyorum.ibpumb vs isimi gorurmu veya tavsiyeleriniz nedir?
kısacası 2 fdb yi harmanlamak istiyorum kucuk bir modul yazmayi dusundum ama 2 fdb ye nasil baglanti kuracam.ibx bilesenleri kullaniyorum.
tskler.
d7 fb 2.1
soyle bi sorunum 2 tane fdb var 2 si aynı fdb fakat eski olan fdb deki sabit tablosunu yeni olan fdb ye tasımak istiyorum tabi yeni fdb de de sabit tablosu var yani eskideki sabitleri yeni fdb deki sabitler tablosu ile degistirmek istiyorum.ibpumb vs isimi gorurmu veya tavsiyeleriniz nedir?
kısacası 2 fdb yi harmanlamak istiyorum kucuk bir modul yazmayi dusundum ama 2 fdb ye nasil baglanti kuracam.ibx bilesenleri kullaniyorum.
tskler.
Garibanus
Re: 2 FDB
s.a.
eğer sürekli yapılacak bir işlem ise program yazılabilir. forma ikitane ibdatabase bileşeni koyarak bağlantılarını ayarlayabilirsin.
eğer sürekli yapılmayacak ise ibexpert ile tablonun scriptini (insert/update) çıkartıp diğer database deki tabloya uygularsınız.
kolay gelsin.
eğer sürekli yapılacak bir işlem ise program yazılabilir. forma ikitane ibdatabase bileşeni koyarak bağlantılarını ayarlayabilirsin.
eğer sürekli yapılmayacak ise ibexpert ile tablonun scriptini (insert/update) çıkartıp diğer database deki tabloya uygularsınız.
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
Re: 2 FDB
yok hocam 1 defalık bir islem anlattugınız gibi yapmaya calistim ama galiba beceremedim
soyle yaptim;
1-eski db nin ibexpertten(export data into script) yaptim (sadece insert komutu vardi update yoktu scriptte) script kodlarını kopyaladım sonra yeni fdb yi ibexpertte actim ve tools menusunden script execute yi acarak oraya yapistirip calistirdim ama eskideki kayitlar yeniye gelmedi?????
ve konu acilmisken iki ibdatabase ile 2 ayri fdb ye baglandik diyelim bunlar arasindaki islemler nasil olacak yani 1. fdb ile 2.fdb iliskilendirilebilirmi?
tskler.
soyle yaptim;
1-eski db nin ibexpertten(export data into script) yaptim (sadece insert komutu vardi update yoktu scriptte) script kodlarını kopyaladım sonra yeni fdb yi ibexpertte actim ve tools menusunden script execute yi acarak oraya yapistirip calistirdim ama eskideki kayitlar yeniye gelmedi?????
ve konu acilmisken iki ibdatabase ile 2 ayri fdb ye baglandik diyelim bunlar arasindaki islemler nasil olacak yani 1. fdb ile 2.fdb iliskilendirilebilirmi?
tskler.
Garibanus
Re: 2 FDB
1.scripti çalıştırdığınız zaman 2.fdb de zaten var olan kayıtlar yüzünde hata vermiş ve commit işlemini gerçekleştirmemiş olabilir.
manuel commiti deneyin. vede scriptin başına yazıp deneyin.
2.ilişkiyi fdb düzeyinde değilde ibtable/ibdataset düzeyinde yapabilirsiniz.
kolay gelsin.
manuel commiti deneyin. vede scriptin başına
Kod: Tümünü seç
delete from tabloadi
2.ilişkiyi fdb düzeyinde değilde ibtable/ibdataset düzeyinde yapabilirsiniz.
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
Re: 2 FDB
@aslangeri hocam arkadaş harmanlamak demiş yani benim anladığım kadarıyla sql serverdaki replication şeklinde,aslangeri yazdı:Kod: Tümünü seç
delete from tabloadi
iki tablonun birleşimini oluşturmak istemiş. yeni fdb deki kayıtlar silinmeden eski fdb dekiler eklencek yani...
ama nasıl olcak onu bilmiom işte

bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Re: 2 FDB
Aşagıdaki procedure işini görür.
Bir forma gerekli componentları yerleştirip, aşagıdaki procedure çalıştırabilirsin.
totable,todata,totrans : üzerine yazılacak tablo kısmı
formtable,fromdata,fromtrans: kopyası yapılacak tablo
Bir forma gerekli componentları yerleştirip, aşagıdaki procedure çalıştırabilirsin.
totable,todata,totrans : üzerine yazılacak tablo kısmı
formtable,fromdata,fromtrans: kopyası yapılacak tablo
Kod: Tümünü seç
.................
todata: TIBDatabase;
fromdata: TIBDatabase;
toTable: TIBTable;
fromtable: TIBTable;
toTrans: TIBTransaction;
fromtrans: TIBTransaction;
fld : TField;
s1 : string;
i : integer;
........
ToData.Connected:=false;
FromData.Connected:=false;
// s1 tablonun isimi
ToTable.TableName:=s1;
FromTable.TableName:=s1;
FromData.Connected:=True;
ToData.Connected:=True;
ToTable.Active:=True;
FromTable.Active:=True;
FromTable.First;
while not FromTable.EOF do
begin
ToTable.Insert;
for i := 0 to FromTable.Fields.Count - 1 do
begin
fld:=ToTable.FindField(FromTable.Fields[i].FieldName);
if assigned(fld) then
Fld.Assign(fromtable.Fields[i]);
end;
ToTable.Post;
FromTable.Next;
end;
ToData.ApplyUpdates([totable]);
ToData.Connected:=False;
FromData.Connected:=false;
Re: 2 FDB
@unicorn64; yukardaki sebepten delete in sorun olacağını zannetmiyorum.soruyu soran arkadaş yazdı:...eskideki sabitleri yeni fdb deki sabitler tablosu ile degistirmek istiyorum....
kaldıki delete son çözüm. ondan önce manuel commit seçeneği var. varolan kayıtları update etmesi içinde scripti oluşturuken update olarak seçip var olan kayıtlarıda bu şekilde güncelleyebilir.
@mehmetcan; senin kod ilede todata dataki eski kayıtların önce silinmesi lazım. veya kayıt varmı yokmu varsa update yoksa insert yapılması lazım. ancak arkadaşın kafasındaki iki fdb sorusu için güzel bir örnek.
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
Re: 2 FDB
ustalar ilginiz icin tskler.sorunu soylediginiz sekilde soyle cozdum.
aslinda eski.fdb ile yeni.fdb nin içerigi aynı
fakat yeni fdb de bir kayit silinmis ve bu kaydin iliskili oldugu tablolar vardi dolayisiyla o alanlarda bu bilgiler gozukmuyordu(bu satir birden fazla ve karmasik kayitlarla iliskili oldugu icin o satiri yeniden olusturmak fayda etmedi zaten ona verilen id(autoinc) bir daha alamayacagi icin..).
eski dbnin(insert ve updatesini )aldim yeni db ye uyguladim.eksik olan satir yerine geldi.umarim bir yanlis yoktur.
ve aslangeri hocam
2 fdb arasindaki iliski ;"2.ilişkiyi fdb düzeyinde değilde ibtable/ibdataset düzeyinde yapabilirsiniz."bunu yapabilirmiyiz 1.fdb deki bir kaydi 2.fdb ye atmayi ?
tskler.
aslinda eski.fdb ile yeni.fdb nin içerigi aynı
fakat yeni fdb de bir kayit silinmis ve bu kaydin iliskili oldugu tablolar vardi dolayisiyla o alanlarda bu bilgiler gozukmuyordu(bu satir birden fazla ve karmasik kayitlarla iliskili oldugu icin o satiri yeniden olusturmak fayda etmedi zaten ona verilen id(autoinc) bir daha alamayacagi icin..).
eski dbnin(insert ve updatesini )aldim yeni db ye uyguladim.eksik olan satir yerine geldi.umarim bir yanlis yoktur.
ve aslangeri hocam
2 fdb arasindaki iliski ;"2.ilişkiyi fdb düzeyinde değilde ibtable/ibdataset düzeyinde yapabilirsiniz."bunu yapabilirmiyiz 1.fdb deki bir kaydi 2.fdb ye atmayi ?
tskler.
Garibanus
Re: 2 FDB
s.a.
bir fdb deki kaydı diğer fdb ye atmak demek o iki fdb arasında bir ilişki kurmak demek değildir.sadece bir tablodaki kaydın başka bir tabloya insert edilmesi. (belki buda bir nevi ilişki sayılır ama benim bahsettiğim ilişki bu ilişki değil.)
benim bahsettiğim ilişki master detail tarzında bir ilişki. bir ibdatasetin master sourcesini başka bir fdb ye bakan datasource seçebilirsiniz demek istoyrdum.
sanırım biraz karışık bir konu oldu.
@mehmetcan ın örneğini bir incele. orda zaten bir fdb deki kaydı başka bir fdb ye alıyor.
kolay gelsin.
bir fdb deki kaydı diğer fdb ye atmak demek o iki fdb arasında bir ilişki kurmak demek değildir.sadece bir tablodaki kaydın başka bir tabloya insert edilmesi. (belki buda bir nevi ilişki sayılır ama benim bahsettiğim ilişki bu ilişki değil.)
benim bahsettiğim ilişki master detail tarzında bir ilişki. bir ibdatasetin master sourcesini başka bir fdb ye bakan datasource seçebilirsiniz demek istoyrdum.
sanırım biraz karışık bir konu oldu.
@mehmetcan ın örneğini bir incele. orda zaten bir fdb deki kaydı başka bir fdb ye alıyor.
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
Re: 2 FDB
Benim örnek boş bir tabloya diger veritabanındaki dolu tabloyu aktarmak için yapılmıştı.
Eger istedigin varolan kayıtları bozmamaksa, örnegi şu şekilde degiştirebilirsin.
Kısmını şu şekilde yaz
Eger istedigin varolan kayıtları bozmamaksa, örnegi şu şekilde degiştirebilirsin.
Kod: Tümünü seç
while not FromTable.EOF do
begin
ToTable.Insert;
for i := 0 to FromTable.Fields.Count - 1 do
begin
Kod: Tümünü seç
while not FromTable.EOF do
begin
if ToTable.Locate(FromTable.Fields[0].FieldName,FromTable.Fields[0].Asstring,[]) then
ToTable.Edit
else
ToTable.Insert;
for i := 0 to FromTable.Fields.Count - 1 do
begin