Bugün, Saat: 08:39
(Son Düzenleme: Bugün, Saat: 08:55, Düzenleyen: hi_selamlar.)
(Dün, Saat: 20:39)maydin60 Adlı Kullanıcıdan Alıntı: Aşağıdaki function CheckListBox ta seçilmiş kutucuklardaki items ismilerini tek tırnak içinde göstererek
bir string katarı oluşturuyor...
Edit2 e atınca '0,75 lt','2,5 lt','15 lt' bu şekilde atama yapıyor. fakat Query nin Parametresıne aktarınca
''0,75 lt','2,5 lt','15 lt'' başa ve sona çift tırnak atıyor.. ve derleme sonucunda hata alıyorum..
Function TFUrunBilgileri.SecilmisKutulariGetir(CheckListBox: TCheckListBox): String;
var
I : Integer;
begin
for I := 0 to CheckListBox.Items.Count - 1 do
if CheckListBox.State[I] = cbChecked then
Result := Result + QuotedStr(CheckListBox.Items[I]) + ',';
Result := Copy(Result, 0, Length(Result) - 1);
end;
procedure TFUrunBilgileri.BtnAktarClick(Sender: TObject);
var
StrList:String;
begin
edit2.text:= SecilmisKutulariGetir (CheckListBox2);
StrList:=edit2.text;
Query1.Close ;
Query1.ParamByName('LTGR_PARAM').AsString :=StrList;
// Query1.Params [0].AsString :=StrList;
Query1.Open ;
end;
**************************************
Sorum şu CheckList box taki seçili öğeleri daha farklı tek tırnak ve aralarında virgül atayarak string döndüren daha stabil yöntem varmı...
Şimdiden Sağolasınız arkadaşlar..
***************************************
Query nın SQL kodu :
SELECT
STOK_KODU
STOK_ADI,
DOLUM_LT
FROM STOK_BILGILERI
WHERE
DOLUM_LT IN ( :LTGR_PARAM)
Merhabalar,
Delphi 7
En basit çözüm,
Query1.Close;
// Parametre kullanma, direkt yaz
Query1.SQL.Text := 'SELECT STOK_KODU, STOK_ADI, DOLUM_LT FROM STOK_BILGILERI ' +
'WHERE DOLUM_LT IN (' + SecilmisKutulariGetir(CheckListBox2) + ')';
Query1.Open;
Kullandığınız veritabnı nedir belirtmemişsiniz. RDBMS tarzı bir DB kullanıyorsanız onlarında
kendi içlerinde bazı fonksiyonları mevcut.
Kolay gelsin
Amaç, bilginin de/aklın da zekat'ını vermek.

