Merhaba arkadaşlar;
Veri tabanı olarak access kullanıyorum, formumda edit nesnesi ve db gridim var. veri tabanı baglantısı içinse ado nesnesi ve adotable kullanıyorum.
Sizden yardım istedigim konu ise şu
edit nesnesini kullanarak arama yapıp dbgridde listeletmek istiyorum,
fakat arama işlemimini ( ; )ayıracını kullanarak çoklu arama yapmak istiyorum. mesela edit nesnesine Ali;can;cem yazdıgımda hem alileri hem canları heme cemleri dbgridde görmek istiyorum konu ile ilgili bilgisi olan arkadaşların yardımlarını bekliyorum.
Kolay gelsinnn...
tabloda Ayirac belirleyerek coklu arama yapabilme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Mrb; kodu test etmedim ama çalışması lazım.Kolay gelsinz.
Kod: Tümünü seç
function ExLocate(const DataSet:TDataSet;const Alanlar:String;Degerler:String;const Options: TLocateOptions=[]):Boolean;
function HarfSay(const S:String;const Harf:Char=';'):Integer;
var i:Integer;
begin
if S='' then Result:=-1 else begin
Result:=0;
for i:=Length(S) downto 1 do
if S[i]=Harf then Inc(Result);
end;
end;
var Deger:Variant; i,idx,n:Integer; S:String;
begin
n:=HarfSay(Degerler);
//if HarfSay(Alanlar)<>n then {Alanlar ve değerler arasında uyuşmazlık var}
if n=0 then Result:=DataSet.Locate(Alanlar,Degerler,Options)
else if n>0 then begin
Deger:=VarArrayCreate([0,n],varVariant);
idx:=0;
while Degerler<>'' do begin
i:=Pos(';',Degerler);
if i>0 then begin
S:=Copy(Degerler,1,i-1);
Delete(Degerler,1,i);
end else begin
S:=Degerler;
Degerler:='';
end;
Deger[idx]:=S;
inc(idx);
end;
Result:=DataSet.Locate(Alanlar,Deger,Options);
VarClear(Deger);
end else Result:=False;
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .