İki tablonun ortak alanlarını kopyalama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
kara_kule06
Üye
Mesajlar: 150
Kayıt: 18 Nis 2006 02:15
Konum: ankara/polatlı
İletişim:

İki tablonun ortak alanlarını kopyalama

Mesaj gönderen kara_kule06 »

Herkese Günaydın...

Formda aratmama rağmen istediğim cevabı bulamadım. benim iki adet tablom var ve bu tabloların alanlarından bazıları aynı. ama hangisinin aynı olduğu program tarafından bilinmiyor. ve ben A tablosundaki kayıtları B tablosunda aynı alanları bulup, kopyalamak istiyorum. MySQL kullanıyorum. Acaba bunu yapabilmem için bir fonksiyon var mı? yoksa nasıl yapabilirim. Yanlız benim yapmak istediğimde memoTable'in alakası yok.


Kolay Gelsin...
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Aynı alandan kasıt alanın adı mı yoksa içeriği mi? İçerik ise bir döngü ile ilk tablonun tüm kayıtları taranıp ikinci tabloda aratılıp varsa gerekli işlem yapılabilir. İndeks li arama yapamıyorsanın bu tabloyu da ilk kayıttan bulana dek taratarak aramalısınız.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
kara_kule06
Üye
Mesajlar: 150
Kayıt: 18 Nis 2006 02:15
Konum: ankara/polatlı
İletişim:

Mesaj gönderen kara_kule06 »

hocam iki adet tablom var A tablomdaki alanların Hepsi B tablomda da var B tablosunda extra birçok tablo daha var. Benim amacım A tablosundaki alanların içeriğini B tablosuna kopyalamak. İşte burada tıkanıyorum.
mesela A tablosunda field1 adlı alan var, program B tablosunu taratsın ve eğer B tablosunda da field1 varsa A tablosundaki field1 alanının içeriğini B tablosundaki field1 e kopyalasın.

Umarım anlatabilmiştirim Saygılar.

Kolay Gelsin...
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
Kullanıcı avatarı
kara_kule06
Üye
Mesajlar: 150
Kayıt: 18 Nis 2006 02:15
Konum: ankara/polatlı
İletişim:

Mesaj gönderen kara_kule06 »

Ya arkadaşlar Soruma cevap verecek yok mu?
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@rsimsek cevabı vermiş hocam. Sadece yanlışlıkla alan isimleri demek yerine kayıtları demiş. :oops:

- Bir tabloya bağlandığında Tablo.Fields.Count tane (bunu sayac değişkenine atabilirsin) field var onu rakamsal olarak tespit edebilirsin.

- Tespit ettiğin bu her field'a Tablo.Fields[0], Tablo.Fields[1], ..., Tablo.Fields[sayac-1] şeklinde ulaşırsın.

- İsmini bildiğin bir field'in bu listede var olup olmadığını, varsa kaçıncı sırada olduğunu ise Tablo.FieldList.IndexOf('field1') ile bulabilirsin.

- Geriye bir tabloya göre döngü kurup iredelemek kalıyor. Onu da sana bırakayım... 8)

- Hadi bunu da yazayım da vaktini kavramaya ayır.

Kod: Tümünü seç

Var
  Sayac,
  FieldNo : Integer;
begin
  // Tablo1 <- Tablo2
  // Tablo1'nin field isimleri Tablo2'de varsa aktarılır, yoksa aktarılmaz.
  With Tablo1 do
    For Sayac := 0 to FieldList.Count do begin // veya // FieldCount-1 do begin
      FieldNo := Tablo2.FieldList.IndexOf( Fields[Sayac].FieldName );
      If FieldNo >= 0 then Fields[Sayac].Value := Tablo2.Fields[FieldNo].Value;
    end;
end;
Resim
Resim ....Resim
Kullanıcı avatarı
kara_kule06
Üye
Mesajlar: 150
Kayıt: 18 Nis 2006 02:15
Konum: ankara/polatlı
İletişim:

Mesaj gönderen kara_kule06 »

teşekkürler hocam. Bende sorunu bu mantıkla çözdüm. Ama geç olmasına rağmen cevabınız ve ilginiz için çok sağolun.
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Tarih: Prş Ksm 16, 2006 3:34 attığın son mesaja Tarih: Prş Ksm 16, 2006 4:17 saatinde cevap yazmışım. Çünkü demişsin ki
kara_kule06 yazdı:Ya arkadaşlar Soruma cevap verecek yok mu?
- Şimdi geç olan nedir ? Ayrıca geç olsun ama daha önce çözmüşsen neden çözümü paylaşmıyoruz burada bu daha büyük ayıp.
kara_kule06 yazdı:teşekkürler hocam. Bende sorunu bu mantıkla çözdüm. Ama geç olmasına rağmen cevabınız ve ilginiz için çok sağolun.
- Haa bir de olumsuzluktan dolayı "bu kadar geç kalacaksan vaktini bir dahaki sefere boşuna harcama" gibi bir anlam doğuyor bundan dolayı da üzüldüm... :?
Resim
Resim ....Resim
Kullanıcı avatarı
kara_kule06
Üye
Mesajlar: 150
Kayıt: 18 Nis 2006 02:15
Konum: ankara/polatlı
İletişim:

Mesaj gönderen kara_kule06 »

Yok hocam yablış anladın.

Ya arkadaşlar Soruma cevap verecek yok mu?

Yazdıktan sonra oturup uğraştım. Yaptıktan Sonra foruma bi baktım siz cevaplamışsınız.

Ayrıca yanlış anlaşılmalar sanal ortamda da olsa beni de üzüyor. :cry:
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
Cevapla