19Writing CFX Tags with Java
Listing 30.3 (continued)
} else if ( strAction.equalsIgnoreCase(“GetViews”) ) {
String[] types = {“VIEW”};
rs = dbmd.getTables(DBCatalog, DBSchema, DBTableName, types);
// Handle ACTION=”GetColumns” (user wants a list of columns)
} else if ( strAction.equalsIgnoreCase(“GetColumns”) ) {
rs = dbmd.getColumns(DBCatalog, DBSchema, DBTableName, DBColumnName);
// Handle ACTION=”GetCatalogs” (user wants a list of catalogs)
} else if ( strAction.equalsIgnoreCase(“GetCatalogs”) ) {
rs = dbmd.getCatalogs();
// Handle ACTION=”GetSchemas” (user wants a list of schemas)
} else if ( strAction.equalsIgnoreCase(“GetSchemas”) ) {
rs = dbmd.getSchemas();
// Handle ACTION=”GetProcedures” (a list of stored procedures)
} else if ( strAction.equalsIgnoreCase(“GetProcedures”) ) {
rs = dbmd.getProcedures(DBCatalog, DBSchema, DBProcedureName);
// Handle ACTION=”GetProcedureColumns” (list of stored procedure columns)
} else if ( strAction.equalsIgnoreCase(“GetProcedureColumns”) ) {
rs = dbmd.getProcedureColumns(DBCatalog, DBSchema, DBProcedureName, DBColumnName);
// Handle ACTION=”GetPrimaryKeys”
} else if ( strAction.equalsIgnoreCase(“GetPrimaryKeys”) ) {
rs = dbmd.getPrimaryKeys(DBCatalog, DBSchema, DBTableName);
// Handle ACTION=”GetIndexInfo”
} else if ( strAction.equalsIgnoreCase(“GetIndexInfo”) ) {
rs = dbmd.getIndexInfo(DBCatalog, DBSchema, DBTableName, false, false);
// Throw an error if the ACTION attribute was not recognized
} else {
throw new Exception(“Unknown ACTION attribute!”);
}
// The rs ResultSet now contains the metadata info about tables/columns
// Return it to the calling ColdFusion page as a query
returnAsQuery(rs, strQueryName, response);
}
// Helper function that accepts any java.sql.ResultSet
// and returns it to ColdFusion as a CFML query object
private void returnAsQuery(ResultSet rs, String name, Response response)
throws Exception
{
// Get metadata about the ResultSet (so we can find out its column names)
ResultSetMetaData rsmd = rs.getMetaData();
// Create an array of strings to hold the ResultSet’s column names
String[] arColumns = new String[rsmd.getColumnCount()];
Commentaires sur ces manuels