String Ve integer Değer Sorunu

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

String Ve integer Değer Sorunu

Mesaj gönderen pro_imaj »

Merhaba,

Yazdığım SQl kodu için şu cümleyi kullanıyorum.

Kod: Tümünü seç

select * from STK Where '''+combobox1.text+''' = '''+edit1.text+''' '
Yukarıda Combobox1.text ile vtde arama yapılacak alanı seçitiriyorum. Edit1.text ile neyi arayacağımı yazıyorum.

sonuç şöyle dönüyor

Kod: Tümünü seç

select * from STK Where MalAdi ='ülker'
yukarıda MalAdi string olduğundan sorunsuzca çalışıyor.




Kod: Tümünü seç

select * from STK Where Miktar ='1500'
Yukarıda Miktar integer olduğu için ' ' işaretinden dolayı sorun oluyor.

Bu sorunu nasıl aşarım acaba.
Teşekkürler.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Re: String Ve integer Değer Sorunu

Mesaj gönderen Uğur1982 »

merhaba...

AsValue kullanabilirsin..Normalde yavaştır ama dönüşümleri kendisi yapacaktır...Birde parametreli kullanabilirsin...

Kod: Tümünü seç

   Query1.SQL.Add('select * from STK Where '''+combobox1.text+'''=:DEGER');
   Query1.ParamByName('DEGER').AsValue := Edit1.Text;
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

'' sız olmuyor mu acaba ?
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,
@Uğur1982 hocam sql cümlesinin içinde Edit1.asvalue yemiyor !

olmadı yani hocam.

@oguzozturk74 '' olmuyormu derken neyi kastettiniz acaba.

Teşekkür ederim.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

pro_imaj yazdı:Merhaba,
@Uğur1982 hocam sql cümlesinin içinde Edit1.asvalue yemiyor !
Zaten Edit1.asvalue diye bir şey yok ki. :D

Görüldüğü gibi parametreli olarak dene...Daha güzel olur...
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba ;

Kod: Tümünü seç

  Query1.SQL.Add('select * from STK Where '''+combobox1.text+'''=:DEGER');
  Query1.ParamByName('DEGER').Value := Edit1.Text;
şeklinde yaprsan sorun olmaz. ParamByName in AsValue değilde Value özelliğine yazmalısın zaten AsValue die bir özelliği yok.
iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,

Cevaplarınız için tşk ederim.
Biraz geç oldu ama fırsat bulup akşam evde deneyebildim.

Çok güzel oldu. Sorunum tamamiyle çözümlendi

Kod: Tümünü seç

Query1.SQL.Add('select * from STK Where '''+combobox1.text+'''=:DEGER'); 
Query1.ParamByName('DEGER').Value := Edit1.Text; 
Bu kod ile sorun çözüldü.
Çok teşekkür ederim
Saygılarımla
kolay gelsin
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Kod: Tümünü seç

...('select * from STK Where '+combobox1.text+'='+edit1.text); 
Sorun morun kalmaz... :D
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

ender_arslanturk yazdı:

Kod: Tümünü seç

...('select * from STK Where '+combobox1.text+'='+edit1.text); 
Sorun morun kalmaz... :D
Merhaba @ender_arslanturk hocam

Dediğinize kesinlikle ve tamamiyle katılmıyorum siz hiç karşılaşmamışsınız galiba :idea:

böyle bir durumda hem Vtdeki alanın değeri yani tipi önemli hemde atadığınız değişkenin tibi.

Örnek yaparak yanıldığınızı göreceksiniz hocam.

Saygılarımla.
Kolay gelsin.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Deniyorum... Sonucu bildiririm...

Ayrıca sana katılmamak yanlış olur... Çünkü vt ve kullanılan vt nin alanına göre farklılık gösterir doğru... Ama Advantageyi kullandığımda sadece bazen alana göre QuoTedStr ile çözümlüyorum ... Onun haricinde hiç problemim olmadı... Takır takır yaptı.... Hatta manuel

Kod: Tümünü seç

..SQL.Add('Select* From Tablo Where SayisalAlan=5');
dediğimde bile sorun çıkarmadı... Neyse ben bir daha denemelerime bir bakim...

Kolay gelsin...
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

ender_arslanturk yazdı:

Kod: Tümünü seç

SQL.Add('Select* From Tablo Where SayisalAlan=5');
Merhaba Yukarıda belittiğiniz şekilde normal olarak çalışması çok doğal çünkü sayısal bir alan var. Aynı kullanımı string bir yapıda kullanırsanız hata verecektir.

yani

Kod: Tümünü seç

SQL.Add('Select* From Tablo Where SayisalAlan=5');

Kod: Tümünü seç

SQL.Add('Select* From Tablo Where StringAlan=5');
Böyle yazdığınızda hata verecektir.

Saygılarımla
Çalışmalarınızda başarılar.

iyi akşamlar
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

pro_imaj yazdı:

Kod: Tümünü seç

SQL.Add('Select* From Tablo Where StringAlan=5');
Böyle yazdığınızda hata verecektir.
Denedim doğruymuş ... Açıkcası hiç dikkatimi vermemişim buraya... 8)

(String=5) adında bir alan arıyor... Bu noktada ben de anlamışımki :lol: niye QuotedStr kullandığımı... :wink:

Açıkcası kafamı da bilerek yormadım... :D

İyi Akşamlar...
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,

@ender_arslanturk hocam olabilir. böyle şeyler hepimizde oluyor öğrendiyseniz çok daha güzel oldu.

Bilgi paylaştıkça gerçekten çok daha faydalı oluyor.

Ben bilmediğim bir konuyu yazdım hem ben öğrendim hemde çıkan sonuçlardan siz ve diğer ark. yeni şeyleri en azından fark ettiler.

Bu forum gerçekten farklı bir Forum.

Kod: Tümünü seç

if aradigim <> delphiturkiye then
begin
showmessage ('Türkiyede Bu Sorunun Cevabı Bulunamadı');
end;
:D
Saygılarımla...
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Cevapla