Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Çözüldü-tabloada arama yapmak
#1
arkadaşlar daha önce yapmıştım ama notlarım formata kurban gitti veritabanında aramada sorun yaşıyorum 
daha önce yaptığım şeyi beceremedim bir türlü.

function LinkAra(link:string):integer;
var
 sonuc:integer;
begin
DMvt.SQLQuery1.SQL.Clear;
//DMvt.SQLQuery1.SQL.Add('SELECT * FROM TBL_LINK  where VLINK LIKE ''%'+link+'%'' ');
DMvt.SQLQuery1.SQL.Add('SELECT * FROM TBL_LINK  where VLINK='''+link+''' ');
DMvt.SQLQuery1.Open;

sonuc:= DMvt.SQLQuery1.RecordCount;

end;


link:=https://www.youtube.com/watch?v=6nFxVnFjw3M  şeklinde bir datayı daha önce kaydetmişmiyim diye tablomdan kontrol etmem lazım.  

tablomda sadece 1 kayıt olmasına rağmen sonuç doğru gelmiyor   burda kayıt var veya yok şeklinde bir değer nasıl alabiliriz

saygılarımla
Ekmeğimi yazılımdan kazanmıyorum kendi halimde bir şeyler yapıyorum. 49 yaşında emekliyim.
İğne sokmadan yardımcı olacaksan başımın üstünde yerin var.

Cevapla
#2
(15-06-2019, Saat: 23:21)sadikacar60 Adlı Kullanıcıdan Alıntı: arkadaşlar daha önce yapmıştım ama notlarım formata kurban gitti veritabanında aramada sorun yaşıyorum 
daha önce yaptığım şeyi beceremedim bir türlü.

function LinkAra(link:string):integer;
var
 sonuc:integer;
begin
DMvt.SQLQuery1.SQL.Clear;
//DMvt.SQLQuery1.SQL.Add('SELECT * FROM TBL_LINK  where VLINK LIKE ''%'+link+'%'' ');
DMvt.SQLQuery1.SQL.Add('SELECT * FROM TBL_LINK  where VLINK='''+link+''' ');
DMvt.SQLQuery1.Open;

sonuc:= DMvt.SQLQuery1.RecordCount;

end;


link:=https://www.youtube.com/watch?v=6nFxVnFjw3M  şeklinde bir datayı daha önce kaydetmişmiyim diye tablomdan kontrol etmem lazım.  

tablomda sadece 1 kayıt olmasına rağmen sonuç doğru gelmiyor   burda kayıt var veya yok şeklinde bir değer nasıl alabiliriz

saygılarımla

Merhabalar,

Bir kaç noktayı kontrol etmenizi öneririm.
SQL kodunuzda bir hata göremedim.

Fakat, daha önce kayıt ettiğiniz veriler içerisinde aynı veriye sahip bir den fazla kayıt olup olmadığını kontrol edin.

SELECT 
  VLINK,
  count(vlink) kayit_sayisi
FROM
  TBL_LINK
GROUP BY 
  VLINK
HAVING
  count(vlink)>1;

Bu sorgu sonucunda aynı isme sahip vlink kayıları listelenecektir.
Sonucun boş dönmesi gerekli. Eğer sonuc dönerse o kayılardan birer tanesini silin.

Daha sonra;
function LinkAra(link:string):integer;
var
 sonuc:integer;
begin
DMvt.DMvt.SQLQuery1.Close;
DMvt.SQLQuery1.SQL.Clear;
DMvt.SQLQuery1.SQL.Add('SELECT * FROM TBL_LINK  where VLINK=:aranacak_deger');
DMvt.SQLQuery1.ParamCheck := True;
DMvt.SQLQuery1.Params.ParamByName('aranacak_deger').DataType := ftString;
DMvt.SQLQuery1.Params.ParamByName('aranacak_deger').Value :=link;
DMvt.SQLQuery1.Open;

sonuc:= DMvt.SQLQuery1.RecordCount;

end; 


Diğer bir yöntem;
SQL Count fonksiyonu ile de kayıt sayısına daha hızlı ulaşabilirsiniz.

Dipnot;
Kesin sonuç arıyorsanız (1'e bir eşleşen) LIKE komutu kullanmayın.
LIKE komutu içinde geçen kayıtlara ulaşmak için kullanılır.

ÖRNEK;
Veri > AHMET NABER
VERİ > NABER OSMAN

LIKE "%NABER%"

SONUÇ;
- AHMET NABER
- NABER OSMAN

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#3
sanırım hocam lazarus kullanıyor. lazarus da parametre kullanımı biraz sıkıntılı (:değişken gibi).. Hocam sql cümleciğine değişken verirken Quatrstr yada 4 tane tırnak arasına alın '''''%ali%''''; gibi.


function LinkAra(link:string):integer;
var
sonuc:integer;
begin
DMvt.SQLQuery1.SQL.Clear;
DMvt.SQLQuery1.SQL.Add('SELECT * FROM TBL_LINK  where VLINK=' + ''''+link+'''');
DMvt.SQLQuery1.Open;

sonuc:= DMvt.SQLQuery1.RecordCount;
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#4
teşekkürler hocam denedim sonuç hep 1 geliyor
hatayı gösteren video koydum bakarsanız sevinirim saygılarımla

https://drive.google.com/open?id=1Oy3--I...nQP9CeDIsO
Ekmeğimi yazılımdan kazanmıyorum kendi halimde bir şeyler yapıyorum. 49 yaşında emekliyim.
İğne sokmadan yardımcı olacaksan başımın üstünde yerin var.

Cevapla
#5
DMvt.SQLQuery1.RecordCount'tan önce DMvt.SQLQuery1.Last'ı çağırıp dener misiniz?
There's no place like 127.0.0.1
WWW
Cevapla
#6
(16-06-2019, Saat: 14:07)SimaWB Adlı Kullanıcıdan Alıntı: DMvt.SQLQuery1.RecordCount'tan önce DMvt.SQLQuery1.Last'ı çağırıp dener misiniz?

DMvt.SQLQuery1.SQL.Clear;
DMvt.SQLQuery1.SQL.Add('SELECT * FROM TBL_LINK  where VLINK=' + ''''+link+'''');
DMvt.SQLQuery1.Open;

DMvt.SQLQuery1.Last;
sonuc:= DMvt.SQLQuery1.RecordCount;
Result :=sonuc;


ne yazarsam yazayım 1 değeri dönüş yapıyor. saygılarımla
Ekmeğimi yazılımdan kazanmıyorum kendi halimde bir şeyler yapıyorum. 49 yaşında emekliyim.
İğne sokmadan yardımcı olacaksan başımın üstünde yerin var.

Cevapla
#7
(16-06-2019, Saat: 17:19)sadikacar60 Adlı Kullanıcıdan Alıntı:
(16-06-2019, Saat: 14:07)SimaWB Adlı Kullanıcıdan Alıntı: DMvt.SQLQuery1.RecordCount'tan önce DMvt.SQLQuery1.Last'ı çağırıp dener misiniz?

DMvt.SQLQuery1.SQL.Clear;
DMvt.SQLQuery1.SQL.Add('SELECT * FROM TBL_LINK  where VLINK=' + ''''+link+'''');
DMvt.SQLQuery1.Open;

DMvt.SQLQuery1.Last;
sonuc:= DMvt.SQLQuery1.RecordCount;
Result :=sonuc;


ne yazarsam yazayım 1 değeri dönüş yapıyor. saygılarımla

Herhangi bir sorun gözükmüyor. Test için;
DMvt.SQLQuery1.Close;
DMvt.SQLQuery1.Open;
Olmazsa
Yeni bir Query create ederek yaparmısınız.
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#8
(17-06-2019, Saat: 17:46)narkotik Adlı Kullanıcıdan Alıntı:
(16-06-2019, Saat: 17:19)sadikacar60 Adlı Kullanıcıdan Alıntı:
DMvt.SQLQuery1.SQL.Clear;
DMvt.SQLQuery1.SQL.Add('SELECT * FROM TBL_LINK  where VLINK=' + ''''+link+'''');
DMvt.SQLQuery1.Open;

DMvt.SQLQuery1.Last;
sonuc:= DMvt.SQLQuery1.RecordCount;
Result :=sonuc;


ne yazarsam yazayım 1 değeri dönüş yapıyor. saygılarımla

Herhangi bir sorun gözükmüyor. Test için;
DMvt.SQLQuery1.Close;
DMvt.SQLQuery1.Open;
Olmazsa
Yeni bir Query create ederek yaparmısınız.

close yapıp tekrar açınca düzeldi   çok teşekkürler hocam zaman ayırıp cevap yazan hocalarıma saygılar sunarım.
Ekmeğimi yazılımdan kazanmıyorum kendi halimde bir şeyler yapıyorum. 49 yaşında emekliyim.
İğne sokmadan yardımcı olacaksan başımın üstünde yerin var.

Cevapla
#9
  DMvt.SQLQuery1.Close;
  DMvt.SQLQuery1.SQL.Text := 'Select Count(*) As BulunanKayitSayisi From TBL_LINK  Where VLINK Like ''' + '%' + link + '%' + ''' ';
 DMvt.SQLQuery1.Open;
 Button1.Caption := IntTostr(DMvt.SQLQuery1.FieldByName('BulunanKayitSayisi').AsInteger);
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#10
teşekkürler adelphiforumz hocam gönderdiğiniz kod da çalıştı.
saygılarımla
Ekmeğimi yazılımdan kazanmıyorum kendi halimde bir şeyler yapıyorum. 49 yaşında emekliyim.
İğne sokmadan yardımcı olacaksan başımın üstünde yerin var.

Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  ÇÖZÜLDÜ-IdTCPClient1 ve IdTCPServer1 kompenantları HK. sadikacar60 1 1.803 21-02-2020, Saat: 22:24
Son Yorum: sadikacar60
  ÇÖZÜLDÜ-zoom yapınca resim pixel rengi beyaz oluyor. sadikacar60 1 1.782 06-02-2020, Saat: 20:40
Son Yorum: sadikacar60
  ÇÖZÜLDÜ-çalışan exeleri listeleme hk. sadikacar60 1 1.990 05-11-2019, Saat: 22:40
Son Yorum: SimaWB
  Çözüldü sql sorgu 1 kere çalışıyor ikincide hata veriyor sadikacar60 10 7.910 24-06-2019, Saat: 10:28
Son Yorum: TescilsizUzman
  çözüldü-RadioGroup1 problemi sadikacar60 2 2.710 15-06-2019, Saat: 21:34
Son Yorum: sadikacar60



Konuyu Okuyanlar: 1 Ziyaretçi