Maybe you misunderstood what I said, I meant I exacute SQL command on the 
Virtual database console ,not calling stored procedures by JDBC in the 
programme.
   Thanks.





在2009-11-19 01:45:37,"Emmanuel Cecchet" <m...@frogthinker.org> 写道:
Hi,

The sequoia mailing list has moved to sequoiadb-disc...@lists.sourceforge.net

Hi everyone, presently I encounter a problem about how to call procedures 
through sequoia virtual database
console. Suppose a backend has a procedure in the form  'proc(IN id integer not 
null,IN name char(32) not null,
IN score float with null)'. And I tried executing the procedure like this:
 {call proc(101,'student',80.0)}
But such statement will raise exceptions from backend database which says 
errors like "invalid procedure call
syntax". So I debugged the source code only to find the exceptions occurs from 
AbstractLoadBalancer.java, in function 
AbstractLoadBalancer::setupCallableStatement(), statement "cs = 
c.prepareCall(backend.transformQuery(proc)); ".
     If I executed like this:
{call proc(?,?,?)}
The above exception will disappear but no parameters in the procedure was 
assigned any value. 
So is this a bug in source code ? Or if not, how can I call the procedure 
correctly?
 
If you use a CallableStatement, you are suppose to call a stored procedure this 
way:
CallableStatement cs = connection.prepareCall({call proc(?,?,?)});
cs.setInt(1, 101);
cs.setString(2, "student");
cs.setFloat(3, 80.0);
cs.executeQuery() or cs.executeUpdate() depending on the result returned.

Check for CallableStatement examples in the JDBC documentation.

Thanks for your interest in Sequoia.
Emmanuel

-- 
Emmanuel Cecchet
FTO @ Frog Thinker 
Open Source Development & Consulting
--
Web: http://www.frogthinker.org
email: m...@frogthinker.org
Skype: emmanuel_cecchet
_______________________________________________
Sequoia mailing list
Sequoia@lists.forge.continuent.org
http://forge.continuent.org/mailman/listinfo/sequoia

Reply via email to