Delphi Dünyası Facebook'ta

Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

Gönderen Konu: CheckListBox i veritabaninda kullanma  (Okunma sayısı 3611 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı dynamo

  • Delphi 3 Level 4
  • ****
  • İleti: 137
  • Rep: +3/-1
CheckListBox i veritabaninda kullanma
« : 07 Nisan 2007 12:34:55 »
öncelikle veritabanında Boolean bir alan olmalı.Bu boolean alanın true/false durumuna  göre veriler CheckListBox' a seçili olarak/olmayarak gelir.Tablo'da "durum" adlı Boolean bir alanımız olsun.sql serverde Boolean alan için "Bit" seçilir.dbCheckListBox komponentimiz olmadığı için CheckListBox'ta seçilen/kaldırılan değeri bu Boolean alan ile kotrol ediyoruz.

verileri alma:

Kod: [Seç]
procedure TfrmAnaMenu.Button1Click(Sender: TObject);
var
   i:integer;
begin
   CheckListBox1.Clear;

   ADOQuery1.First;
   for i:=0 to ADOQuery1.RecordCount-1 do begin
      CheckListBox1.Items.Add(ADOQuery1.FieldByName('ad').AsString);
      if ADOQuery1.FieldByName('durum').AsBoolean=true then
         CheckListBox1.Checked[i]:=true
      else
         CheckListBox1.Checked[i]:=false;
      ADOQuery1.Next;
   end;

end;




kaydetme:
CheckListBox'ta değerleri seçme/seçmeme durumuna göre tabloya kaydetme için CheckListBox1'in OnClick olayını kullanalım:

Kod: [Seç]
procedure TfrmAnaMenu.CheckListBox1Click(Sender: TObject);
begin
   ADOQuery1.Locate('kod',IntToStr(CheckListBox1.ItemIndex+1),[]);
   if CheckListBox1.Checked[CheckListBox1.ItemIndex] then begin
      ADOQuery1.Edit;
      ADOQuery1.FieldByName('durum').AsBoolean:=true;
      ADOQuery1.Post;
   end
   else begin
      ADOQuery1.Edit;
      ADOQuery1.FieldByName('durum').AsBoolean:=false;
      ADOQuery1.Post;
   end;
end;



ADOQuery1 check edilen/kaldırılan değere Locate olması için kod alanı sıralı olmalı."CheckListBox1.ItemIndex+1" -->CheckListBox1'ın itemindex'ini "kod"un değerine eşitledik."+1" ise,indexler daima 0'dan başladığından ekledik.aksi halde check edilen/kaldırılan değerin hangi koda ait olduğunu bulamazdık. yada "kod"ların tablodaki sırası bir diziye atanarak "CheckListBox1.ItemIndex+1" bu dizinin indexine eşitlenerek ilgili koda Locate yapılabilir.

« Son Düzenleme: 07 Nisan 2007 14:21:15 by Fatih »