1 Son düzenleyen, tgri (27.02.2008 15:09:58)

Konu: form kapatilinca update oluyor

formumda kullandigim sorgu sole:

Visual Fox Pro
DELETE FROM era!cek_senet_har WHERE cek_senet_har.csh_sira = 34742

bu sekilde 5 kayit donguyle siliniyor ancak bu kaytilarin sonuncusunun silinmesi icin formdan cikmam gerekiyor. yani aslinda bu sorguyla sonuncuyuda siliyor ancak diyerleri db ye yansiyor 5. kayit formdan cikinca db de silindi olarak gorunuyor. eger formdan cikilmassa 5. kayit hala var gorunuyor.  baya bi karmasik oldu big_smile

kisacasi bu sorgunun sonucunu formdan cikmadan sorgudan hemen sonra update etmek istiyorum.

form   : private sessionda
buffer : 0 (yani yok)

tesekkurler

2

Re: form kapatilinca update oluyor

Buffer var gibi duruyor.

Go recno()

dene.

3 Son düzenleyen, tgri (27.02.2008 19:06:07)

Re: form kapatilinca update oluyor

form bufferda deil.

go recno()
ile hic silinmedi. diyer 4 kayitta yerinde duruyor. 5. si zaten duruyor sad

4

Re: form kapatilinca update oluyor

SKIP
if eof()
   go bott
endif

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

5

Re: form kapatilinca update oluyor

Silinmediğini nasıl anlıyorsun? Yani bir grid var da gridde mi görünüyor. O zaman grdi refresh yap. Aslında Metin'in söylediği de sorunu çözer?

/o---------------------o\
     www.haser.com
\o---------------------o/

6

Re: form kapatilinca update oluyor

taRKan yazdı:

Silinmediğini nasıl anlıyorsun? Yani bir grid var da gridde mi görünüyor. O zaman grdi refresh yap. Aslında Metin'in söylediği de sorunu çözer?


aslinda galiba ben tam olarak kendimi anlatamadim sad .
silinmedigine direk sql server managementten bakiyorum yani direk db ye bakiyorum. aslinda yazdigim kodda siliyor. ama bu silme isleminde tum kayitlarim silindi gozukuyor. birtek son kayit formu kapatinca silindi gorunuyor. yani db yi "commit" etmek icin bir komuta ihtiyacim var ancak bunu yapamadim.

7

Re: form kapatilinca update oluyor

Visual Fox Pro
SELECT * FROM era!cek_senet_har WHERE (cek_senet_har.csh_bordro_sira = m.lp_bordro_id1) AND (cek_senet_har.csh_devir = .f.) INTO CURSOR csh_cursor3325

 
   SELECT csh_cursor3325
   GO TOP IN csh_cursor3325
   DO WHILE !EOF()
      IF csh_cursor3325.csh_sira >= m.csh_sira1       
         DELETE FROM era!cek_senet_har WHERE cek_senet_har.csh_sira = csh_cursor3325.csh_sira
         UPDATE era!cek_senet SET cek_senet.cs_durumu = m.csh_max_durum1 WHERE (cek_senet.cs_sira = csh_cursor3325.csh_cek_senet_sira)
      ELSE
        EXIT
      ENDIF
    ENDIF
    SELECT csh_cursor3325
    SKIP IN csh_cursor3325
  ENDDO


iste buda full source. ilgilenen arkadaslara tesekkurler.

8 Son düzenleyen, cetinbasoz (28.02.2008 12:11:52)

Re: form kapatilinca update oluyor

Hem buffer yok diyorsun, hem de SQL server management studiodan bakiyorum diyorsun. Ben bir SQL server tablosunun buffersiz VFP''de nasil kullanabildigini anlayamadim. Buffer olmamasinin bildigim tek yolu dogrudan SQLExec ya da AdoDb.Command ile. Ucuncu bir yol dusunemiyorum. Eger gercekten buffer kullanmiyorsan (kullansan da farketmez) aerror() ile sonucu kontrol ettin mi? Belki de SQL serverda o kaydi silmeni engelleyen bir constraint filan vardir.
TableUpdate(2,.t.,'cek_senet_har') diyecegim ama dedigim gibi anlamadim nasil buffer olmadan yapabildigini.

Yaptigin is bu degil mi?

Visual Fox Pro
Update era!cek_senet ;

  SET cek_senet.cs_durumu = m.csh_max_durum1 ;
  WHERE cs_sira In ;
  (Select csh_cek_senet_sira ;
  From era!cek_senet_har ;
  WHERE (csh_bordro_sira = m.lp_bordro_id1) ;
  AND !csh_devir ;
  AND csh_sira >= m.csh_sira1)
 
Delete  ;
  FROM era!cek_senet_har ;
  WHERE (csh_bordro_sira = m.lp_bordro_id1) ;
  AND !csh_devir ;
  AND csh_sira >= m.csh_sira1
 
