* @see de.willuhn.sql.version.Update#execute(de.willuhn.sql.version.UpdateProvider)
*/
public void execute(UpdateProvider provider) throws ApplicationException
{
HBCIUpdateProvider myProvider = (HBCIUpdateProvider) provider;
I18N i18n = myProvider.getResources().getI18N();
// Wenn wir eine Tabelle erstellen wollen, muessen wir wissen, welche
// SQL-Dialekt wir sprechen
String driver = HBCIDBService.SETTINGS.getString("database.driver",DBSupportH2Impl.class.getName());
if (driver == null || !driver.equals(DBSupportH2Impl.class.getName()))
{
Logger.info("skip update, not needed");
return; // Update nur fuer H2 noetig
}
try
{
String sql = "ALTER TABLE systemnachricht ALTER COLUMN nachricht VARCHAR(4000) NOT NULL;";
Logger.info("update sql table for update0023");
ScriptExecutor.execute(new StringReader(sql),myProvider.getConnection(),myProvider.getProgressMonitor());
myProvider.getProgressMonitor().log(i18n.tr("Tabelle 'systemnachricht' aktualisiert"));
}
catch (ApplicationException ae)
{
throw ae;
}
catch (Exception e)
{
Logger.error("unable to execute update",e);
throw new ApplicationException(i18n.tr("Fehler beim Ausf�hren des Updates"),e);
}
}