演習 6 で完成した SQLService.egl のコード

以下のコードは、演習 6 終了時の SQLService.egl ファイルのテキストです。
package services;

import records.paymentRec;

service SQLService
   function addPayment(newPayment paymentRec inOut)
      add newPayment with #sql{
         insert into PAYMENT
            (CATEGORY, DESCRIPTION, AMOUNT, FIXED_PAYMENT, 
             DUE_DATE, PAYEE_NAME, PAYEE_ADDRESS1, PAYEE_ADDRESS2)
         values
            (:newPayment.category, :newPayment.description, :newPayment.amount,
             :newPayment.fixedPayment, :newPayment.dueDate, :newPayment.payeeName,
             :newPayment.payeeAddress1, :newPayment.payeeAddress2)	
      };
   end

   function getAllPayments() returns(paymentRec[])
      paymentArray paymentRec[];
      get paymentArray;
      return(paymentArray);
   end

   function editPayment(chgPayment paymentRec inOut)
      replace chgPayment nocursor;
   end

   function deletePayment(delPayment paymentRec inOut)

      try
         delete delPayment nocursor;

         onException(exception SQLException)
            if(SQLLib.sqlData.sqlState != "02000") // sqlState is of type CHAR(5)
               throw exception;
            end
      end
   end

   function createDefaultTable() returns(paymentRec[])

      try
         execute #sql{
            delete from PAYMENT
         };

      onException(exception SQLException)
         if (SQLLib.sqlData.sqlState != "02000") // sqlState is of type CHAR(5)
            throw exception;
         end
      end;

      ispDate date = dateTimeLib.dateValueFromGregorian(20110405);
      addPayment(new paymentRec
         {category = 1, description = "Apartment", amount = 880, fixedPayment = yes});
      addPayment (new paymentRec
         {category = 2, description = "Groceries", amount = 450, fixedPayment = no});
      addPayment(new paymentRec
         {category = 5, description = "ISP", amount = 19.99, 
          fixedPayment = yes, dueDate = ispDate});
      return(getAllPayments());
   end
end

フィードバック