/** * Method declaration * * @param t * @throws SQLException */ void transferStructure() throws Exception { String Statement = new String(""); if (destDb.helper.needTransferTransaction()) { try { destDb.setAutoCommit(false); } catch (Exception e) { } } if (Stmts.bTransfer == false) { tracer.trace("Table " + Stmts.sSourceTable + " not transfered"); return; } tracer.trace("Table " + Stmts.sSourceTable + ": start transfer"); try { if (Stmts.bDropIndex) { if (Stmts.sDestDropIndex.charAt(Stmts.sDestDropIndex.length() - 1) != ';') { Stmts.sDestDropIndex += ";"; } int lastsemicolon = 0; int nextsemicolon = Stmts.sDestDropIndex.indexOf(';'); while (nextsemicolon > lastsemicolon) { Statement = Stmts.sDestDropIndex.substring(lastsemicolon, nextsemicolon); while (Statement.charAt(Statement.length() - 1) == ';') { Statement = Statement.substring(0, Statement.length() - 1); } try { tracer.trace("Executing " + Statement); destDb.execute(Statement); } catch (Exception e) { tracer.trace("Ignoring error " + e.getMessage()); } lastsemicolon = nextsemicolon + 1; nextsemicolon = lastsemicolon + Stmts.sDestDropIndex.substring(lastsemicolon).indexOf(';'); } } if (Stmts.bDelete) { if (Stmts.sDestDelete.charAt(Stmts.sDestDelete.length() - 1) != ';') { Stmts.sDestDelete += ";"; } int lastsemicolon = 0; int nextsemicolon = Stmts.sDestDelete.indexOf(';'); while (nextsemicolon > lastsemicolon) { Statement = Stmts.sDestDelete.substring(lastsemicolon, nextsemicolon); while (Statement.charAt(Statement.length() - 1) == ';') { Statement = Statement.substring(0, Statement.length() - 1); } try { tracer.trace("Executing " + Statement); destDb.execute(Statement); } catch (Exception e) { tracer.trace("Ignoring error " + e.getMessage()); } lastsemicolon = nextsemicolon + 1; nextsemicolon = lastsemicolon + Stmts.sDestDelete.substring(lastsemicolon).indexOf(';'); } } if (Stmts.bDrop) { if (Stmts.sDestDrop.charAt(Stmts.sDestDrop.length() - 1) != ';') { Stmts.sDestDrop += ";"; } int lastsemicolon = 0; int nextsemicolon = Stmts.sDestDrop.indexOf(';'); while (nextsemicolon > lastsemicolon) { Statement = Stmts.sDestDrop.substring(lastsemicolon, nextsemicolon); while (Statement.charAt(Statement.length() - 1) == ';') { Statement = Statement.substring(0, Statement.length() - 1); } try { tracer.trace("Executing " + Statement); destDb.execute(Statement); } catch (Exception e) { tracer.trace("Ignoring error " + e.getMessage()); } lastsemicolon = nextsemicolon + 1; nextsemicolon = lastsemicolon + Stmts.sDestDrop.substring(lastsemicolon).indexOf(';'); } } if (Stmts.bCreate) { if (Stmts.sDestCreate.charAt(Stmts.sDestCreate.length() - 1) != ';') { Stmts.sDestCreate += ";"; } int lastsemicolon = 0; int nextsemicolon = Stmts.sDestCreate.indexOf(';'); while (nextsemicolon > lastsemicolon) { Statement = Stmts.sDestCreate.substring(lastsemicolon, nextsemicolon); while (Statement.charAt(Statement.length() - 1) == ';') { Statement = Statement.substring(0, Statement.length() - 1); } tracer.trace("Executing " + Statement); destDb.execute(Statement); lastsemicolon = nextsemicolon + 1; nextsemicolon = lastsemicolon + Stmts.sDestCreate.substring(lastsemicolon).indexOf(';'); } } } catch (Exception e) { try { if (!destDb.getAutoCommit()) { destDb.rollback(); } } catch (Exception e1) { } throw (e); } if (!destDb.getAutoCommit()) { destDb.commit(); try { destDb.setAutoCommit(true); } catch (Exception e) { } } }