ACHTUNG:
Alle Code- Schnipsel sind zwar von mir erzeugt und getestet, aber dennoch übernehme ich keinerlei Garantie das diese auch funktionieren.
Außerdem können diese Methoden bei Unsachgemäßem gebrauch zu inkonsistenten Daten in der Datenbank führen.
BITTE IMMER IN EINEM TESTSYSTEM UND NIEMALS IM PRODUKTIVBETRIEB BENUTZEN
public static void sqlUpdate(String sqlStatement) throws WMException {
sqlUpdate(sqlStatement, true);
}
@SuppressWarnings({"CallToThreadDumpStack", "CallToPrintStackTrace"})
public static void sqlUpdate(String sqlStatement, boolean print) throws WMException {
if (sqlStatement.equals("?")) {
if (print) {
interpreter.println("Example :");
interpreter.println("sqlUpdate(\"update USER_SETTINGS set LOGON_INFO=null where USER_NAME='abcdef'\");");
interpreter.println("sqlUpdate(\"update wm_elements set alid='B7KKNKTB' where CLASS_NAME='DRAWING_2D' and alid='BI0T3SAV'\");");
interpreter.println("sqlUpdate(\"update wm_elements set sfu = null where sfu like '%5458a5bb0c366b%'\");");
}
} else {
if (print) {
if (!checkAdmin()) {
return;
}
}
try {
pdm.enable_run_sql("KENNWORT");
pdm.sql_begin_work();
pdm.sql_execute(sqlStatement);
pdm.sql_commit_work();
if (print) {
interpreter.println(sqlStatement + " : => done");
}
} catch (WMException e) {
if (print) {
interpreter.println("ERROR " + e.toString());
} //frozen
e.printStackTrace();
pdm.sql_rollback_work();
} finally {
pdm.disable_run_sql();
}
}
}
private static boolean checkAdmin() {
try {
if (!WMSession.getWMSession().isAdminUser()) {
interpreter.println("No permission via SQL !!");
return false;
}
} catch (WMException ex) {
Logger.getLogger(BeanShell.class.getName()).log(Level.SEVERE, null, ex);
}
return true;
}