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