sql ile sadece istenilen kaydı yazdırmak ve aramak

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ı
sarp_halit
Üye
Mesajlar: 241
Kayıt: 17 Ara 2003 04:30
Konum: Cennet Fethiye
İletişim:

sql ile sadece istenilen kaydı yazdırmak ve aramak

Mesaj gönderen sarp_halit »

Merhabalar ben delphi ile program yazmaya çalışan ve bu işe yeni başlamış birisi olarak daha tecrübeli arkadaşlara formdaki query ve data Source bağlantısını, sql de parametre kullanımını ve arama sonuçlarında sadece istediğim kaydı quickreportlara yollamayı nasıl yapabileceğimi sormak istiyorum.
bayağı uzun bir cümle oldu.
kısacası:
sorun1-)aramalarda parametreleri kullanamıyorum. örneğin edit1 e girilen değeri parametre olarak kullanamıyorum
sorun-2)veritabanında aramaları sql kullanamadığım için table nesnesinin findkey özelliğini kullanarak yapıyorum. arama doğru ama bulduğum sonucu yazdırmaya çalışınca da sadece veritabanının ilk kaydını bana gösteriyor. aynı mantıkla yani findkey ile denedim olmadı.

bir de, bu sql konusu dışında ama veritabanıyla ilgili, veritabanına kaydettiğim kayıtlara ( ilk kayıt hariç), bilgisayarımı yeniden başlatınca ulaşamıyorum. cachedupdates false değerinde. sorun bundan kaynaklanabilir mi?
bilen arkadaşlar. ilgilenirseniz sevinirim. benim için çok önemli ...

Teşekkür ederim.

Halit YILMAZ
Program yazmayı öğrenmeye çalışan birisi. :D
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

parametreli sorgu kullanmak icin iki yol var
birincisi Query komponentinin sql ozelligine sql kelimesini her seferinde yeniden olusturmak
yani edit1 de bulmak istedigin kayıtın nosu var ise
//database baglantını yaptıgını varsayarak

Kod: Tümünü seç

with query1 do
begin
  Close;
  SQL:='select * from table1 where id='+edit1.text;
  Open;
end;
ikinci yol ise Query komponentinin Params özelligini kullanarak
yani

Kod: Tümünü seç

query1.SQL:='select * from table1 where id=:id';
kodunnu bir kere yazarak

Kod: Tümünü seç

with query1 do
begin
  Close;
  Params[0].Value:=edit1.text;//Params listesiinden tiplei ayarlamak
  Open;                                 //gerekebilir tam hatırlamıyorum
end;
yerine gore iki yoldan biri (hangisi kolayına gelirse) kullanabilirsin

kayıtların kaybolması paradoxa ozgu bir olay
bunun icin her kayıttan sonra bir BDE apisi vardı onu cagırarak
bu sorun hallediliyordu sanırım
ÜŞENME,ERTELEME,VAZGEÇME
Cevapla