Hi Kalpa,

+1 for this option.

In addition, if it is a jaggery code why don't you consider about storing
the sql commands in an xml file and later can be used to load those sql
commands.

This will give you a much cleaner approach and accommodating changes to the
sql commands are much easy.

Regards,
Firzhan

On Sat, Sep 20, 2014 at 1:57 PM, Kalpa Welivitigoda <[email protected]> wrote:

> Hi,
>
> I am working on AS HTTP Dashboard and there's 10+ different sql statements
> used to retrieve data from the db. The code doesn't look nice when there
> are a bit lengthy sql statements amidst the jaggery code so I thought of
> separating them may be to a different json file. Sql statements needs to be
> generated dynamically based on the request parameters, an example would be
> the where clause. It's not only the values on the where clause but also the
> fields there would vary based on the request.
>
> To generate the sql statement I though of using string placeholder and use
> a function similar to the following to retrieve the complete statement.
>
> function formatSql(sql, arguments) {
>     var formatted = sql;
>     for (var i = 0; i < arguments.length; i++) {
>         formatted = formatted.replace(
>             RegExp('\{' + i + '\}', 'g'), arguments[i]);
>     }
>     return formatted;
> };
>
> A sample invocation would be,
>
> var sql = 'SELECT sum({1}), {2} FROM {3} {4} GROUP BY {2}';
> var formattedSql = formatSql(sql, ['requests', 'browser', 'BROWSER_STAT',
> 'WHERE webapp=\'Community blog\'']);
>
> and the formattedSql would be
>
> SELECT sum(requests), browser FROM BROWSER_STAT WHERE webapp='Community
> blog' GROUP BY browser;
>
> What are your suggestions on the approach?
>
> Is there a better way to separate out the sql statements and to get them
> dynamically generated?
>
> --
> Best Regards,
>
> Kalpa Welivitigoda
> Software Engineer, WSO2 Inc. http://wso2.com
> Email: [email protected]
> Mobile: +94776509215
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to