Package com.inet.report
Class SQLValueProvider
java.lang.Object
com.inet.report.SQLValueProvider
- All Implemented Interfaces:
DynamicValueProvider
,NodeParser
,Serializable
- Direct Known Subclasses:
FieldValueProvider
,QueryValueProvider
This implementation of DynamicValueProvider takes a given SQL statement and executes it as a
query on the given data source. This is done via
The ResultSet returned should have one column for the value and, if desired, one for the description of each default value.
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 one column for the value and, if desired, one for the description of each default value.
- Since:
- 7.0
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The maximum number of records that will be fetched before the rest are ignored and the prompt becomes editable. -
Method Summary
Modifier and TypeMethodDescriptionabstract Datasource
Returns the data source the query is to be run onvoid
Query the DefaultValue objects for a prompt field.abstract String
getSQL()
Returns the query which is to be used for fetching the values and optionally descriptions dynamically.boolean
FOR INTERNAL USE ONLY Internal method for reading report XMLvoid
FOR INTERNAL USE ONLY Internal method for reading report XMLvoid
parseEndElement
(com.inet.report.parser.XMLTag group, String tag, Map<String, Object> parserMap) FOR INTERNAL USE ONLY Internal method for reading report XMLvoid
FOR INTERNAL USE ONLY Internal method for reading report XMLMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.inet.report.DynamicValueProvider
getDefaultValues
Methods inherited from interface com.inet.report.parser.NodeParser
parseElement
-
Field Details
-
MAX_RECORDS
public static final int MAX_RECORDSThe maximum number of records that will be fetched before the rest are ignored and the prompt becomes editable.- See Also:
-
-
Method Details
-
getDefaultValues
Query the DefaultValue objects for a prompt field. Its stops if the function return false.- Specified by:
getDefaultValues
in interfaceDynamicValueProvider
- Parameters:
func
- the function to use to compute the value- Throws:
IllegalStateException
- if the query returns a value or a description longer than 50000 characters.
-
getSQL
Returns the query which is to be used for fetching the values and optionally descriptions dynamically.- Returns:
- query to be used
- Throws:
ReportException
- if the database structure does allow a single joined querySQLException
- on SQL errors during requesting metadata- Since:
- 7.0
-
getDatasource
Returns the data source the query is to be run on- Returns:
- data source to use
- Since:
- 7.0
-
isDOMParser
public boolean isDOMParser()FOR INTERNAL USE ONLY Internal method for reading report XMLReturns whether this node is to be read via a DOM parser.
- Specified by:
isDOMParser
in interfaceNodeParser
- Returns:
- true if this node is to be read via a DOM parser, false otherwise.
-
parseEndElement
public void parseEndElement(com.inet.report.parser.XMLTag group, String tag, Map<String, Object> parserMap) throws FatalParserExceptionFOR INTERNAL USE ONLY Internal method for reading report XMLReceive notification of the end of an XML tag.
- Specified by:
parseEndElement
in interfaceNodeParser
- Parameters:
group
- XMLTag of the current node to be parsed, or null if there is no such current group.tag
- The XMLTag to be parsedparserMap
- The map of current Parser.- Throws:
FatalParserException
- if an exception occurs which causes the report to not be able to be read: causes the abortion of the reading of the report.
-
parseText
FOR INTERNAL USE ONLY Internal method for reading report XMLThis method is called if text was encountered in the context of this node. (Examples would be a formula's text or a text element's text)
- Specified by:
parseText
in interfaceNodeParser
- Parameters:
text
- text encountered and to be storedparserMap
- The map of current Parser.
-
parseDOM
FOR INTERNAL USE ONLY Internal method for reading report XMLParses the node.
- Specified by:
parseDOM
in interfaceNodeParser
- Parameters:
node
- the nodeparserMap
- The map of current Parser.- Throws:
FatalParserException
- if an exception occurs which causes the report to not be able to be read: causes the abortion of the reading of the report.
-