I am using CForms/flow-script. When the form is submited, I usually call
a methods in my database utility classes from flow-script to perform a
DB queries. For that I need to obtain a database connection from the
pool. I tried the method: Database.getConnection("connection-id"), but
it returns ScriptableConnection class. Is it possible to get reference
to java.sql.Connection in flow-script? What is the preferred way to
handle database calls in flow-script?


Martin,

I don't see why it's not possible to get a Connection the normal way in Flowscript.

There is no "preferred way" to do it; you're free to do it however you want. You could probably hide it behind a simple facade written in Java. You can instantiate normal Java classes in Flowscript. See: http://cocoon.apache.org/2.1/userdocs/flow/java.html

Tonny,

I'll provide an example code snippets:

In file DBUtil.java:

public static void register(Connection con, String username, String password)
throws SQLException {

   // JDBC calls

}

In file registration.js:

function registration() {

   var form = new Form("forms/registration.xml");

   form.showForm("registration-display-pipeline");

   var model = form.getModel();

var conn = null;
try {
conn = Database.getConnection("ser-connection");
DBUtil.register(conn, model.username, model.password);
} catch(ex) {
cocoon.log.error(ex)
} finally {
if(conn != null)conn.close()
}
cocoon.sendPage("success.html");
}


When running the form, the following exception occurred:

org.mozilla.javascript.EvaluatorException: Cannot convert [EMAIL PROTECTED] to 
java.sql.Connection

So the register() method requires java.sql.Connection as a parameter but the
Database.getConnection() in flow-script returns ScriptableConnection object.


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to