queryparamaters

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
ozsal
Üye
Mesajlar: 108
Kayıt: 22 Oca 2006 07:55
Konum: izmir
İletişim:

queryparamaters

Mesaj gönderen ozsal »

s.a kolaygelsin arkadaslar.
forumda arattım ama tatmın edıcı cevaplar bulamadım. şimdiden yardımlarınıziçin teşekkürler.


1. si delphi 7 ye terfii ettim. iki kitaptan destek alarak bir proje yapmaya çalışıyorum.
sorularımdan birincisi


proje de ilk olarak bir data module oluşturuyorum.
burada gereken queryleri oluşturuyorum

datamoduleun ismi dm

form üzeinde bir dbgrid bir edit box var.
istediğim edit box da tuşa bastıgım zaman (edit1.keypreess) olayında

query nin edit box daki bilgileri içeren ( al yazınca; almak,kalmak ) gibi kayıtları göstermesini istiyorum, ( ilk etap da al ile başlayanlar da olur)
ama yapamadım

daha onceden delphi 6 kullanırken

Kod: Tümünü seç

 var
ara :string;
begin
ara:='%'+edit1.text+'%';
query1.sql.close;
query1.sql.clear;
query1.sql('select * from veritabanı where  ısım=:prisim');
query1.param[0].asstring:=ara;
query1.open;

( kodu yanlış yazmış olabilirm);

gibi bir komutla yapmak istediğim ikinci şey
( al ile başlayanları listeleyebiliyordum.)

şimdi ise

formda

dm.qrsahıslar.close
dm.qrsahıslar.clear;
dm.qrsahıslar.sql.add......
qm.qrsahıslar.param[0]...


yazıp calışttırdığım zaman 'param' diye bir tanım bilmediği uyarısı geliyor.

aynı veritabanındaki verilerin örneğin aynı tarihlilerini göstermek istediğim zaman

qr.sahıslar.paramaters.parambyname('dfs').value=date;
yazarak istediğim sonuca erişiyorum.

bu arama süzme konusunda yardımlarınız için teşekkür ederim.
iyi çalışmalar
Glen
Üye
Mesajlar: 277
Kayıt: 12 Eki 2005 11:58

Re: queryparamaters

Mesaj gönderen Glen »

Selam,

1. yol bir lookup combobox kullanarak kod yazmadan istediginizi kolaylikla gerceklestirebilirsiniz.

2. si ise AdoQuery deki parametrelerin kullanimi..

Kod: Tümünü seç

AdoQuery.Close;
AdoQuery.SQL.Clear;
AdoQuery.SQL.Add('SELECT * FROM TABLO WHERE ADI = :ADI');
AdoQuery.Parameters.ParamByName('ADI').value := Edit1.text;
AdoQuery.Active := True;
Ancak "ile başlayan", "ile biten" gibi durumlarda parametre kullanmak konusunda ben de sikinti cekiyorum.. Onun yerine onerebilecegim parametre kullanmadan kodu direk yazmaniz ve koşuldan sonra LIKE terimini eklemeniz.

Ornek:

Kod: Tümünü seç

AdoQuery.Close;
AdoQuery.SQL.Clear;
AdoQuery.SQL.Add('SELECT * FROM TABLO WHERE ADI LIKE ''%'+Edit1.text+'%''');
AdoQuery.Active := True;
Bilgidiniz gibi '%' burada joker harfler olarak kullaniliyor, ekstradan '_' ise tek bir harf yerine.. Örnek vermek gerekirse,

A ile basliyan şehirler.. A%
A harfini icinde bulunduranlar %A%
A harfi ile bitenler %A
Baştan 3. harfi A olanlar __A%
Sondan 3. harfi A olanlar %A__

Kolay gelsin.
En son Glen tarafından 13 Tem 2006 07:27 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
Kullanıcı avatarı
ozsal
Üye
Mesajlar: 108
Kayıt: 22 Oca 2006 07:55
Konum: izmir
İletişim:

Mesaj gönderen ozsal »

verdiğin cevap için teşekkür ederim. akşama bakacağım tekrar.
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

mevzunun bir diğer boyutu ise sql ile değilde database onksiyonları ilede yapılabilir....

locate komutuna bak istersen bir ...
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
erdemkurt
Üye
Mesajlar: 16
Kayıt: 30 Eyl 2007 09:28

Re: queryparamaters

Mesaj gönderen erdemkurt »

Glen yazdı:Selam,

1. yol bir lookup combobox kullanarak kod yazmadan istediginizi kolaylikla gerceklestirebilirsiniz.

2. si ise AdoQuery deki parametrelerin kullanimi..

Kod: Tümünü seç

AdoQuery.Close;
AdoQuery.SQL.Clear;
AdoQuery.SQL.Add('SELECT * FROM TABLO WHERE ADI = :ADI');
AdoQuery.Parameters.ParamByName('ADI').value := Edit1.text;
AdoQuery.Active := True;
Ancak "ile başlayan", "ile biten" gibi durumlarda parametre kullanmak konusunda ben de sikinti cekiyorum.. Onun yerine onerebilecegim parametre kullanmadan kodu direk yazmaniz ve koşuldan sonra LIKE terimini eklemeniz.

Ornek:

Kod: Tümünü seç

AdoQuery.Close;
AdoQuery.SQL.Clear;
AdoQuery.SQL.Add('SELECT * FROM TABLO WHERE ADI LIKE ''%'+Edit1.text+'%''');
AdoQuery.Active := True;
Bilgidiniz gibi '%' burada joker harfler olarak kullaniliyor, ekstradan '_' ise tek bir harf yerine.. Örnek vermek gerekirse,

A ile basliyan şehirler.. A%
A harfini icinde bulunduranlar %A%
A harfi ile bitenler %A
Baştan 3. harfi A olanlar __A%
Sondan 3. harfi A olanlar %A__

Kolay gelsin.

KARDEŞİM ALLAH BİNBİRKERE RAZI OLSUN SENDEN.KAFAYI YİYECEKTİM ARTIK.ÇOK TEŞEKKÜRLER.
Cevapla