Delphi İki dbgrid arasında karşılaştırma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 4
- Kayıt: 10 Nis 2005 04:30
Delphi İki dbgrid arasında karşılaştırma
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 ?
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 ?
Re: Delphi İki dbgrid arasında karşılaştırma
s.a
öncelikle database1 ve database2 master detail yapmalısın ve
olarak düzenleyebilirsiniz kolay gelsin
ö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
Zengin
-
- Üye
- Mesajlar: 4
- Kayıt: 10 Nis 2005 04:30
Re: Delphi İki dbgrid arasında karşılaştırma
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.
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.
Re: Delphi İki dbgrid arasında karşılaştırma
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,
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,
- jafari1983
- Üye
- Mesajlar: 44
- Kayıt: 05 Eyl 2010 10:32
Re: Delphi İki dbgrid arasında karşılaştırma
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!"
-
- Üye
- Mesajlar: 4
- Kayıt: 10 Nis 2005 04:30
Re: Delphi İki dbgrid arasında karşılaştırma
üstad çok saol, emeğine sağlık, kod çalıştı. sql sorgulama uzun sürüyor ama yapcak bişi yok 

Re: Delphi İki dbgrid arasında karşılaştırma
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
-
- Üye
- Mesajlar: 4
- Kayıt: 10 Nis 2005 04:30
Re: Delphi İki dbgrid arasında karşılaştırma
üstad, peki buna progeress bar veya time remaining koyabilirmiyiz. yardımcı olur musun ?
Re: Delphi İki dbgrid arasında karşılaştırma
progress bar ile yapabilirsin,unmerciful yazdı:üstad, peki buna progeress bar veya time remaining koyabilirmiyiz. yardımcı olur musun ?
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,