SlideShare une entreprise Scribd logo
1  sur  30
Bölüm 7 : Transaction Yönetimi Bu dersi tamamladığımız zaman şunları yapabileceksiniz; ,[object Object]
Veritabanı bütünlüğünü tanımlamak
Bir transaction’ın nerede başlayıp nerede bittiğini bilmek
Transaction’ların ne zaman etkin olduklarını bilmek
Varsayılan transaction kapsamını değiştirmek,[object Object]
Bir Transaction İçinde Veritabanını Güncellemek REPEAT: . . . 	CREATE Customer. . . . END. Transaction
SİSTEM HATASI! Veri Bütünlüğünü Korumak Tamamlanmış Transaction (İkinci Customer kaydını ekle) REPEAT: . . . 	CREATE Customer. . . . END. Veritabanı Tamamlanmamış Transaction (3. Customer kaydını ekle) REPEAT: . . . 	CREATE Customer. . . . END.
Neler Saklandı? SİSTEM HATASI!
Transaction Kapsamını Tanımlamak . . . DEFINE VARIABLE iCount AS INTEGER NO-UNDO. REPEAT WHILE iCount < 3:   CREATE Customer.   DISPLAY CustNum.   UPDATE Name EmailAddress Contact WITH 1 COLUMN. iCount = iCount + 1. END. . . . Transaction bloğu Doğrudan veritabanına yazılır
Transaction Kapsamı Nedir? . . .  . . . FOR EACH Invoice WHERE Invoice.CustNum = iCustNum:   MESSAGE "Are you sure you want to delete invoice#" invoice.invoicenum      "of customer #" invoice.custnum VIEW-AS ALERT-BOX BUTTONS YES-NO UPDATE lYesno.   IF lYesno THEN     DELETE Invoice.     ELSE DO: /* DO statement #1 */       MESSAGE "Cancelled deletion of invoice #" invoice.invoicenum .       RETURN NO-APPLY.     END. /* End DO statement #1 */ END. /* End FOR EACH Invoice3 */ FOR EACH Order WHERE Order.CustNum = iCustNum: . . . . . . ???
Bir LISTING Dosyasının Derlenmesi (COMPILE) COMPILE eTrans1.p LISTING eTrans1.lst. forOrder: FOR EACH Order WHERE OrderNum < 5:   FOR EACH Customer OF Order:     DISPLAY Customer.NAME FORMAT "x(15)" Ordernum FORMAT ">>9".     1     /***********************/     2     /* eTrans1.p           */     3     /***********************/     4     forOrder:     5   1 FOR EACH Order WHERE OrderNum < 5:     6   2   FOR EACH Customer OF Order:     7   2     DISPLAY Customer.NAME FORMAT "x(15)"     8   2             Ordernum FORMAT ">>9".
Transaction Kapsamının Belirlenmesi File Name Line  Blk.TypeTran  Blk.Label ---------  ---- --------  ---- --------- eTrans1.p  0   Procedure  No                                     eTrans1.p  9   For        No  forOrder   Buffers: Mysports.Order eTrans1.p  10  For        Yes                                      Buffers: Mysports.Customer   Frames:  Unnamed
TRANSACTION Fonksiyonunun Kullanımı . . .  . . . FOR EACH Invoice WHERE Invoice.CustNum = iCustNum:   MESSAGE "Are you sure you want to delete invoice#" invoice.invoicenum       "of customer #" invoice.custnum VIEW-AS ALERT-BOX BUTTONS YES-NO UPDATE lYesno.   IF lYesno THEN FOR EACH Order WHERE Order.CustNum = iCustNum: . . . . . . IF TRANSACTION THEN response-if-true ELSE response-of-false Bir transaction aktif olduğunda çalışması gereken kod Transaction’ın aktif OLMADIĞI durumda çalışması gereken kod
Transaction’ın Aktif Olup Olmadığını Sorgulamak REPEAT:    MESSAGE "A transaction" (IF TRANSACTION THEN "IS" ELSE     "IS NOT")"active in the outer REPEAT block," SKIP     " before creating the Order" VIEW-AS ALERT-BOX.   CREATE Order.   DISPLAY OrderNumOrderDate.   UPDATE CustNum.
Uygulama 1 : Transaction Kapsamının Tespit Edilmesi
Transaction Kapsamının Özel Olarak Belirlenmesi Belirtilmiş transaction kapsamı . . . DO TRANSACTION:   . . .   . . .   FOR EACH . . .      . . .      . . .   END.   . . .   . . . END. Varsayılan Transaction Kapsamı
Game Set Match		DOS LagtKortLigger		DOS Soccer Universe		DOS Play Sports		DOS Varsayılan Transaction Kapsamının Değiştirilmesi <start outer transaction-scoping block>   . . .   FOR EACH Customer      WHERE SalesRep = "RDR" TRANSACTION:       ASSIGN SalesRep = “DOS".       DISPLAY NAME SalesRep.   END.   . . . <end outer transaction-scoping block> Trans 1 Trans 2 Trans 3 Trans 4
SİSTEM HATASI! Neler Kaydedildi? Veritabanı
Uygulama 2 : Varsayılan Kapsamla Kaydedilen Veri
Bir Transaction’ın Kapsamının Genişletilmesi OrjinalTransaction Kapsamı DO TRANSACTION:     REPEAT:         . . .         . . .         . . . REPEAT: . . . . . . END./* Inner REPEAT block */     END.     /* Outer REPEAT block */ END.               /* Transaction */ Yeni transaction kapsamı
Uygulama 3 : Artırılmış Kapsamla Kaydedilen Veri
Bir Transaction’ın Kapsamının Küçültülmesi Orjinaltransaction kapsamı REPEAT: DO TRANSACTION: <Do task 1> . . . . . . END. /* end first transaction */ REPEAT TRANSACTION:  <Do task 2> . . . . . . END. /* end second transaction */ END./* End REPEAT block */ Daha küçük iki transaction kapsamı
Uygulama 4 : Küçültülmüş Kapsamla Kaydedilen Veri
Bir Alt-transaction ile Çalışmak Transaction Alt-transaction REPEAT:  /* Start of the transaction */    PROMPT-FOR Order.OrderNum.    . . .    SET Order.PO. REPEAT: . . . SET Qty. . . . END. /* Inner REPEAT block - subtransaction*/ END. /* Outer REPEAT block – transaction */
Alt-transaction’ları Tanımlamak İlk düzey blok Line Blk ---- ---  2  1 REPEAT:  /* Start of the transaction */  3 1    PROMPT-FOR Order.OrderNum.  4 1   FIND Order WHERE OrderNum = INPUT Order.OrderNum.  5 1      DISPLAY OrderNumCustNum PO SalesRep.  6 1     SET Order.PO.  7  2      REPEAT:      8  2       FIND NEXT OrderLine OF order.  9 2       DISPLAY LineNumItemNum Qty Price . . .  10  2      SET Qty. 11  2        DISPLAY Qty * Price LABEL "Total price". 1      END. /* FIND OrderLine block */   END. /* End of the transaction  */ İkinci düzey blok
Değişkenleri Saklamak lbi4321 iVctr = 1 dNewPrice = 10.25 iLineNum = 16
Bir Trsansaction içinden Bir Alt-prosedur’ü Çağırmak eRunTrans.p REPEAT:   PROMPT-FOR Customer.CustNum.   FIND Customer USING CustNum. ...   UPDATE CreditLimit..   ...   RUN eUpdOrder.p (BUFFER Customer).   .   .   . END. Altprosedürü çalıştır eUpdOrder.p FOR EACH Order OF Customer:    DISPLAY Order...    UPDATE Carrier.    ... END. İşlemi çağıran prosedüre bırak Transaction Kapsamı
Uygulama 5 : Bir Transaction İçinden Bir Alt-procedur’ü Çağırmak
Neler Kaydedildi? Veritabanı SİSTEM HATASI!

