İki tablonun ortak alanlarını kopyalama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- kara_kule06
- Üye
- Mesajlar: 150
- Kayıt: 18 Nis 2006 02:15
- Konum: ankara/polatlı
- İletişim:
İki tablonun ortak alanlarını kopyalama
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...
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...
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!!
- kara_kule06
- Üye
- Mesajlar: 150
- Kayıt: 18 Nis 2006 02:15
- Konum: ankara/polatlı
- İletişim:
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...
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...
- kara_kule06
- Üye
- Mesajlar: 150
- Kayıt: 18 Nis 2006 02:15
- Konum: ankara/polatlı
- İletişim:
@rsimsek cevabı vermiş hocam. Sadece yanlışlıkla alan isimleri demek yerine kayıtları demiş.
- 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...
- Hadi bunu da yazayım da vaktini kavramaya ayır.

- 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...

- 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;
- kara_kule06
- Üye
- Mesajlar: 150
- Kayıt: 18 Nis 2006 02:15
- Konum: ankara/polatlı
- İletişim:
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

- Ş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ı:Ya arkadaşlar Soruma cevap verecek yok mu?
- 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...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.

- kara_kule06
- Üye
- Mesajlar: 150
- Kayıt: 18 Nis 2006 02:15
- Konum: ankara/polatlı
- İletişim: