Bit alanıma kayıt yapamıyorum.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
mmnckr
Üye
Mesajlar: 83
Kayıt: 27 Nis 2005 08:04
Konum: izmir

Bit alanıma kayıt yapamıyorum.

Mesaj gönderen mmnckr »

Arkadaşlar hepinize selamlar.SQL serverda bulunan (bit) olarak tanımlı (durum) isimli alanıma kayıt yapmak istiyorum ama birtürlü kayıt yapmıyor.kod aşağıda nerede yanlışım var bi bakarsanız sevinirim
Bu kodtaki amacım listbox1 deki seçili alana karşılık gelen durum alanını true veya 1 yapmak.

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
listbox2.Items.Add(listbox1.Items.Strings[listbox1.itemindex]);
listbox1.Items.Delete(listbox1.itemindex);
if listbox1.itemindex > -1 then
begin
adodataset1.first;
while not adodataset1.Eof do
begin
if adodataset1skod.text = listbox1.Items.Strings[listbox1.itemindex] then
begin
adodataset1.Edit;
adodataset1durum.AsBoolean :=true;
adodataset1.Post;
adodataset1.Next;
end;
end;
end;
end;
mmnckr
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam..

- ListBox1'den seçim yaptın ve BitBtn1'e bastın o seçili satır silinip ListBox2'ye aktarılıyor. Buraya kadar tamam.

- Satır aktarma yapıldıktan hemen sonra her iki TListBox için de ItemIndex -1 olduğunu gözardı etmişsin :idea: Bu yüzden butona her bastığında beklediğin veritabanı işlemini aktarma ile engellemiş olduğundan gerçekleşmeyecektir.

- Ayrıca başka bir konu, veritabanında döngü yerine SQL sorgu ile bunu hallet. Server ile senin arandaki tarfik 0'a iner...

Kod: Tümünü seç

    With AdoQuery1 do
    begin
      // Connection vs. unutulmasın
      Active := False;
      SQL.Clear;
      SQL.Add('UPDATE tabloadi');
      SQL.Add('SET Durum = :durum');
      SQL.Add('Where skod = :skod');
      Parameters.ParamByName('durum').Value := True;
      Parameters.ParamByName('skod').Value  := QuotedStr(listbox1.Items.Strings[listbox1.itemindex]);
      ExecSQL;
    end;
gibi...
Resim
Resim ....Resim
Cevapla