Contenu connexe

En vedette

Usa 5 Getting Started
Usa 5 Getting StartedUsa 5 Getting Started
Usa 5 Getting StartedSUDIPTO BOSE
 
progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 11
progressokulu.com Advanced Business Language Slide 11progressokulu.com Advanced Business Language Slide 11
progressokulu.com Advanced Business Language Slide 11kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 4
progressokulu.com Advanced Business Language Slide 4progressokulu.com Advanced Business Language Slide 4
progressokulu.com Advanced Business Language Slide 4kaan verdioglu
 
progressokulu.com OpenEdge Replication Slide 2
progressokulu.com OpenEdge Replication Slide 2progressokulu.com OpenEdge Replication Slide 2
progressokulu.com OpenEdge Replication Slide 2kaan verdioglu
 
progressokulu.com Database Administration Slide 3
progressokulu.com Database Administration Slide 3progressokulu.com Database Administration Slide 3
progressokulu.com Database Administration Slide 3kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 5
progressokulu.com Advanced Business Language Slide 5progressokulu.com Advanced Business Language Slide 5
progressokulu.com Advanced Business Language Slide 5kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 3
progressokulu.com Advanced Business Language Slide 3progressokulu.com Advanced Business Language Slide 3
progressokulu.com Advanced Business Language Slide 3kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 6
progressokulu.com Advanced Business Language Slide 6progressokulu.com Advanced Business Language Slide 6
progressokulu.com Advanced Business Language Slide 6kaan verdioglu
 
