You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Nicola Ken Barozzi <ni...@supereva.it> on 2000/11/07 18:19:06 UTC

Re: draft final version of the esql namespace

From: "Donald Ball" <ba...@webslingerZ.com>

> after much discussion and cogitation, i submit the following pseudoschema
> as the proposed final skeleton of the esql namespace:
>
> <esql:connection>
>  <esql:driver>org.postgresql.Driver</esql:driver>
>  <esql:dburl>jdbc:postgresql://localhost/test</esql:dburl>
>  <esql:username>test</esql:username>
>  <esql:password>test</esql:password>
>  <esql:execute-query>
>   <esql:query>select id,name from department_table</esql:query>
>   <esql:results>
>    <header>header info</header>
>    <esql:row-results>
>     <id><esql:get-int column="id"/></id>
>     <name><esql:get-string column="name"/></name>
>    </esql:row-results>
>    <footer>footer info</footer>
>   </esql:results>
>   <esql:update-results>
>    there were <esql:get-updated-rows/> rows updated
>   </esql:update-results>
>   <esql:error-results>
>    the query failed for some reason: <esql:get-message/>
>   </esql:error-results>
>  </esql:execute-query>
> </esql:connection>
>
> conformant implementations shall work as follows:
>
> 1. connections are opened at the start connection element tag and closed
> at the end connection element tag.
>
> 2. multiple queries may be executed in the same connection
>
> 3. if a query returns a resultset, the children of the results element, if
> any, are instantiated and the children of the results element's
> row-results child are instantiated for each row in the resultset.
>
> 4. if a query returns a number of rows, the children of the update-results
> element are instantiated.
>
> 5. if a query results in a sql error and an error-results element exists,
> its children are instantiated and the processor will attempt to
> continue.
>
> 6. the execute-query and connection elements may appear underneath the
> results, row-results, update-results, or connection elements.
>
> comments and suggestions are welcome. if everything thinks this is okay,
> i'll flesh out the namespace with all of the extras (max-rows, get-xml,
> etc.) begin writing a formal schema for this and bring the c1 and c2
> implementations into line with the specification.

I think it's really cool :-)
I thought that maybe different "taglibs" per SQL command could have
been better, but the SQL is a string you cannot control, and people
might end putting INSERT in a SELECT execution tag! :-P
Well, this is also elegant I think.
The tags are in this order:

1-definitions
2-input (query)
3-output(results)
4-info on execution
5-errors

and output has:
3-1-output-begin
3-2-3x-output-cycle(with nestings)
3-3-output-end

I like it! :-)
IMHO it is important that all tags are to be "active" and usable with
every SQL command; the reasons are above.

Good! :-)

nicola_ken


Re: draft final version of the esql namespace

Posted by Donald Ball <ba...@webslingerZ.com>.
On Tue, 7 Nov 2000, Nicola Ken Barozzi wrote:

> I thought that maybe different "taglibs" per SQL command could have
> been better, but the SQL is a string you cannot control, and people
> might end putting INSERT in a SELECT execution tag! :-P

i think you've got a good argument there, it's just not in line with what
i needed. i think you could write such a logicsheet as a wrapper around
the esql logicsheet if you wanted to, tho.

- donald


Re: draft final version of the esql namespace

Posted by Donald Ball <ba...@webslingerZ.com>.
On Tue, 7 Nov 2000, Nicola Ken Barozzi wrote:

> I thought that maybe different "taglibs" per SQL command could have
> been better, but the SQL is a string you cannot control, and people
> might end putting INSERT in a SELECT execution tag! :-P

i think you've got a good argument there, it's just not in line with what
i needed. i think you could write such a logicsheet as a wrapper around
the esql logicsheet if you wanted to, tho.

- donald