--- PreparedStatement.java.org 2005-01-24 08:47:39.000000000 +0900 +++ PreparedStatement.java 2005-02-01 15:22:56.676939700 +0900 @@ -1058,80 +1058,20 @@ SQLError.SQL_STATE_ILLEGAL_ARGUMENT); } } else { - StringBuffer buf = new StringBuffer((int) (x.length() * 1.1)); - buf.append('\''); - - int stringLength = x.length(); - - for (int i = 0; i < stringLength; ++i) { - char c = x.charAt(i); - - switch (c) { - case 0: /* Must be escaped for 'mysql' */ - buf.append('\\'); - buf.append('0'); - - break; - - case '\n': /* Must be escaped for logs */ - buf.append('\\'); - buf.append('n'); - - break; - - case '\r': - buf.append('\\'); - buf.append('r'); - - break; - - case '\\': - buf.append('\\'); - buf.append('\\'); - - break; - - case '\'': - buf.append('\\'); - buf.append('\''); - - break; - - case '"': /* Better safe than sorry */ - buf.append('\\'); - buf.append('"'); - - break; - - case '\032': /* This gives problems on Win32 */ - buf.append('\\'); - buf.append('Z'); - - break; - - default: - buf.append(c); - } - } - - buf.append('\''); - - String parameterAsString = buf.toString(); - try { byte[] parameterAsBytes = null; if (!this.isLoadDataQuery) { - parameterAsBytes = StringUtils.getBytes(parameterAsString, + parameterAsBytes = StringUtils.getBytes(x, this.charConverter, this.charEncoding, this.connection.getServerCharacterEncoding(), this.connection.parserKnowsUnicode()); } else { // Send with platform character encoding - parameterAsBytes = parameterAsString.getBytes(); + parameterAsBytes = x.getBytes(); } - setInternal(parameterIndex, parameterAsBytes); + setBytes(parameterIndex, parameterAsBytes, false); } catch (UnsupportedEncodingException uue) { throw new SQLException("Unsupported character encoding '" + this.charEncoding + "'",