Tableupdate(2,.T.,'cek_senet_har')
Tableupdate(2,.T.,'cek_senet')

9 Son düzenleyen, tgri (28.02.2008 12:13:45)

Re: form kapatilinca update oluyor

cetinbasoz yazdı:

Hem buffer yok diyorsun, hem de SQL server management studiodan bakiyorum diyorsun. Ben bir SQL server tablosunun buffersiz VFP''de nasil kullanabildigini anlayamadim. Buffer olmamasinin bildigim tek yolu dogrudan SQLExec ya da AdoDb.Command ile. Ucuncu bir yol dusunemiyorum. Eger gercekten buffer kullanmiyorsan (kullansan da farketmez) aerror() ile sonucu kontrol ettin mi? Belki de SQL serverda o kaydi silmeni engelleyen bir constraint filan vardir.
TableUpdate(2,.t.,'cek_senet_har') diyecegim ama dedigim gibi anlamadim nasil buffer olmadan yapabildigini.


Visual Fox Pro
DELETE FROM era!cek_senet_har WHERE cek_senet_har.csh_sira = 3325

bu sorgu ile form bufferda olmadan sql den kaydi silebiliyoruz. sorguyu calistiriyorum. ve managementten bakiyorum gitmis.
yoksa bizmi basindan beri biyerlerde hata yapiyoruz bilemiyorum. sad amma formumun bufferda olmadigindan eminim.
baglanti odbc ile

10

Re: form kapatilinca update oluyor

cetinbasoz yazdı:
Visual Fox Pro
Tableupdate(2,.T.,'cek_senet_har')

Tableupdate(2,.T.,'cek_senet')


cok tesekkur ederim hocam bu sorunumu gercekten cozdu.
"era!ceksenet_har" gibi kullanilinca tableupdate komutunu kullanamiyoruz saniyordum. ama bunuda ogrendim sayenizde tesekkurler.

11

Re: form kapatilinca update oluyor

Nasil eminsin, bana da anlat da ogreneyim:)
Oraya:
MessageBox( cursorgetprop('Buffering', 'cek_senet_har') )
yazsan 1'mi geliyor???

12

Re: form kapatilinca update oluyor

tgri yazdı:
cetinbasoz yazdı:
Visual Fox Pro
Tableupdate(2,.T.,'cek_senet_har')

Tableupdate(2,.T.,'cek_senet')


cok tesekkur ederim hocam bu sorunumu gercekten cozdu.
"era!ceksenet_har" gibi kullanilinca tableupdate komutunu kullanamiyoruz saniyordum. ama bunuda ogrendim sayenizde tesekkurler.


O buffer oldugunun garantisi yoksa hata mesaji gelirdi:)

Bu remote View degil mi? View'lar buffersiz olamaz. Varsayilan buffer degerleri de 3-Optimistic Row Buffering.
(kullanilmasini tavsiye etmedigim bir deger - benim tercihim 5 ile kontrolu elde tutmak)

13 Son düzenleyen, tgri (28.02.2008 13:11:51)

Re: form kapatilinca update oluyor

cetinbasoz yazdı:

MessageBox( cursorgetprop('Buffering', 'cek_senet_har') )


bende 3 geldi. galiba dediginiz gibi bufferda.
peki birsey sormak istiyorum. bu buffer ayarini ben nasil 5 yapabilirim. data environment de olsa propertiesten yapiyorumda. bu sorguda era!cek_senet_har benim formumum data environmentide degil

14

Re: form kapatilinca update oluyor

CursorSetProp("Buffering", 5, 'cek_senet_har')

15 Son düzenleyen, tgri (28.02.2008 13:39:52)

Re: form kapatilinca update oluyor

CursorSetProp("Buffering", 5, 'cek_senet_har')

"No table is open in the current work area"

hatasini veriyor. benim bunu formumda biyerde tanitmam veya acmam mi gerekiyor.
bunu aktif etmek icin ne yapmaliyim ?

16

Re: form kapatilinca update oluyor

tgri yazdı:
cetinbasoz yazdı:

MessageBox( cursorgetprop('Buffering', 'cek_senet_har') )


bende 3 geldi. galiba dediginiz gibi bufferda.
peki birsey sormak istiyorum. bu buffer ayarini ben nasil 5 yapabilirim. data environment de olsa propertiesten yapiyorumda. bu sorguda era!cek_senet_har benim formumum data environmentide degil


dataenvironment de değil ise bir yerde açıyorsundur onu
use cek_senet_har gibi bir kodla

hemen ondan sonra yaz benim gönderdiğim kodu.

17

Re: form kapatilinca update oluyor

Hicbir yere yazma:) Eger kodlarin 5'e gore degilse onu da ayarlaman gerekecek. 3 ile calisiyorsa istedigin gibi, birak kalsin. 5 yaparsan kontrol sende ama simdi otomatik update olan yerler olmayacak.