DBGrid' deki kayıtları başka bir tablo içerisine kopyalamak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Marangoz
Üye
Mesajlar: 39
Kayıt: 15 May 2004 03:38

DBGrid' deki kayıtları başka bir tablo içerisine kopyalamak

Mesaj gönderen Marangoz »

DBGrid' deki kayıtları başka bir tablo içerisine kopyalamak için ne yapmak gerekiyor acaba.

(Not: DBGrid birden fazla tablonun sorgulanmış halidir)*

veya;

Sorgulanmış bir ADOQuery içindeki sonuç kayıtlarını farklı bir tabloya nasıl kopyalabilirim.

Delphi 7 + SQL Server + ADO

(Not : Bu işlemi BDE kullanırken BatchMove ile yapabiliyoruz ama ADO'da BatchMove yok)*

saygılarımla,
iyi çalışmlar
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 10:32
Konum: istanbul

Mesaj gönderen bgoktas »

insert into kullanarak sorguladığın queryi direk kopyalarsan daha kolay olur
Kullanıcı avatarı
feinpus
Üye
Mesajlar: 214
Kayıt: 17 Kas 2003 04:37
Konum: İstanbul
İletişim:

Mesaj gönderen feinpus »

Elinde sorguladığın alanlar belli zaten bu sorguladığın alanları kopyalayacağın alanlarda bellidir sanırım. Bundan sonrası sadece iki alanı bir birine eşitlemek kalıyor yani;

table1.fieldbyname('alan1').asstring:=adoquery.fieldbyname('Sorgulanmısalan1').asstring;

gibi.

Query'lerde bir sorgu olşturduğunda bir tablo yaratmış olmaktan bir farkı yok 2 tablodan birbirine nasıl kayıt geçiriyorsan aynı yolla query den de kopyalama yapabilirsin...
Oldeye Software
http://www.oldeye.com
Kullanıcı avatarı
Marangoz
Üye
Mesajlar: 39
Kayıt: 15 May 2004 03:38

Mesaj gönderen Marangoz »

Arkadaşlar okuyup ve cevapladığınız için teşekkür ederim...

ama soru çok açık sanırım...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

en basit yöntem, şuna benzer birşey olmalı :

Kod: Tümünü seç

AdoQuery.First;
while not AdoQuery.Eof do
begin
  DigerTable.Append;
  DigerTable.FieldByName('NO').AsInteger := AdoQuery.FieldByName('NO').AsInteger;
  ... //tüm alanları ata
  DigerTable.Post;
  AdoQuery.Next;
end; {while}
NOT : Ayrıca yazmış olduğun SQL'e göre INSERT INTO'da işe yarayabilir.

NOT : Arama kısmına bakmanız her zaman menfaatinize. Bu kodu en az 3-4 sefer yazmıştım.

Kolay gelsin.
Kullanıcı avatarı
Marangoz
Üye
Mesajlar: 39
Kayıt: 15 May 2004 03:38

Mesaj gönderen Marangoz »

Teşekkür,

sanırım yine en başta yaptığım gibi into ile alacağım,

şu anda işimi görecektir, çok fazla tablo ve devamlı olarak kullanıcın dışarıdan tabloya yeni alan'lar eklenildiğini düşünürsek BatchMove gibi çalışan bileşen inanılmaz işimi görecekti, şimdi bayağı uzun bir kod yazıp bunları kontrol ettirmem gerekecek sanırım,

ilginize teşekkür ederim,
Cevapla