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.
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
// 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
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

