kb memtable'da locate sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

kb memtable'da locate sorunu

Mesaj gönderen true_false »

merhabalar interbase veritabanı kullanıyorum
yazdığım şu kodda

Kod: Tümünü seç

var j : Byte;
begin
     with MEM_TODO do
     begin
       First;

        for j := 0 to cxListBox2.Items.Count-1 do
        begin
         if MEM_TODO.Locate('USER_NAME',cxListBox2.Items[j],[]) then
         begin;
            if not Dm.CDS_TODO.Active then Dm.RefreshDatas;
            Dm.CDS_TODO.Append;
            Dm.CDS_TODOSTDL_SENDER_ID.Value  := Dm.fSenderId;
            Dm.CDS_TODOSTDL_TO_ID.Value      := MEM_TODOUSER_ID.Value;
            Dm.CDS_TODOSTDL_DESC.AsString    := cxMemo2.Text;
            Dm.CDS_TODO.Post;
            Dm.CDS_TODO.ApplyUpdates(-1);
            Dm.CDS_TODO.Refresh;
         end;

        end;
      end;
end;
şu hatayı veriyo
(first ten sora döngüye girerken);
...client.exe raised execption class EDataBase Eror with message 'MEM_TODO ' cannot perform this operation on a closed dataset. process stoped....
şimdiden vermiş olduğunuz cevaplar için teşekkür ederim
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

hocam MEM_TODO tablosunu açmamışsınız(open)..
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Mesaj gönderen true_false »

hocam formun showunda da şu kod yazılı

Kod: Tümünü seç

 while not Eof do
           begin
              if not MEM_TODO.Active then  MEM_TODO.Open;
              MEM_TODO.Append;
              MEM_USERUSER_ID.Value := Dm.cdsUsersUSER_ID.Value;
MEM_USERUSER_NAME.AsString :=Dm.cdsUsersUSER_NAME.AsString;
              MEM_TODO.Post;
             MEM_TODO.Next;
          end;
saygılarımla..
Kullanıcı avatarı
hbahadir
Kıdemli Üye
Mesajlar: 544
Kayıt: 06 Ara 2004 05:03
Konum: BURSA idi artık İST.
İletişim:

Mesaj gönderen hbahadir »

Kod: Tümünü seç

 while not Eof do 
           begin 
              if not MEM_TODO.Active then  MEM_TODO.Open; 
EOF MEM_TODO dosyasının eof kontrolü mü?

Kolay gelsin
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Mesaj gönderen true_false »

arkadaşlar ilginiz ve alakanız için tüm kalbimle teşekkürler
işte sorunu çözen kod

Kod: Tümünü seç

 while not Eof do
           begin
              if not MEM_USER.Active then MEM_USER.Open;
              MEM_USER.Append;
              MEM_USERUSER_ID.Value :=  Dm.cdsUsersUSER_ID.Value;
              MEM_USERUSER_NAME.AsString := Dm.cdsUsersUSER_NAME.AsString;
              MEM_USER.Post;
              Next;
             if not MEM_TODO.Active then MEM_TODO.Open;
             MEM_TODO.Append;
             MEM_TODOUSER_ID.Value := dm.cdsUsersUSER_ID.Value;
             MEM_TODOUSER_NAME.AsString:= dm.cdsUsersUSER_NAME.AsString;
             MEM_TODO.Post;
             Next;
           end;
Cevapla