home bbs files messages ]

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,551 of 19,505   
   =?ISO-8859-1?Q?Arne_Vajh=F8j?= to Tom Anderson   
   Re: MS SQL Server, JDBC, and Unicode?   
   11 Jul 09 09:35:33   
   
   XPost: comp.lang.java.programmer   
   From: arne@vajhoej.dk   
      
   Tom Anderson wrote:   
   > 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:microsoft:sqlserver://local   
   ost;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?   
      
   Yes.   
      
   I am surprised that they did no go through.   
      
   > 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.   
      
   We will need more info to trouble shoot.   
      
   code   
   what is being inserted   
   what is being selected out   
      
   Arne   
      
   --- 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