progressokulu.com Database Administration Slide 6
progressokulu.com Database Administration Slide 6progressokulu.com Database Administration Slide 6
progressokulu.com Database Administration Slide 6kaan verdioglu
 
progressokulu.com Database Administration Slide 4
progressokulu.com Database Administration Slide 4progressokulu.com Database Administration Slide 4
progressokulu.com Database Administration Slide 4kaan verdioglu
 
progressokulu.com Database Administration Slide 5
progressokulu.com Database Administration Slide 5progressokulu.com Database Administration Slide 5
progressokulu.com Database Administration Slide 5kaan verdioglu
 
progressokulu.com Advanced Business Language Slide 9
progressokulu.com Advanced Business Language Slide 9progressokulu.com Advanced Business Language Slide 9
progressokulu.com Advanced Business Language Slide 9kaan verdioglu
 

En vedette (14)

Sucesiones
SucesionesSucesiones
Sucesiones
 
Usa 5 Getting Started
Usa 5 Getting StartedUsa 5 Getting Started
Usa 5 Getting Started
 
progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1progressokulu.com Advanced Business Language Slide 1
progressokulu.com Advanced Business Language Slide 1
 
progressokulu.com Advanced Business Language Slide 11
progressokulu.com Advanced Business Language Slide 11progressokulu.com Advanced Business Language Slide 11
progressokulu.com Advanced Business Language Slide 11
 
progressokulu.com Advanced Business Language Slide 4
progressokulu.com Advanced Business Language Slide 4progressokulu.com Advanced Business Language Slide 4
progressokulu.com Advanced Business Language Slide 4
 
progressokulu.com OpenEdge Replication Slide 2
progressokulu.com OpenEdge Replication Slide 2progressokulu.com OpenEdge Replication Slide 2
progressokulu.com OpenEdge Replication Slide 2
 
progressokulu.com Database Administration Slide 3
progressokulu.com Database Administration Slide 3progressokulu.com Database Administration Slide 3
progressokulu.com Database Administration Slide 3
 
progressokulu.com Advanced Business Language Slide 5
progressokulu.com Advanced Business Language Slide 5progressokulu.com Advanced Business Language Slide 5
progressokulu.com Advanced Business Language Slide 5
 
progressokulu.com Advanced Business Language Slide 3
progressokulu.com Advanced Business Language Slide 3progressokulu.com Advanced Business Language Slide 3
progressokulu.com Advanced Business Language Slide 3
 
progressokulu.com Advanced Business Language Slide 6
progressokulu.com Advanced Business Language Slide 6progressokulu.com Advanced Business Language Slide 6
progressokulu.com Advanced Business Language Slide 6
 
progressokulu.com Database Administration Slide 6
progressokulu.com Database Administration Slide 6progressokulu.com Database Administration Slide 6
progressokulu.com Database Administration Slide 6
 
progressokulu.com Database Administration Slide 4
progressokulu.com Database Administration Slide 4progressokulu.com Database Administration Slide 4
progressokulu.com Database Administration Slide 4
 
