Firebird Sql komutlari cikamadim icinden...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Firebird Sql komutlari cikamadim icinden...

Mesaj gönderen ikra »

öncelikle selamu aleyküm...

arkadaslar, hocalarim....

Firebird ögreneyim dedim sinir sistemlerim alt üst oldu...

simdiye kadar hic görmedigim seyler ile karsi karsiyayim...

sql icinde sartlandirma yapmak icin parametre kullanmak zorundayim...

Kod: Tümünü seç

IBQuery.selectsql.add('select * from tablo where isim="'+isim.text+'"');
bu sekilde yazdigimda calismiyor. mecburen parametre olarak bildirmeliyim...

parametresiz olmuyor mu? yoksa ben mi beceremiyorum?

update etmek istedigimde ise field i bulamadigini söylüyor oysaki field var. fieldlist e de ekledim. sartlandirip update etmek istedigimde ise sart i es geciyor ve tüm tabloyu update ediyor.

tek bir veriyi secip edit komutu ile modify etmeye calisiyorum, tabloda var olan tüm kayitlar modify oluyor :roll:

bunca kisi firebird den memnun ise hata muhakkak benden kaynaklaniyodur...
kıdemsiz üye
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

özür dilerim... IBQuery degil IBDataSet kullaniyorum...
kıdemsiz üye
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

forumun makaleler kısmındaki döökümanlara bir gözatmanı tavsiye ediyorum
viewtopic.php?t=9819&highlight=ibquery :ara
En son Fatih! tarafından 05 Ağu 2005 09:59 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

" değil ' kullanmalısın. Olmaması için başka bir sebep yok.
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

CoderLord hocam string oldugu icin bu sekilde kullandim ve diger veritabanlarini sorgularken bu calisiyor. bir de o sekilde deniyeyim...


FAOSoft hocam makaleleri okuyarak ögrenmeye calisiyorum. sanirim delphitürkiye de okumadigim makale kalmadi :wink:

ilginiz icin tesekkür ediyorum... deneme yanilma yöntemlerine devam ederek bu isi cözecegim Allah'in izni ve sizlerin yardimlari ile...
kıdemsiz üye
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

IBQuery olarak en kolay yol şu;

Kod: Tümünü seç

IBQuery.SQL.Clear;
IBQuery.SQL.Add('select * from tablo where isim= :ARANAN');
IBQuery.Prepare;
IBQuery.ParamByName('ARANAN').AsString := Isim.Text; 
IBQuery.Open;
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

selam
kardeş aslında sizin yazdığınız kodlarla ilgili bir sorun yani firebirdle alakası yokki
normalde bu kodları mesela paradoxda da yazsanız yine aynen hata verecektir
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Recep abinin verdigi kod ile parametre kullanarak da olur. sizin yatiginiz sekilde de olur.
Fakat sizin kodda tirnak " problemi var. ornek kodlardan quotedstr fonksiyonu ile nasil yapildigini bulabilirsiniz.
Sadece quotedstr seklinde aeatmayla orneklere ulasabilirsiniz...
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Evet çift tırnak kullanmışsın.
IBQuery.selectsql.add('select * from tablo where isim="'+isim.text+'"');
yerine iki tane tek tırnak kullanmalısın.

Kod: Tümünü seç

IBQuery.selectsql.add('select * from tablo where isim='''+isim.text+'''');
kullannalısın. Yine de yöntem olarak yukarıdaki yazdığım daha anlaşılır ve sağlam bir yöntem :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

hocalarim. Parametre ile de denedim. fakat büyük kücük harf ayrimi yapiyor. yani Simsek ile simSek ayrimi yapiyor... arama kriterlerine aynen kayit ettigim sekilde yazmam gerekiyor ki, sonuc versin. aksi taktir de kesinlikle sonuc alamiyorum... Yavuz olarak kayit ettigim bir isimi yAvuz olarak arattigimda sonuc alamiyorum fakat Y ile yada Ya ile arattigimda sonuc alabiliyorum... bu da büyük kücük harf sorunu oldugunu gösteriyor... var dir elbet bir yöntemi ama nasil???
kıdemsiz üye
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

upper yöntemini kullan

Kod: Tümünü seç

IBQuery.selectsql.add('select * from tablo where upper(isim)=upper('''+isim.text+''')');
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

Kod: Tümünü seç

qpersonal.Close;
qpersonal.SelectSQL.Clear;
qpersonal.SelectSQL.Add('SELECT * FROM PERSONAL WHERE '+(sender as TSuiEdit).Name+' LIKE :ara ORDER BY '+(sender as TSuiEdit).Name+' ASC');
qpersonal.ParamByName('ara').Value := (sender as TSuiEdit).Text+'%';
qpersonal.Open;
qpersonal = IBDataSet

hocalarim yukarida belirtmis oldugum kod su an program icerisinde kullandigim kodlar dir...

bu sekilde yapmis oldugum bir aramada daha önceden de belirtmis oldugum gibi büyük ve kücük harfleri ayirmakta ve dolayisi ile dogru sonuc alamamaktayim...

tecrübelerinizi ve fikirlerinizi benimle paylasmanizi rica ediyorum...

selam ve dua ile...
kıdemsiz üye
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

tamam... Hepinize coookkk tesekkür ediyorum.... Allahim razi olsun insaAllah... olay yardimlariniz ile cözüldü... sükürler olsun... sizlerden ögrenecegim daha cookkk sey var...

UPPER yapmak gerekiyormus...
kodun su an ki halini asagiya yaziyorum. ileride ayni sorun ile karsilasan arkadaslara yardimci olmasi umudu ile...

Kod: Tümünü seç

qpersonal.close;
qpersonal.selectsql.clear;
qpersonal.selectsql.add('select * from personal where upper('+(sender as TSuiEdit).Name+') like upper(:ara) order by '+(sender as TSuiEdit).Name+' asc');
qpersonal.ParamByName('ara').Value := (sender as TSuiEdit).Text+'%';
qpersonal.Open;
kıdemsiz üye
Cevapla