El código siguiente es el texto del archivo SQLService.egl después de la lección 6.
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 es del tipo 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 es del tipo 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