progressokulu.com Database Administration Slide 5
progressokulu.com Database Administration Slide 5progressokulu.com Database Administration Slide 5
progressokulu.com Database Administration Slide 5
 
progressokulu.com Advanced Business Language Slide 9
progressokulu.com Advanced Business Language Slide 9progressokulu.com Advanced Business Language Slide 9
progressokulu.com Advanced Business Language Slide 9
 

progressokulu.com Advanced Business Language Slide 7

  • 1.
  • 2.
  • 4. Bir transaction’ın nerede başlayıp nerede bittiğini bilmek
  • 5. Transaction’ların ne zaman etkin olduklarını bilmek
  • 6.
  • 7. Bir Transaction İçinde Veritabanını Güncellemek REPEAT: . . . CREATE Customer. . . . END. Transaction
  • 8. SİSTEM HATASI! Veri Bütünlüğünü Korumak Tamamlanmış Transaction (İkinci Customer kaydını ekle) REPEAT: . . . CREATE Customer. . . . END. Veritabanı Tamamlanmamış Transaction (3. Customer kaydını ekle) REPEAT: . . . CREATE Customer. . . . END.
  • 10. Transaction Kapsamını Tanımlamak . . . DEFINE VARIABLE iCount AS INTEGER NO-UNDO. REPEAT WHILE iCount < 3: CREATE Customer. DISPLAY CustNum. UPDATE Name EmailAddress Contact WITH 1 COLUMN. iCount = iCount + 1. END. . . . Transaction bloğu Doğrudan veritabanına yazılır
  • 11. Transaction Kapsamı Nedir? . . . . . . FOR EACH Invoice WHERE Invoice.CustNum = iCustNum: MESSAGE "Are you sure you want to delete invoice#" invoice.invoicenum "of customer #" invoice.custnum VIEW-AS ALERT-BOX BUTTONS YES-NO UPDATE lYesno. IF lYesno THEN DELETE Invoice. ELSE DO: /* DO statement #1 */ MESSAGE "Cancelled deletion of invoice #" invoice.invoicenum . RETURN NO-APPLY. END. /* End DO statement #1 */ END. /* End FOR EACH Invoice3 */ FOR EACH Order WHERE Order.CustNum = iCustNum: . . . . . . ???
  • 12. Bir LISTING Dosyasının Derlenmesi (COMPILE) COMPILE eTrans1.p LISTING eTrans1.lst. forOrder: FOR EACH Order WHERE OrderNum < 5: FOR EACH Customer OF Order: DISPLAY Customer.NAME FORMAT "x(15)" Ordernum FORMAT ">>9". 1 /***********************/ 2 /* eTrans1.p */ 3 /***********************/ 4 forOrder: 5 1 FOR EACH Order WHERE OrderNum < 5: 6 2 FOR EACH Customer OF Order: 7 2 DISPLAY Customer.NAME FORMAT "x(15)" 8 2 Ordernum FORMAT ">>9".
  • 13. Transaction Kapsamının Belirlenmesi File Name Line Blk.TypeTran Blk.Label --------- ---- -------- ---- --------- eTrans1.p 0 Procedure No eTrans1.p 9 For No forOrder Buffers: Mysports.Order eTrans1.p 10 For Yes Buffers: Mysports.Customer Frames: Unnamed
  • 14. TRANSACTION Fonksiyonunun Kullanımı . . . . . . FOR EACH Invoice WHERE Invoice.CustNum = iCustNum: MESSAGE "Are you sure you want to delete invoice#" invoice.invoicenum "of customer #" invoice.custnum VIEW-AS ALERT-BOX BUTTONS YES-NO UPDATE lYesno. IF lYesno THEN FOR EACH Order WHERE Order.CustNum = iCustNum: . . . . . . IF TRANSACTION THEN response-if-true ELSE response-of-false Bir transaction aktif olduğunda çalışması gereken kod Transaction’ın aktif OLMADIĞI durumda çalışması gereken kod
  • 15. Transaction’ın Aktif Olup Olmadığını Sorgulamak REPEAT: MESSAGE "A transaction" (IF TRANSACTION THEN "IS" ELSE "IS NOT")"active in the outer REPEAT block," SKIP " before creating the Order" VIEW-AS ALERT-BOX. CREATE Order. DISPLAY OrderNumOrderDate. UPDATE CustNum.
  • 16. Uygulama 1 : Transaction Kapsamının Tespit Edilmesi
  • 17. Transaction Kapsamının Özel Olarak Belirlenmesi Belirtilmiş transaction kapsamı . . . DO TRANSACTION: . . . . . . FOR EACH . . . . . . . . . END. . . . . . . END. Varsayılan Transaction Kapsamı
  • 18. Game Set Match DOS LagtKortLigger DOS Soccer Universe DOS Play Sports DOS Varsayılan Transaction Kapsamının Değiştirilmesi <start outer transaction-scoping block> . . . FOR EACH Customer WHERE SalesRep = "RDR" TRANSACTION: ASSIGN SalesRep = “DOS". DISPLAY NAME SalesRep. END. . . . <end outer transaction-scoping block> Trans 1 Trans 2 Trans 3 Trans 4
  • 19. SİSTEM HATASI! Neler Kaydedildi? Veritabanı
  • 20. Uygulama 2 : Varsayılan Kapsamla Kaydedilen Veri
  • 21. Bir Transaction’ın Kapsamının Genişletilmesi OrjinalTransaction Kapsamı DO TRANSACTION: REPEAT: . . . . . . . . . REPEAT: . . . . . . END./* Inner REPEAT block */ END. /* Outer REPEAT block */ END. /* Transaction */ Yeni transaction kapsamı
  • 22. Uygulama 3 : Artırılmış Kapsamla Kaydedilen Veri
  • 23. Bir Transaction’ın Kapsamının Küçültülmesi Orjinaltransaction kapsamı REPEAT: DO TRANSACTION: <Do task 1> . . . . . . END. /* end first transaction */ REPEAT TRANSACTION: <Do task 2> . . . . . . END. /* end second transaction */ END./* End REPEAT block */ Daha küçük iki transaction kapsamı
  • 24. Uygulama 4 : Küçültülmüş Kapsamla Kaydedilen Veri
  • 25. Bir Alt-transaction ile Çalışmak Transaction Alt-transaction REPEAT: /* Start of the transaction */ PROMPT-FOR Order.OrderNum. . . . SET Order.PO. REPEAT: . . . SET Qty. . . . END. /* Inner REPEAT block - subtransaction*/ END. /* Outer REPEAT block – transaction */
  • 26. Alt-transaction’ları Tanımlamak İlk düzey blok Line Blk ---- --- 2 1 REPEAT: /* Start of the transaction */ 3 1 PROMPT-FOR Order.OrderNum. 4 1 FIND Order WHERE OrderNum = INPUT Order.OrderNum. 5 1 DISPLAY OrderNumCustNum PO SalesRep. 6 1 SET Order.PO. 7 2 REPEAT: 8 2 FIND NEXT OrderLine OF order. 9 2 DISPLAY LineNumItemNum Qty Price . . . 10 2 SET Qty. 11 2 DISPLAY Qty * Price LABEL "Total price". 1 END. /* FIND OrderLine block */ END. /* End of the transaction */ İkinci düzey blok
  • 27. Değişkenleri Saklamak lbi4321 iVctr = 1 dNewPrice = 10.25 iLineNum = 16
  • 28. Bir Trsansaction içinden Bir Alt-prosedur’ü Çağırmak eRunTrans.p REPEAT: PROMPT-FOR Customer.CustNum. FIND Customer USING CustNum. ... UPDATE CreditLimit.. ... RUN eUpdOrder.p (BUFFER Customer). . . . END. Altprosedürü çalıştır eUpdOrder.p FOR EACH Order OF Customer: DISPLAY Order... UPDATE Carrier. ... END. İşlemi çağıran prosedüre bırak Transaction Kapsamı
  • 29. Uygulama 5 : Bir Transaction İçinden Bir Alt-procedur’ü Çağırmak
  • 30. Neler Kaydedildi? Veritabanı SİSTEM HATASI!
  • 31. Uygulama 6 : Varsayılan Transaction Kapsamını Değiştirmek