This function is able to generate through the data obtained in a SQL query a CSV structure of table type.

1 sql.toCSV

<sql.toCSV>
    <union /> ?
    <select /> ?
    <nativesql /> ?
</sql.toCSV>

Exceptions

input/output exception ...

Input/output fail in the connection with the database.

sql exception ...

Error of sql.

Example

Conversion of query to CSV through writing on tags.

Copy
<xsql-script name='test_sql_toCSV1'>
    <body>
        <println>
            <sql.toCSV>
                <select prefix='ccompany_'>
                    <columns>
                        ccompany.comname,
                        CASE WHEN <substr>cthird.cif,1,2</substr> = 'ES'
                             THEN <substr>cthird.cif,3,11</substr>
                             ELSE cthird.cif
                         END <alias name='cif' />,
                        cthird.name,
                        <substr>cthiaddr.telef1, 1, 9</substr> <alias name='telef1' />,
                        cthiaddr.poscod <alias name='zip' />,
                        cthiaddr.popul <alias name='city' />,
                        cthiaddr.addr
                    </columns>
                    <from table='ccompany'>
                        <join type='left' table='cthird'>
                            <on>ccompany.third = cthird.code</on>
                        </join>
                        <join type='left' table='cthiaddr'>
                            <on>ccompany.third = cthiaddr.code</on>
                            <on>ccompany.typadd = cthiaddr.typadd</on>
                        </join>
                    </from>
                    <where>
                        1=1
                    </where>
                </select>
            </sql.toCSV>
        </println>
    </body>
</xsql-script>
Example

Conversion of query to CSV through writing on native.

Copy
<xsql-script name='test_sql_toCSV2'>
   <body>
       <println>
           <sql.toCSV>
               <nativesql>SELECT gcompedh.third FROM gcompedh</nativesql>
           </sql.toCSV>
       </println>
   </body>
</xsql-script>
Example

Creation of a CSV structure through a vtable.

Copy
<xsql-script name='test_sql_toCSV3'>
  <body>
      <vtable name='v1'>
          <column name='code' type='char' unique='true' />
          <column name='name' type='char' size='25' />
          <column name='number' type='integer' />
          <column name='balance'  type='decimal' scale='2' editable='true' />
      </vtable>
      <vtable.insert name='v1'>
          <column name='code'>A</column>
          <column name='name'>Name AA</column>
          <column name='number'>0</column>
          <column name='balance'>12.9</column>
      </vtable.insert>
      <vtable.insert name='v1'>
          <column name='code'>B</column>
          <column name='name'>Nombre BB</column>
          <column name='number'>1</column>
          <column name='balance'>-17.99</column>
      </vtable.insert>
      <println>
          <sql.toCSV>
              <in>
                  <v1/>
              </in>
          </sql.toCSV>
      </println>
  </body>
</xsql-script>
Example

Creation of a CSV structure through a SOAP call (sqlresponse).

Copy
<xsql-script name='test_sql_toCSV4'>
  <body>
      <set name='m_response'>
          <soap.call
              url='http://localhost:80/soap/servlet/rpcrouter'
              uri='urn:SOAPSQLServer'
              method='executeSQL'
              user='demo'
              password='abcdemo'
              >
              <parameters>
                 <parameter name='database'>demo_sports1</parameter>
                 <parameter name='sqlstmt'>SELECT * FROM cdiary</parameter>
              </parameters>
          </soap.call>
      </set>
      <println>
          <m_response />
      </println>
      <println>
          <sql.toCSV>
              <in><m_response/></in>
          </sql.toCSV>
      </println>
  </body>
</xsql-script>