Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.databases.ms-sqlserver    |    Notorious Rube Goldberg contraption    |    19,505 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 17,550 of 19,505    |
|    Tom Anderson to All    |
|    Re: MS SQL Server, JDBC, and Unicode?    |
|    11 Jul 09 12:37:11    |
   
   XPost: comp.lang.java.programmer   
   From: twic@urchin.earth.li   
      
   On Fri, 10 Jul 2009, Arne Vajh?j wrote:   
      
   > Tom Anderson wrote:   
   >> Has anyone made SQL Server work with unicode in java?   
   >   
   > I can't get it not to work.   
   >   
   > :-)   
   >   
   > The following is tested with the MS driver (driver for 2000   
   > against 2000, but I expect 2005 against 2005 to work identical):   
   >   
   > public class Unicode {   
   > public static void main(String[] args) throws Exception {   
   > Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //   
   SQLServer 2000   
   > Connection con = DriverManager.getConnection("jdbc:micr   
   soft:sqlserver://localhost;DatabaseName=Test", "sa", "");   
   > Statement stmt = con.createStatement();   
   > stmt.executeUpdate("CREATE TABLE unifun (id INTEGER NOT NULL, data   
   NVARCHAR(50), PRIMARY KEY(id))");   
   > stmt.executeUpdate("INSERT INTO unifun VALUES(1,N'?????? the wrong   
   way')");   
   > PreparedStatement pstmt = con.prepareStatement("INSERT INTO unifun   
   VALUES(?,?)");   
   > pstmt.setInt(1, 2);   
   > pstmt.setString(2, "?????? the correct way");   
   > pstmt.executeUpdate();   
   > ResultSet rs = stmt.executeQuery("SELECT id,data FROM unifun");   
   > while(rs.next()) {   
   > System.out.println(rs.getInt(1) + " : " + rs.getString(2));   
   > }   
   > rs.close();   
   > stmt.executeUpdate("DROP TABLE unifun");   
   > stmt.close();   
   > con.close();   
   > }   
   > }   
      
   Silly question, but those ?s were unicode characters before you pasted   
   this into usenet, right?   
      
   Thanks for doing this, Arne - i should probably have tried it myself. It   
   eliminates one area of doubt about the problem, but still leaves me none   
   the wiser as to why the system won't do unicode right. Maybe it's   
   constructing SQL strings internally, rather than using PreparedStatements,   
   and not using the N'?' syntax. I really don't think that's the case,   
   though - i've seen evidence from debugging and stack traces that   
   PreparedStatements are indeed used.   
      
   tom   
      
   --   
   SOY! SOY! SOY! Soy makes you strong! Strength crushes enemies! SOY!   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca