Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
EDT:Tutorial: RUI With DataBase Lesson 6 Code, 0.8.0
Access a database with EGL Rich UI > Resources
Finished code for SQLService.egl after lesson 6
The following code is the text of the SQLService.egl file
after Lesson 6.
package services;
import records.paymentRec;
service SQLService
ds SQLDataSource?{@Resource{uri="binding:Derby"}}; // EDT 0.8.0
function addPayment(newPayment paymentRec in)
logEntry ( "addPayment" ) ;
try
add newPayment to ds
with #sql{
insert into PAYMENT
(CATEGORY, DESCRIPTION, AMOUNT, FIXED_PAYMENT, DUE_DATE,
PAYEE_NAME, PAYEE_ADDRESS1, PAYEE_ADDRESS2)
values
(?, ?, ?, ?, ?, ?, ?, ?)
};
onException(ex sqlException)
logException(ex);
end
end
function getAllPayments() returns(paymentRec[])
payments paymentRec[];
logEntry("getAllPayments");
try
get payments from ds;
onException(ex sqlException)
logException(ex);
end
return(payments);
end
function editPayment(chgPayment paymentRec in)
logEntry("editPayment");
try
replace chgPayment to ds;
onException(ex SQLException)
logException(ex);
end
end
function deletePayment(delPayment paymentRec in)
logEntry("deletePayment");
try
delete delPayment from ds;
onException(ex SQLException)
if(ex.SQLState != "02000") // sql state is five digits
logException sqlException;
end
end
end
function createDefaultTable() returns(paymentRec[])
payments paymentRec[];
logEntry("createDefaultTable");
try
try
execute from ds
with #sql{
delete from PAYMENT
};
onException(ex SQLException)
if(ex.SQLState != "02000") // sqlState is five digits
throw ex;
end
end
ispDate date = dateTimeLib.dateFromGregorian(20140405);
addPayment(new paymentRec{category = 1, description = "Apartment"
, amount = 880, fixedPayment = yes, dueDate = new date
, payeeName = "A Jones", payeeAddress1 = "100 Jones Dr"
, payeeAddress2 = "Jonesboro, NC"
});
addPayment(new paymentRec{category = 2, description = "Groceries"
, amount = 450, fixedPayment = no, dueDate = new date
, payeeName = "B Jones", payeeAddress1 = "200 Jones Dr"
, payeeAddress2 = "Jonesboro, NC"
});
addPayment(new paymentRec{category = 5, description = "ISP"
, amount = 19.99, fixedPayment = no, dueDate = ispDate
, payeeName = "C Jones", payeeAddress1 = "300 Jones Dr"
, payeeAddress2 = "Jonesboro, NC"
});
payments = getAllPayments();
onException(ex anyException)
logException(ex);
end
return(payments);
end
logActive boolean = true;
activeService string;
private function logEntry(serviceFunction string in)
activeService = serviceFunction;
log("Entry: SQLService, " + serviceFunction);
end
private function logException(ex sqlException?)
accumulatedMessage string = "Exception: SQLService, " + activeService;
while(ex != null)
accumulatedMessage = accumulatedMessage + ", SQLSTATE = " +
ex.SQLState + ", message = " + ex.message;
ex = ex.nextException;
end
log(accumulatedMessage);
throw new anyException{message = accumulatedMessage};
end
private function log(text string in)
if(logActive)
sysLib.writeStdOut(text);
end
end
end
Related tasks