tabel birleştirme

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
andrea
Üye
Mesajlar: 50
Kayıt: 27 Nis 2004 03:02

tabel birleştirme

Mesaj gönderen andrea »

aynı programın veritabanı, 2 ayrı makinada çalışıp 2 ayrı data tutmuş. Ben bu dataları nasıl tek tbale haline getiririm.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

2 taloya da bağlantı yapıp, kodla kopyalama yabilirsin.

Kod: Tümünü seç

Table1.First;
while not Table1.Eof do
begin
Table2.Append;
Table2.FieldByName('AD').AsString := Table1.FieldByName('AD').AsString;
....
Table2.Post;
Table1.Next;
end;
Kolay gelsin.
andrea
Üye
Mesajlar: 50
Kayıt: 27 Nis 2004 03:02

Mesaj gönderen andrea »

yanlış anlattım sanırım,
hazırladığım program(cık) 4 ayrı makinada çalışyor. Makinalar birbirlerinden bağımsız.
Kayıtları biraraya toplamak için *.dbf aynı bilgisayara taşıyıp ne yapmalıyım ?
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

Tamam işte adminim örnek kod bile yazmış

ikinci tablodan okuyacan birinci tabloya kaydedicen hepsi bu kadar.
peki veritabanın nedir yazmamışsın ki.
manuel olarak da yapabilirsin...


Saygılar...
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 10:32
Konum: istanbul

Mesaj gönderen bgoktas »

tableni excelde açabiliyorsan birleştir. tekrar tablede topla
Kullanıcı avatarı
Karinca
Üye
Mesajlar: 239
Kayıt: 25 Ağu 2004 07:06
Konum: http://localserver/
İletişim:

Mesaj gönderen Karinca »

mussimsek yazdı:2 taloya da bağlantı yapıp, kodla kopyalama yabilirsin.

Kod: Tümünü seç

Table1.First;
while not Table1.Eof do
begin
Table2.Append;
Table2.FieldByName('AD').AsString := Table1.FieldByName('AD').AsString;
....
Table2.Post;
Table1.Next;
end;
Kolay gelsin.

MErhaba.

tşk ler Mustafa Hocam kod için.

Ama Table1.Next dedikten sonra yine alanları işaretleyerek tekrar birdaha post yapıyorum ama hep birinci kaydı kopyalıyo.
Başka birşey mi yapmak gerekiyo acaba?



Selamlar...
cihana hakan olmak bir kuru kavga imiş
bir mürşide bende olmak cümleden evla imiş
h.z. Fatih


Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bu kod Table1 deki tüm kayıtları baştan başlayıp Table1.Next ile tablonun son kayıtına kadar Table2 adlı tabloya ekler.. :wink:

Tabi ..

Kod: Tümünü seç

Table2.FieldByName('AD').AsString := Table1.FieldByName('AD').AsString; 
kısmını her alan için yazman lazım..
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
Karinca
Üye
Mesajlar: 239
Kayıt: 25 Ağu 2004 07:06
Konum: http://localserver/
İletişim:

Mesaj gönderen Karinca »

rsimsek yazdı:Bu kod Table1 deki tüm kayıtları baştan başlayıp Table1.Next ile tablonun son kayıtına kadar Table2 adlı tabloya ekler.. :wink:

Tabi ..

Kod: Tümünü seç

Table2.FieldByName('AD').AsString := Table1.FieldByName('AD').AsString; 
kısmını her alan için yazman lazım..
Hocam Deniyorum sadece ilk kaydı kopyalıyo. Sonrakilerde çıt yok :)

İlgilenen Arkadaşlar içinde : Sonuna yani end; den önce Abort; Yazmazsanız kitliyo. (Yoksa Ramazan hocam bundan mı:))



Selamlar...
cihana hakan olmak bir kuru kavga imiş
bir mürşide bende olmak cümleden evla imiş
h.z. Fatih


Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

DBGrid de kayıtları görebiliyor musun? İndeksle ilgili bir sorun olabilir... Yani bir halde ilk kayıtta dosya sonuna gitmiş oluyor.. Yada Table1 in veya bağlı DataSource un eventlarında bir işlem yapıyor olabilirsin :?:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
Karinca
Üye
Mesajlar: 239
Kayıt: 25 Ağu 2004 07:06
Konum: http://localserver/
İletişim:

Mesaj gönderen Karinca »

rsimsek yazdı:DBGrid de kayıtları görebiliyor musun? İndeksle ilgili bir sorun olabilir... Yani bir halde ilk kayıtta dosya sonuna gitmiş oluyor.. Yada Table1 in veya bağlı DataSource un eventlarında bir işlem yapıyor olabilirsin :?:
Hepsini Yenile Component panel den indirmiştim. :)
Neyse Bakalım biraz daha.
Tşk. Kolay Gelsin...


Selamlar...
cihana hakan olmak bir kuru kavga imiş
bir mürşide bende olmak cümleden evla imiş
h.z. Fatih


Resim
Kullanıcı avatarı
Karinca
Üye
Mesajlar: 239
Kayıt: 25 Ağu 2004 07:06
Konum: http://localserver/
İletişim:

Mesaj gönderen Karinca »

Kod: Tümünü seç

 if ibtable2.RecordCount = ibtable1.RecordCount then begin ShowMessage('Kopyalama Bitti'); button1.Enabled := False;  Abort end;
  else
  ibtable2.Append;
  ibtable2.FieldByName('AA').AsString := ibtable1.fieldbyname('AA').AsString;
  ibtable2.FieldByName('BB').AsString := ibtable1.fieldbyname('BB').AsString;
  ibtable2.FieldByName('CC').AsString := ibtable1.fieldbyname('CC').AsString;
  ibtable2.Post;
  ibtable1.Next;
 end;
En son olarak Böyle yaptım. Tabi deneme olarak.

2 tane kaydım var Ama işe yaramıyo. Neden olabilir ki?
Veya başka ne türlü yapabilirim?



Selamlar...
cihana hakan olmak bir kuru kavga imiş
bir mürşide bende olmak cümleden evla imiş
h.z. Fatih


Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bu kodu

Kod: Tümünü seç

IBTable1.First;
While not IBTable1.EOF do 
begin
...
end;
bloğu içine yazarsan çalışmaması için başka sebep kalmıyor.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
cemarik
Üye
Mesajlar: 45
Kayıt: 30 Ağu 2003 11:05
Konum: İzmir

Mesaj gönderen cemarik »

rsimsek yazdı:Bu kodu

Kod: Tümünü seç

IBTable1.First;
While not IBTable1.EOF do 
begin
...
end;
bloğu içine yazarsan çalışmaması için başka sebep kalmıyor.
hocam next i unutmuşsunuz

Kod: Tümünü seç

    With IBTable1 do
    begin   
       First; 
       While not EOF do 
       begin
         ...
         ...
         Next;
       end;
    end;
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Kod: Tümünü seç

if ibtable2.RecordCount = ibtable1.RecordCount then begin ShowMessage
bence sorun burda.

Table bu şekilde bulunan kayıt sayısının sağlıklı olmadığını hepimiz biliyoruz.bunu yerine

Kod: Tümünü seç

select  count(*)  as sayi from tablo
bence bunu yada

Kod: Tümünü seç

fetcall 
dı galiba bunu kullanmakl lazım.Çünkü ibtable tüm kayıtları bir kerede çekmez diye biliyorum ve o yüzden sadece bri kayıt kopyalayıp bitiriyor.Kolay gelsin.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Cevapla