public void runStatement(final String rawString)
		throws IOException, SQLException, SyntaxException {

		final String inString = rawString.trim();

		if (verbosity != Verbosity.QUIET) {
			out.println("Executing : <<" + inString + ">>");
			out.flush();
		}
		currentDecorator.println(
			String.format("-- output from command -- \"%s\"%n", inString));

		escape = false;
		if (inString.startsWith("\\")) {
			escape = true;
			doEscape(inString);
			return;
		}

		boolean hasResultSet = 
			statement.execute(inString);		// DO IT - call the database.

		if (!hasResultSet) {
			currentDecorator.printRowCount(statement.getUpdateCount());
		} else {
			int n = currentDecorator.write(cacheResultSet(statement.getResultSet()));
			if (verbosity == Verbosity.VERBOSE || verbosity == Verbosity.DEBUG) {
				currentDecorator.printRowCount(n);
			}
		}
		currentDecorator.flush();
	}