i-net Clear Reports

com.inet.report
Class QueryValueProvider

java.lang.Object
  extended by com.inet.report.SQLValueProvider
      extended by com.inet.report.QueryValueProvider
All Implemented Interfaces:
CascadingSource, DynamicValueProvider, NodeParser, java.io.Serializable

public class QueryValueProvider
extends SQLValueProvider
implements CascadingSource

This implementation of DynamicValueProvider takes a given SQL statement and executes it as a query on the given data source. This is done via Connection.createStatement() and Statement.executeQuery(String), which means that the SQL query can be any standard SQL statement. SPs also work for most databases, but not for Oracle or PostgreSQL.
The ResultSet returned should have the data of the first column be for the value and, if desired, have a second column with data for the description of each default value. Optionally instead, there should be a column called 'value' and a column called 'description'.

See Also:
Datasource, Statement.execute(String), Serialized Form

Field Summary
 
Fields inherited from class com.inet.report.SQLValueProvider
MAX_RECORDS
 
Constructor Summary
QueryValueProvider(java.lang.String query, Datasource datasource)
          Creates an instance of QueryValueProvider with the given query and data source.
 
Method Summary
 Datasource getDatasource()
          Returns the data source the query is to be run on
 java.lang.String getFieldRefName()
          Returns the name to be used as the SQL reference name in the WHERE part of the query used by a cascading prompt referencing this as its parent.
 java.lang.String getSQL()
          Returns the query which is to be used for fetching the values and optionally descriptions dynamically.
 void setDatasource(Datasource datasource)
          Sets the data source on which the query is to be executed.
 void setFieldRefName(java.lang.String refName)
          Sets the reference name to use if this provider used as a parent source to a cascading prompt.
 void setSQL(java.lang.String query)
          Query to execute.
 
Methods inherited from class com.inet.report.SQLValueProvider
getDefaultValues
 
Methods inherited from interface com.inet.report.parser.NodeParser
isDOMParser, parseDOM, parseElement, parseEndElement, parseText
 

Constructor Detail

QueryValueProvider

public QueryValueProvider(java.lang.String query,
                          Datasource datasource)
Creates an instance of QueryValueProvider with the given query and data source. The query's ResultSet should have its first column be the value of each default value and an optional second column will be used as the description of each default value. Optionally instead, there should be a column called 'value' and a column called 'description'.

Parameters:
query - Query to use to extract default values from, may not be null. Its ResultSet should have its first column be the value of each default value and an optional second column will be used as the description of each default value. Optionally instead, there should be a column called 'value' and a column called 'description'.
datasource - data source to run the query on, may not be null
Throws:
java.lang.IllegalArgumentException - if the query or the data source is null
See Also:
Datasource, DynamicValueProvider
Method Detail

setDatasource

public void setDatasource(Datasource datasource)
Sets the data source on which the query is to be executed.

Parameters:
datasource - data source to execute the query on.
Throws:
java.lang.IllegalArgumentException - if datasource is null

getDatasource

public Datasource getDatasource()
Returns the data source the query is to be run on

Specified by:
getDatasource in class SQLValueProvider
Returns:
data source to use

setSQL

public void setSQL(java.lang.String query)
Query to execute. Should be a SELECT statement, but on databases which support a simple execute of an SP, it can be a Stored Procedure call.

Parameters:
query - Query to execute. Its ResultSet should have its first column be the value of each default value and an optional second column will be used as the description of each default value.
Throws:
java.lang.IllegalArgumentException - if query is null

getSQL

public java.lang.String getSQL()
Returns the query which is to be used for fetching the values and optionally descriptions dynamically.

Specified by:
getSQL in class SQLValueProvider
Returns:
query to be used

getFieldRefName

public java.lang.String getFieldRefName()
Returns the name to be used as the SQL reference name in the WHERE part of the query used by a cascading prompt referencing this as its parent. The WHERE part of the SQL query will resemble something like "WHERE (reference name = prompt value)".

Specified by:
getFieldRefName in interface CascadingSource
Returns:
Reference name of the parent source for a cascading prompt
See Also:
CascadingValueProvider, SQLValueProvider

setFieldRefName

public void setFieldRefName(java.lang.String refName)
Sets the reference name to use if this provider used as a parent source to a cascading prompt.

Parameters:
refName - Reference name to use in the SQL query to filter cascading results if this provider is referenced as a parent to a cascading prompt.

i-net Clear Reports

Copyright © 1999-2015 by i-net software GmbH