adoquery sql İN içerisinde parametre kullanımı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
BOGACHAN
Üye
Mesajlar: 38
Kayıt: 12 May 2004 02:37
Konum: istanbbul

adoquery sql İN içerisinde parametre kullanımı

Mesaj gönderen BOGACHAN »

Kod: Tümünü seç


ADOQuery1.Close;
Adoquery1.sql.add('SELECT * FROM STOKFIS');
Adoquery1.sql.add('WHERE TIP IN (:fislist)');
ADOQuery1.Parameters.ParamByName('fislist').Value:='1,2,3,4';
ADOQuery1.Open;

şeklinde bi komut var. burda tip alanı integer ve benim burda tip alanında in komutu ile şarta koymma gerek. fislist alanını int olarak tanıtsam '1,2,3,4' gibi olan fiş tiplerini yollayamıyorum. string olduğundada hata vermiyor ama geriye hiç bir kayıt getirmiyor. ne önerebilirsiniz. Teşekkürler
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Paramatre kullanman şart değil. PArametresiz yapabilirsin. Yağacağın iş şu şekilde yani:

ADOQuery1.Close;
Adoquery1.sql.add('SELECT * FROM STOKFIS');
Adoquery1.sql.add('WHERE TIP IN (1,2,3,4)');
ADOQuery1.Open;


Eğer 1,2,3,4 değerlerini bir yerden okuyorsan bir değişken tanımla:

Kod: Tümünü seç

deger:string;
şeklinde ve bu değerleri bu değişkene ata:

Kod: Tümünü seç

deger := '1,2,3,4';
Sonra query stringe bu değişkeni gömersin:

Kod: Tümünü seç

Adoquery1.sql.add('WHERE TIP IN ('+deger+')');
BOGACHAN
Üye
Mesajlar: 38
Kayıt: 12 May 2004 02:37
Konum: istanbbul

Mesaj gönderen BOGACHAN »

parametreye gelen 1,2,3,4,5 gibi değerler checklist ten geliyor seçilen fiştiplerine görö oluşuyor.

sorrgu cümlesini adoqueynin textine yazdım ve parametrelerle değerler gönderiyorum. cümle bayağı uzun iç içe selectlerden oluşan bi cümle. tip alanı integer olduğundan dediğim gibi :fislist.value='1,2,3,4' dediğimde dorgudan ghiçbir değer dönmüyor. sorgu içine elle yazdığımda değerleri veriyor.

bende son çare sorguyu sql texten alıp buton clik taşıdım ozaman dediğiniz şekilde değişkene atadayıp yaptım. ozamanda sqloldb.dll read of adress diye hata veiyor derleyip çalıştığında. ama oluşan exe yi çalıştırdığımda hata filan vermeden düzgün şekilde çalışıyor. sizce bu sağlıklımı. derlemede hata vermesi ama direk exeyi çalıştırınca doğru çalışması. teşekkürler
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Çok uzun sql cümleleri ni cod içinde yazmak boşa veritabanında bir view oluşturun ve
sorgudan sonra where ve order by ları ekleyin bence.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
BOGACHAN
Üye
Mesajlar: 38
Kayıt: 12 May 2004 02:37
Konum: istanbbul

ek not

Mesaj gönderen BOGACHAN »

bu sql cümlesini qury analyzer veya enterprise maneger da sağlıklı ve hızlı şekilde çalıştırıyorum. adoquery texte yazdığımdada sorun yk sadece kod bloğuna taşıdığımda ozaman sql ole db read of address diye hata veriyor bu hatayıda normal exeyi çalıştırıdığımda hatayı alamıyorum.
Cevapla