Ben nerde yanlış yaptım? TQuery String List Editor

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Ben nerde yanlış yaptım? TQuery String List Editor

Mesaj gönderen neu84 »

Selam arkadaşlar, Tquery nesnesinin SQL kısmına bi sorgu yazıyorum, Lıke kullanınca olay kopup gidiyo. Parametreyi Lıke ile nasıl gösterebilirim?
Bu şekilde yaptım ama hata veriyor.bulamıyo diyo depo parametresini. Syntaxının neresinde hata var? yoksa String List Editor bu şekilde Like kullanamıyomuyuz.

Kod: Tümünü seç

select * from Depo where DepoTipi LIKE ''%:depo%''
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Ben nerde yanlış yaptım? TQuery String List Editor

Mesaj gönderen aslangeri »

verdiği hata mesajı nedir.
birde parametre kullanıyorsanız tırnaklara ihtiyacınız yok.
where xxx like :depo
şeklinde parametreyi tanımlayabilrsiniz.
depo parametresine değer olarak %abc%' verdiğiniz zaman problem olmayacaktır.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Ben nerde yanlış yaptım? TQuery String List Editor

Mesaj gönderen Lord_Ares »

slm şöyle bir denermisin. sanırım kodunda DepoTipi.db koymamışsın belki bu kısmından kaynaklanıyor olabilir.

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from DepoTipi.db');
Query1.SQL.Add('WHERE Lower() like "%'+LowerCase('depo')+'%"');
Query1.ExecSQL;
Query1.Open;


dilersen query kullanmadan sorgulama yapabileceğin şöyle bi kod var.


//// exeklasör fonksiyonu,datalarımızın yolunu her seferinde yazmaaktan kurtarıyor, başka bir pc ye kurdunda datalar bulunamdı hatasınla karşılaşmassın

function TForm1.EXEKLASOR: string;
begin
Result := ExtractFilePath(Application.ExeName);
if Result[Length(Result)] <> '\' then
Result := Result + '\';
end;
----------------------------------------------
formuna Query bileşeni koyamadan arama yapabileceğin kod

function TForm1.Ayni_Kayit_Sorgusu(Data_Adi, AlanAdi, Kayitli_Bilgi, Aranan:String;Islem_Durumu:Integer):Boolean ;
var
Durum:boolean;
Sorgu:TQuery;
begin
Sorgu:=TQuery.Create(Self);
Durum:=true;

Sorgu.DatabaseName:=Form1.EXEKLASOR+'data';
if Aranan<>'' then begin
Sorgu.SQL.Clear;
Sorgu.SQL.Add('Select '+AlanAdi+' FROM '+Data_Adi+' WHERE '+AlanAdi+' = '+QuotedStr(Aranan));
Sorgu.OPEN;
Sorgu.FieldDefs.Update;


if Sorgu.FieldByName(AlanAdi).AsString=Aranan then Durum:=True else Durum:=False;
{1: if Kayitli_Bilgi<>Aranan then begin
if Sorgu.FieldByName(AlanAdi).AsString=Aranan then Durum:=True else Durum:=False;
end else Durum:=false;
}
Sorgu.CLOSE;
Result:=Durum ;
end else Result:=Durum;
Sorgu.Free;
end;
--------------------------------------
ve kullanım şekli

procedure TForm1.Button1Click(Sender: TObject);
var
mesaj:string;
begin
if Ayni_Kayit_Sorgusu('toptancilar','Firmadi',Table1Firmadi.AsString, Edit1.Text,StrToInt(Edit2.Text) )=True then begin

mesaj:=mesaj+#13+'MALZEME ADI Kullanılmaktadır...'+'('+Edit1.Text+')';
ShowMessage(mesaj);
end;

end;
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: Ben nerde yanlış yaptım? TQuery String List Editor

Mesaj gönderen neu84 »

Cevap için tşk ederim.. Tqueryde string list editor kullanmak istemememin sebebi sorgularımın çok uzun olması, store procedure de kullanmamam gerekiyo. String list editorde yazınca Like sadece buna benzer onlanları getiriyo, sadece başındaki yada sonraki olarak alamıyorum, yada ortasında bi yerde benzer varsa getiremiyorum hata verdigi için.
Cevapla