Data Abstraction

Hi,

I am new to Servoy and installed the Community Edition.
I have configured the JDBC OpenEdge(/Progress) driver to an OpenEdge database and this works.

Besides default JDBC access, how is data abstraction implemented?
Is this something that is part of the Servoy framework?

Like for example the Core J2EE Patterns - Data Access Object:
http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html

Thanks,

Simon.

this is completely internal to servoy, We have our own structure of “caching” the table rows. (Records)
What are you trying to do?

So if I understand correctly you specify a DAO implementation for a certain database.
And after that the Servoy structure that is already in place is used to do CRUD actions using the DAO.
(Sorry, don’t know the Servoy terms; hope you know what I mean)

Are there any samples of business logic available so I can see what this looks like?

Thanks!

no we have a generic dao that works on all databases, they are not specific to any database implementation or table structure.

In servoy you just use Foundsets and Records to access these data, that are the DAO’s of servoy.

So using the FoundSet and Record you can access the data like for example:

/* pseudo code */
myfs = getFoundSet("customer")
myrecord = myfs.getRecord("where cust_num = 1234")
myrecord.cust_name = "myname"
myfs.Save()

Are there any example of complex business logic available?

Does Servoy offer a methodology to group Business Entities and do for example pre|begin|end|post transaction processing on records?

please go follow the examples or docs to learn servoy

your example is more like:

myfs = databaseManager.getFoundSet("customer")// or use the foundset of the form directly
myfs.find()
myfs.cust_num = 123
myfs.search()
myrecord = myfs.getRecord(1)
myrecord.cust_name = "myname"
databaseManager.saveData()

see also the databaseManager for starting, committing or rollbacking transactions.

jcompagner:
please go follow the examples or docs to learn servoy

Yes, I will do that. Thanks for your help!

jcompagner:
no we have a generic dao that works on all databases, they are not specific to any database implementation or table structure.

One more question about this.
When I create a simple form on a table in the Progress database with a couple of fields on it I get the error below.

Could not load record
 > com.servoy.j2db.persistence.RepositoryException: org.apache.commons.dbcp.DbcpException: java.sql.SQLException: [DataDirect][OpenEdge JDBC Driver][OpenEdge] Syntax error in SQL statement at or about "pro_type, art_stat, eenh_admin, quoterin" (10713) java.sql.SQLException: [DataDirect][OpenEdge JDBC Driver][OpenEdge] Syntax error in SQL statement at or about "pro_type, art_stat, eenh_admin, quoterin" (10713)

Doesn’t this mean that the Servoy DAO cannot handle the underlaying RDBMS?