Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
DBGrid de Birden Fazla Kayıt Seçmek.
#11
Kardeş öncelikle çok teşekkür ederim. Ben bu kodu buraya ekledim ama ListBox1 e doubleclick ile ekleme yapıyor ama tırnak ve virgülleri eklemiyor. 

 
procedure TForm29.DBGrid1CellClick(Column: TColumn);
var
L:integer;
begin
Query2.Close;
Query2.SQL.Clear;
 With Query2 do begin
     SQL.Add('[SELECT FATIRS_NO FROM TBLFATUIRS ');
 IF LISTBOX1.Items.Text <>'' THEN BEGIN
     SQL.Add(' WHERE FATIRS_NO IN ( ');
 FOR L:= 0 TO LISTBOX1.ItemS.Count-1 DO BEGIN
     SQL.Add(' '+QUOTEDSTR(LISTBOX1.Items.Strings[L])+',' ); // (a)
 END;
     SQL.Add(' '+QUOTEDSTR('')+QUOTEDSTR('')+')  ' ); // (b)
END;
Listbox1.clear;
END;
Cevapla
#12
Arkadaşım, Tırnak ve Virgülleri Listboxa eklemez zaten.
Listboxa eklenen sadece verilerdir.

Verileri bir döngüyle Daha sonra SQL nesnesinin içine alınıyor, virgüller asıl orada ekleniyor.

yukarıda verdiğim Örneğimi aynen uygularsan çalıştığını göreceksin.
DBGridein Doubleclickine eklenmez zaten.

Önce Bir Listboxa Veriler alınır.
Bunu bir butona ekle, Butona her bastığında Sadece birdefa eklemiş olur ikinci defa eklememe kontrolü burada yapılıyor.
// Button1 e ekle bunu
procedure TFORM1.Ekle1Click(Sender: TObject);
begin
if ListBox1.Items.IndexOf(Query1.fieldbyname('FATIRS_NO').Value) = -1 then BEGIN // Bu kısmı istersen Gride DblClick olarak da ekleyebilirsin
Listbox1.Items.Insert(0,Query1.fieldbyname('FATIRS_NO').Value);
end;

Ardından SQL nesnesinin içine bir Döngüyle Veriler Virgülleriyle Eklenip Sorgulanır hEpsi bu kadar.
Listboxtaki verileri Sorgulamak için Bunu da başka bir butona ekle, DBGridin Doubleclickine değil.
Tıkladığın anda Listboxta ne varsa sorgu içine girer sorgulanır
var
L:integer; //Burayı da Button2 ye ekle
begin
Query1.Close;
Query1.SQL.Clear;
With Query1 do begin
    SQL.Add('SELECT FATIRS_NO FROM TBLFATUIRS ');
IF LISTBOX1.Items.Text <>'' THEN BEGIN
    SQL.Add(' WHERE FATIRS_NO IN ( ');
FOR L:= 0 TO LISTBOX1.ItemS.Count-1 DO BEGIN
    SQL.Add(' '+QUOTEDSTR(LISTBOX1.Items.Strings[L])+',' ); // (a)
END;
    SQL.Add(' '+QUOTEDSTR('')+QUOTEDSTR('')+') ' ); // (b)
Query1.open;
END;
listbox2.items.text:=sql.text; // eğer SQL içindeki virgüllerini görmek istiyorsan bir tane daha Listbox2 ekle
Listbox1.clear;
END;

// Ben de buna yakın bir kod kullanıyorum. Daha önce parametre girerek yapıyordum, Sorgulanacak miktar fazlalaşınca Sorgular yavaşlamaya başladı
Bunu kullanınca hatrı sayılır hızlanma oldu. çoklu sorgu
Cevapla
#13
Merhaba,

Proje geliştirmek istiyorum ,  Eğitim videoları veya  kitap öneriniz var mıdır
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Datasnap veritabanı kayıt serdar 2 518 30-11-2025, Saat: 10:53
Son Yorum: serdar
  Veri Tabanına Kontrollü Kayıt Yaptırma bünyamin68 20 5.173 08-06-2025, Saat: 09:40
Son Yorum: izmaimen
  fastreport şablonu database e kayıt ercanskose 11 3.092 18-02-2025, Saat: 17:10
Son Yorum: akuyumcu63
  DBGrid Columns Otomatik Boyutlandırma Halil Han BADEM 8 8.542 23-01-2025, Saat: 14:51
Son Yorum: OZCANK
  MSSQL Kayıt yöntemi nevzatc 2 889 16-12-2024, Saat: 17:40
Son Yorum: mustafaozpinar



Konuyu Okuyanlar: 1 Ziyaretçi