sql de bulunan kaydı secme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
turkisch
Üye
Mesajlar: 13
Kayıt: 27 Şub 2004 02:52
Konum: ist
İletişim:

sql de bulunan kaydı secme

Mesaj gönderen turkisch »

slms hemen konuya geciyorum...
sorun bir:
sql ile bi database hazırladım. mesela bi memo kutucumuga databaseimdeki cd_adi alanını yerlestirdim. baska bi edit kutusundan da arama yapıyorum. sorun su edit kutusuna yazdıgım kelime bulundugunda memo icinde cümlenin neresinde bulunduysa secili hale gelmesini istiyorum. yani edit kutusundaki kelime memo kutucugunda da secili olsun. bunun bir yolu var mıdır?.
sorun iki:
bir arama yapıldıgında eger kayıt bulunamadıysa "kayıt bulunamadı" diye bi mesaj verdirmek istiyorum.
sorun üç:
edit kutusuna yazılan kelimeyi sartlı aratmak istiyorum. mesela içinde "bogaz köprüsü" gecen kayıtları bulmak istiyorsa sadece bogaz köprüsünü bulsun ya da aynı text kutusundan içinde "bogaz" ve "köprü" yazan kayıtları da bulabilsin. hani webde arama yaparken ikiden fazla kelime yazdıgımızda "" tırnak isareti kullnmıssak kelimeleri bütün arıyor ya onun gibi bisey yapmak istiyorum yani mesela tırnak koyarsa kelimeleri bütün arasın tırnakveya virgül yoksa kelimeleri tek tek aratsın...
biraz uzun oldu ama inanın benim icin cok önemli....

umarım dertlerimin bir caresi vardır.
hepinize cok tesekkür ediyorum.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Öncelikle heyecanlanma her derdin bir çaresi vardır. (Mutlaka her zorlu beraber bir kolaylık vardır, evet her zorlukla birlikte bir kolaylık vardır İnşirah Suresinde geçer)

Aşağıdaki kodda SearchDialog Execute edildikten sonraki yapılacak işlemler var !...

Kod: Tümünü seç

Procedure TfrmDokuman.FindIt ;
Var
  strSearch : String ;
Begin
  If Not (frMatchCase in dlgSearch.Options) Then
  Begin
    strSearch := Copy(frmArama.UpCaseTR(dbrTXT_TEXT.Text),1+intBase,Length(dbrTXT_TEXT.Text)-intBase) ;
    intFoundAt := Pos(frmArama.UpCaseTR(dlgSearch.FindText),strSearch) - 1 ;
    If intFoundAt > -1 Then
    Begin
      dbrTXT_TEXT.SetFocus ;
      dbrTXT_TEXT.SelStart := intBase + intFoundAt ;
      dbrTXT_TEXT.SelLength := Length(dlgSearch.FindText) ;
      intBase := intBase + intFoundAt + 1 ;
    End
    Else
    Begin
      ShowMessage('Bulunamadı !...'+#13+'Bir Sonraki Arama İşlemi Metnin Başından İtibaren Yapılacaktır !...') ;
      intFoundAt := -1 ;
      intBase := 0 ;
    End ;
  End
  Else
  Begin
    strSearch := Copy(dbrTXT_TEXT.Text,1+intBase,Length(dbrTXT_TEXT.Text)-intBase) ;
    intFoundAt := Pos(dlgSearch.FindText,strSearch) - 1 ;
    If intFoundAt > -1 Then
    Begin
      dbrTXT_TEXT.SetFocus ;
      dbrTXT_TEXT.SelStart := intBase + intFoundAt ;
      dbrTXT_TEXT.SelLength := Length(dlgSearch.FindText) ;
      intBase := intBase + intFoundAt + 1 ;
    End
    Else
    Begin
      ShowMessage('Bulunamadı !...'+#13+'Bir Sonraki Arama İşlemi Metnin Başından İtibaren Yapılacaktır !...') ;
      intFoundAt := -1 ;
      intBase := 0 ;
    End ;
  End ;
End ;
Ayrıca, Daha açıklayıcı olması için TSearchDialog'un helpinden Pos veya FindText'in helpinde yeterince örnek var.

Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
turkisch
Üye
Mesajlar: 13
Kayıt: 27 Şub 2004 02:52
Konum: ist
İletişim:

tşk ve baska bir sorun daha..

Mesaj gönderen turkisch »

öncelikle yardımlarınız içinm size cok tşk. ederim.
ben 3 soru sormustum ama verdiginiz cevap ilk soruya mı ait. diger sorun iki ve üç ün cevapları dahil degil öyle degil mi.. diger sorunlarım için de care var mıdır?
ve bir sorun daha cıktı
iki query im var. ikisini birbiriyle ilişkilendirmek istiyorum. query1 i query2 ile ilişkilendirebiliyorum. mesela query1 de secili bi kayıt query2 de secili gösterilebiliyor ama query2 de secili olan kayıtı query1 de sectiremiyorum. umarım anlamıssınıdır...
tekrar cok tşk ederim..
Cevapla