Delphi İki dbgrid arasında karşılaştırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
unmerciful
Üye
Mesajlar: 4
Kayıt: 10 Nis 2005 04:30

Delphi İki dbgrid arasında karşılaştırma

Mesaj gönderen unmerciful »

Arkadaşlar merhaba. Yazdığım programda 2 farklı database içinde aynı kayıtlıarı tutan tablolalarım mevcut.

database1 - > firma - > ABC Firması
Database2 - > firma - > ABC Firması gibi

adoquery ile firmaları dbgridde listeliyorum, ama bu iki dbgridde şöle bir işlem yapmam lazım. birinde olmayan kayıtları, listbox'a göndermem lazım. while not adoquery1.eof do komutu ile yapıyorum, sadece dbgrid1 deki ilk kaydı kontrol ediyor, sonrasını yapmıyor. yardımcı olabilirmisiniz ?
zengin
Üye
Mesajlar: 233
Kayıt: 06 Ağu 2003 10:13

Re: Delphi İki dbgrid arasında karşılaştırma

Mesaj gönderen zengin »

s.a

öncelikle database1 ve database2 master detail yapmalısın ve

Kod: Tümünü seç

while not database1.eof do 
begin
if database1firma.text = database2firma.text then
olarak düzenleyebilirsiniz kolay gelsin
Zengin
unmerciful
Üye
Mesajlar: 4
Kayıt: 10 Nis 2005 04:30

Re: Delphi İki dbgrid arasında karşılaştırma

Mesaj gönderen unmerciful »

begin
adoquery1.close;
adoquery1.SQL.clear;
adoquery1.SQL.add('select cari_isim from tblcasabit');
adoquery1.Open;
adoquery2.close;
adoquery2.SQL.clear;
adoquery2.SQL.add('select FIRMA from DBO.SIPARIS');
adoquery2.Open;
while not adoquery1.Eof do
begin
while not adoquery2.Eof do
begin
if adoquery1cari_isim.Text=adoquery2firma.Text then
listbox1.Items.Add(adoquery1cari_isim.Text);
adoquery2.Next;
end;
adoquery1.Next;
end;
end;

kod bu, bunun üstünden gidebilirmiyiz.
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Re: Delphi İki dbgrid arasında karşılaştırma

Mesaj gönderen burakb44 »

var
found:boolean;
begin
adoquery1.close;
adoquery1.SQL.clear;
adoquery1.SQL.add('select cari_isim from tblcasabit');
adoquery1.Open;
adoquery2.close;
adoquery2.SQL.clear;
adoquery2.SQL.add('select FIRMA from DBO.SIPARIS');
adoquery2.Open;

adoquery1.first;

while not adoquery1.Eof do
begin

adoquery2.first;
found := false;

while not adoquery2.Eof do
begin
if adoquery1cari_isim.Text=adoquery2firma.Text then
found := true;
adoquery2.Next;
end;
if not found then
listbox1.Items.Add(adoquery1cari_isim.Text);
adoquery1.Next;
end;
end;



sizin verdiğiniz kodlara eklemeler yaptım sanırım bu eklemeler işinizi görecektir, yapılan işlemde şu ado1 de ilk kayda konumlandı, ardından ado1 deki her kayıt için ado2 deki tüm kayıtları tek tek tarıyor, tarama işlemi esnasında ado1 deki kayıt ado2 de bulunamazsa bulunamayan ado1 kaydını listbox a atıyor,
Kullanıcı avatarı
jafari1983
Üye
Mesajlar: 44
Kayıt: 05 Eyl 2010 10:32

Re: Delphi İki dbgrid arasında karşılaştırma

Mesaj gönderen jafari1983 »

Benim fikrim, her iki tablodan verileri seçib başqa bir TEMPORARY tabloya at, 1 tablo üzerinde iş yapmaq kolaydır.
"Əlini (ə.) şah, Muhammədi (s.) padişah bilməyən Allahı da tanımaz!"
unmerciful
Üye
Mesajlar: 4
Kayıt: 10 Nis 2005 04:30

Re: Delphi İki dbgrid arasında karşılaştırma

Mesaj gönderen unmerciful »

üstad çok saol, emeğine sağlık, kod çalıştı. sql sorgulama uzun sürüyor ama yapcak bişi yok :)
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Re: Delphi İki dbgrid arasında karşılaştırma

Mesaj gönderen burakb44 »

unmerciful yazdı:üstad çok saol, emeğine sağlık, kod çalıştı. sql sorgulama uzun sürüyor ama yapcak bişi yok :)

evet tablodaki kayıt sayısı arttıkça sürede uzayacak haliyle
unmerciful
Üye
Mesajlar: 4
Kayıt: 10 Nis 2005 04:30

Re: Delphi İki dbgrid arasında karşılaştırma

Mesaj gönderen unmerciful »

üstad, peki buna progeress bar veya time remaining koyabilirmiyiz. yardımcı olur musun ?
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Re: Delphi İki dbgrid arasında karşılaştırma

Mesaj gönderen burakb44 »

unmerciful yazdı:üstad, peki buna progeress bar veya time remaining koyabilirmiyiz. yardımcı olur musun ?
progress bar ile yapabilirsin,

progressbarın max değerini hesaplatıp yükledikten sonra queryde her bulamadığı kontrolden sonra ProgressBar1.StepBy(1) özelliği ile progress barı ilerleteceksin, ilerlemiş halini görmek içinde aplication.messaje ile progress barın ilerlemiş halini ekranda yenileyeceksin,
Cevapla