From: Mike S. <ms...@us...> - 2006-12-15 21:27:29
|
Update of /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv18267/Sources/er/extensions Modified Files: ERXJDBCUtilities.java Log Message: shortcut for executing a sql script from resources Index: ERXJDBCUtilities.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXJDBCUtilities.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** ERXJDBCUtilities.java 22 Nov 2006 18:25:12 -0000 1.17 --- ERXJDBCUtilities.java 15 Dec 2006 21:27:22 -0000 1.18 *************** *** 18,21 **** --- 18,22 ---- import org.apache.log4j.Logger; + import com.webobjects.appserver.WOApplication; import com.webobjects.eoaccess.EOAdaptorChannel; import com.webobjects.eoaccess.EOAttribute; *************** *** 454,457 **** --- 455,480 ---- /** + * Executes a SQL script that is stored as a resource. + * + * @param channel the channel to execute the scripts within + * @param resourceName the name of the SQL script resource + * @param frameworkName the name of the framework that contains the resource + * @return the number of rows updated + * @throws SQLException if a SQL error occurs + * @throws IOException if an error occurs reading the script + */ + public static int executeUpdateScriptFromResourceNamed(EOAdaptorChannel channel, String resourceName, String frameworkName) throws SQLException, IOException { + InputStream sqlScript = WOApplication.application().resourceManager().inputStreamForResourceNamed(resourceName, frameworkName, NSArray.EmptyArray); + NSArray sqlStatements; + try { + sqlStatements = ERXSQLHelper.newSQLHelper(channel).splitSQLStatementsFromInputStream(sqlScript); + } + finally { + sqlScript.close(); + } + return ERXJDBCUtilities.executeUpdateScript(channel, sqlStatements); + } + + /** * Creates tables, primary keys, and foreign keys for the tables in the given model. This is * useful in your Migration #0 class. |