Özür diliyorum şu an bürodayım ve internete bağlanmak tehlikeli olduğundan forumda fazla sorgulayamadın ve soruya geçtim.
Sizle tanışmadan önce sorgularımı AdoTable+AdoQuery+DataSource+DbGrid ve editlerle yapıyordum.
Tanıştıktan sonra Adotable yerine AdoDataSete döndüm yalnız bunları quickreportta yazdırmayı önceleri yapıyordum. sorgu sonuclarını dilediğim şekilde istediğim kadarını çıktı alıyordum,
Şimdi adodataset te bunu yapamadım. QuickRepi oluşturuyorum üzerine önce adotable koyardım ve data setlerini sorgu formunun ado query sine ayarlardım nazlanırdı ama yinede yazardım text lerinide sorgu formunun adoquery sine bağlar field adlarınıda tablomdaki adları girerdim.
şimdi ise adodataset koyunca olmuyor. ben sorgu sonucunda dbgrid de çıkan sonuçların tümünü diğil kendi tayin edeceğim verileri yazdırmak istiyorum ADOTABLE kullanırken yapıyordum ama şimdi oluyor ayrıntılı olarak anlatırsanız sevinirim.
sorguda kullandığım komut
saygılar iyi çalışmalar[/code]s1,s2,s3,s4,s5,s6,s7,s8,s9:String;
b_OR,b_AND:Boolean;
begin
s1:=Edit1.Text;
s2:=Edit2.Text;
S3:=Edit3.Text;
s4:=Edit4.Text;
s5:=Edit5.Text;
s6:=Edit6.Text;
s7:=ComboBox1.Text;
s8:=ComboBox2.Text;
s9:=Edit7.Text;
b_OR:=(s1<>'') OR (s2<>'') OR (s3<>'') OR (s4<>'') OR (s5<>'') OR (s6<>'') OR (s7<>'') OR (s8<>'') OR (s9<>'');
b_AND:=false;
with AdoQuery1 do
begin
if Active then Close;
with SQL do
begin
Clear;
Add('Select*From Arsiv');
if b_OR then Add('Where');
if s1<>'' then add('(ADI LIKE ''%'+s1+'%'')');
b_AND:=b_AND OR (S1<>'');
if b_AND AND(s2<>'') then Add('AND');
if s2<>'' then add('(SOYADI LIKE ''%'+s2+'%'')');
b_AND:=b_AND OR (S2<>'');
if b_AND AND(s3<>'') then Add('AND');
if s3<>'' then add('(BABA_ADI LIKE ''%'+s3+'%'')');
b_AND:=b_AND OR (S3<>'');
if b_AND AND(s4<>'') then Add('AND');
if s4<>'' then add('(ANA_ADI LIKE ''%'+s4+'%'')');
b_AND:=b_AND OR (S4<>'');
if b_AND AND(s5<>'') then Add('AND');
if s5<>'' then add('(D_YERİ LIKE ''%'+s5+'%'')');
b_AND:=b_AND OR (S5<>'');
if b_AND AND(s6<>'') then Add('AND');
if s6<>'' then add('(D_TARİHİ LIKE ''%'+s6+'%'')');
b_AND:=b_AND OR (S6<>'');
if b_AND AND(s7<>'') then Add('AND');
if s7<>'' then add('(CİNSİYETİ LIKE ''%'+s7+'%'')');
b_AND:=b_AND OR (S7<>'');
if b_AND AND(s8<>'') then Add('AND');
if s8<>'' then add('(UYRUĞU LIKE ''%'+s8+'%'')');
b_AND:=b_AND OR (S8<>'');
if b_AND AND(s9<>'') then Add('AND');
if s9<>'' then add('(SUCLARI LIKE ''%'+s9+'%'')');
b_AND:=b_AND OR (S9<>'');
Add('ORDER BY İLÇE_NO');
end;
Open;
if IsEmpty then ShowMessage('Aradığınız Kayıt Bulunamadı?');
end;
end;
AdoDataset+AdaQuery ile yapılan sorgu sonucları
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Merhaba,
AdoTable yerine AdoDataset kullanmanız yerinde bir karar olmuş. Kullanamadım demişsiniz ama sorunu yazmamışsınız.
Öncelikle tablonuzun ismi AAA ile ADOTable kullanmakla, AdoDataset'e
select * from aaa
yazıp açmak aynı şeylerdir. Arada AdoDataset'in daha iyi bir yöntem olması dışında bir fark yoktur. Eğer sadece belli kayıtları bastırmak istiyorsan AdoDataset'e yazdığın SQL cümlesine WHERE ifadesi ile kısıtlama getirmen lazım.
Eğer sorununuz devam ediyorsa biraz daha detay yazın lütfen : Hangi veritanını kullanıyorsun? Nasıl bir sonuç alıyorsun, rapor hiç mi gözükmüyor yoksa yanlış mı gözüküyor vs. vs.
Kolay gelsin.
AdoTable yerine AdoDataset kullanmanız yerinde bir karar olmuş. Kullanamadım demişsiniz ama sorunu yazmamışsınız.
Öncelikle tablonuzun ismi AAA ile ADOTable kullanmakla, AdoDataset'e
select * from aaa
yazıp açmak aynı şeylerdir. Arada AdoDataset'in daha iyi bir yöntem olması dışında bir fark yoktur. Eğer sadece belli kayıtları bastırmak istiyorsan AdoDataset'e yazdığın SQL cümlesine WHERE ifadesi ile kısıtlama getirmen lazım.
Eğer sorununuz devam ediyorsa biraz daha detay yazın lütfen : Hangi veritanını kullanıyorsun? Nasıl bir sonuç alıyorsun, rapor hiç mi gözükmüyor yoksa yanlış mı gözüküyor vs. vs.
Kolay gelsin.
Merhabalar ve teşekkürler
Bu gün işyerinde akşama kadar bu işle uğraştım. Sorun Quickreportta oluyor. reporta adotable koyduğum zaman data setlerini formun üzerindeki adoquery lere bağlıyorum reportdbtexlerin data setlerini de önce adotable ile alan adlarını belirliyorum daha sonra data setini form üzerindeki adoquery ile değiştiriyorum aksi takdirde fieldlerde alan adları görünmüyor.
Adodatasete formlarda çevirdim sorgularda sorun yaşamıyorum fakat qreport üzerine gelince şaşırdım query leri kabul ettiremedim bende ado table ye döndüm sadece reportlarda tabi formlar adodataset ile yapıyorum. şimdilik önceki yazdığım microsoft ole db hatasını vermiyor.
sorun burda biraz şaşkınlık biraz bilmemek
ayrıca bu yukarıda yazdığım kodlara ne eklemeliyimki iki tarih arasındaki veriyide sorgulayarak bulayım. yeni olduğum ve yukarıdaki sorgu şeklini gördüğüm için sitede aradığımda değişik bilgiler geliyor tıkanıyorum.
misalen 01.01.2004 ile 31.01.2004 arası girilen tüm verileri dökmek gibi.
bana katlandığınız için teşekkür ve saygılar
Bu gün işyerinde akşama kadar bu işle uğraştım. Sorun Quickreportta oluyor. reporta adotable koyduğum zaman data setlerini formun üzerindeki adoquery lere bağlıyorum reportdbtexlerin data setlerini de önce adotable ile alan adlarını belirliyorum daha sonra data setini form üzerindeki adoquery ile değiştiriyorum aksi takdirde fieldlerde alan adları görünmüyor.
Adodatasete formlarda çevirdim sorgularda sorun yaşamıyorum fakat qreport üzerine gelince şaşırdım query leri kabul ettiremedim bende ado table ye döndüm sadece reportlarda tabi formlar adodataset ile yapıyorum. şimdilik önceki yazdığım microsoft ole db hatasını vermiyor.
sorun burda biraz şaşkınlık biraz bilmemek
ayrıca bu yukarıda yazdığım kodlara ne eklemeliyimki iki tarih arasındaki veriyide sorgulayarak bulayım. yeni olduğum ve yukarıdaki sorgu şeklini gördüğüm için sitede aradığımda değişik bilgiler geliyor tıkanıyorum.
misalen 01.01.2004 ile 31.01.2004 arası girilen tüm verileri dökmek gibi.
bana katlandığınız için teşekkür ve saygılar