1

Konu: Hata "Function requires row or table buffering mode"

Herkese iyi çalışmalar;
Oluşturduğum tabloda otomatik kayıt no için SYS(2015) tanımlı. Çok uzun zamandır programı kullanmaktayım ve yaklaşık şu an tek tabloda çok olmasa da 50.000 civarında kayıt var. Son zamanlarda varolan kayıt üzerinde değişiklik yapmak istediğimde nadiren "Function requires row or table buffering mode" şeklinde hata mesajı alıyorum. Ancak mesajı vermesine rağmen tablodaki değişikliği kabul ediyor. Yani UPDATE ediyor. Tablolarımın tamamında Buffer Mode 5 tanımlı. Nadiren de olsa verilen bu hatanın nedeni ve nasıl giderileceği ile ilgili bilgi verirseniz sevinirim..

2

Re: Hata "Function requires row or table buffering mode"

tableupdate(),tablerevert() gibi bir komut kullanilan yerde tabloda buffer yoktur, mesaj gelir. Buffer olmadigindan zaten oraya geldiginde kaydedilmis olur.

Bu program cok kullanicili degil anladigim kadariyla. Eger cok kullanicili olabilecegini dusunuyorsan sys(2015) kullanmayi birakman lazim.

3

Re: Hata "Function requires row or table buffering mode"

Sayın Başöz cevabınız için teşekkürler..
Kullandığım programda tablodaki verileri hazırladığım View ile görüntülüyor (isme göre, ürüne göre vb..) daha sonra görüntülenen kayıtlarda düzenle ve değiştir şeklinde yazdığım kodlar ile değişiklik yapıyorum. Formda kullandığım Data Environment ta bulunan tablo ve Viewlerin BufferModeOver ları 5 ve update işlemini Tableupdate(2,.T.,"View")
Tableupdate(2,.T.,"asıltablo")
önce View ı update ederek sonra asıl tabloyu update ederek sonlandırıyorum. Burada anladığım kadarı ile asıl tabloda otomatik kayıt no ya yani SYS(2015) kullanmadan tabloları oluşturmak daha mı sağlıklı olacak.
Bir de neden bu hatayı sürekli yapmayıp çok nadiren yaptığı konusunda yardımcı olursanız sevinirim..

4

Re: Hata "Function requires row or table buffering mode"

View kullaniyorsan asil tabloya buffer yapmanin geregi yok. Yoksa senin yaptigin gibi cift tableupdate() gerekir.
Hatayi yaptigi yerde bufferin 1'e cekilip cekilmedigini kontrol et. Muhtemelen bir if...endif bloguna belli sartar altinda giriyor, girdiginde de buffer kapatiliyor (mesela tablo kanip aciliyor ancak buffer kurulmuyor). Yani oldugu ani yakalayip geriye dogru kodu incelemek gerek.

sys(2015) sadece tek bir makinede esi olmayan degerler uretir. Eger iki ya da daha cok makine devredeyse, cakisan degerler olusmaya baslar. Makine sayisi arttikca da cakisma sansi artar.

Onun yerine GUID kullanabilirsin. GUID 10 yerine 38 uzunlugunda olacak ama saglam. Gecenlerde ornek bir kod gondermistim, GUID diye ara.

5

Re: Hata "Function requires row or table buffering mode"

Çetin Bey cevap için teşekkürler,
Amacım programım çok kullanıcılı olması. Bu nedenle formda kullanılan tablolardan sadece verileri görüntülemekte kullandığımız View ın Buffer Mod Over ı 5 diğer tabloların Buffer Mod Over larının 1 olması yeterli mi? Çok kullanıcı için tüm tablo ve View ler için 5 olması gerekmiyor mu? Bu konu benim için biraz karışık.
Ayrıca çift Tableupdate() yapmanın sakıncası var mıdır?

6

Re: Hata "Function requires row or table buffering mode"

4 ay aradan sonra konuyu hatirlamak zor oluyor:)
Sadece goruntulemekte kullaniyoursan buffera bile gerek yok. View oldugunda 5 istem disi kayitlari engeller, ama ben olsam sadece goruntuleme icin view kullanmam (ama viewlari sevmeyen yalniz benim).

Cift tableupdatein sakincasi birini unutabilirsin;)

7

Re: Hata "Function requires row or table buffering mode"

cetinbasoz yazdı:

...
sys(2015) sadece tek bir makinede esi olmayan degerler uretir. Eger iki ya da daha cok makine devredeyse, cakisan degerler olusmaya baslar. Makine sayisi arttikca da cakisma sansi artar.
...


terminal server kullanmıyorsan çakışma zor ama eğer terminal server kullanıyorsan sys(2015) tam bir başbelası. çünkü herkes aynı saati kullanıyor. ancak ondan kurtulmanın yolu hem vfp için hem de foxpro dos için var. vfp için:
-user temp klasörünü öğren ve tmp dosyalarını orda aç. böylece çakışma ihtimali sıfıra iner. tabii aynı user ile iki kişinin login olması yasaklı olmalı.
-foxpro dos için de bir yolu var. ama kullanan olduğunu sanmıyorum. varsa anlatırım...

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

8

Re: Hata "Function requires row or table buffering mode"

cetinbasoz yazdı:

4 ay aradan sonra konuyu hatirlamak zor oluyor:)
...ama ben olsam sadece goruntuleme icin view kullanmam (ama viewlari sevmeyen yalniz benim).

...


view ben de artık kullanmıyorum. cursor adapter daha iyi.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com