Hi team, Thank you very much.
Cheers, Ben On Thu, Nov 10, 2011 at 3:45 AM, Francis De Brabandere <[email protected]>wrote: > I created an issue for this: > https://issues.apache.org/jira/browse/EMPIREDB-122 > > please continue the discussion overthere > > On Wed, Nov 9, 2011 at 8:38 PM, Francis De Brabandere > <[email protected]> wrote: > > Hi Ben, > > > > Good news, this can be fixed and has to be fixed on our side. In > > sqlserver you have to prepend your string with N for unicode, for > > example: > > INSERT INTO DEPARTMENTS( NAME, BUSINESS_UNIT, UPDATE_TIMESTAMP) VALUES > > ( N'junit', N'中文', '2011-11-09 20:28:40.718') > > > > Change DBDatabaseDriver line 664 to the following to fix the issue: > > valBuf.append("N'"); > > > > Rainer, how would we fix this? getValueString() in DBDatabaseDriver is > > final. We could do this by default or have an option to enable the > > N's. > > > > Cheers, > > Francis > > > > On Wed, Nov 9, 2011 at 4:57 AM, Ben Ng <[email protected]> wrote: > >> Hi Francis, > >> > >> Attached with a project which can reproduce my issue. Thanks > >> > >> Cheers, > >> Ben > >> > >> On Wed, Nov 9, 2011 at 5:07 AM, Francis De Brabandere < > [email protected]> > >> wrote: > >>> > >>> Hi Ben, > >>> > >>> Any chance you could set up a very small project to reproduce this > >>> encoding issue? > >>> Something like this: > >>> > >>> > https://svn.apache.org/repos/asf/incubator/empire-db/tags/apache-empire-db-2.2.0-incubating/empire-db/src/test/java/org/apache/empire/db/hsql/DBDatabaseDriverHSqlTest.java > >>> > >>> Cheers, > >>> Francis > >>> > >>> > >>> > >>> On Tue, Nov 8, 2011 at 2:50 AM, Ben Ng <[email protected]> wrote: > >>> > Dear Francis, > >>> > > >>> > I am now using MS SQL Server 2008. I have tried two JDBC drivers. > Both > >>> > are > >>> > fail to store Chinese character without prepared statements. > >>> > 1) net.sourceforge.jtds.jdbc.Driver (jtds-1.2.jar) > >>> > 2) com.microsoft.sqlserver.jdbc.SQLServerDriver (sqljdbc4.jar latest > >>> > version) > >>> > > >>> > Collation of the database is SQL_Latin1_General_CP1_CI_AS and the > field > >>> > is a > >>> > NVARCHAR. > >>> > Hope that those information can be helpful to you. Thanks > >>> > > >>> > Best wishes, > >>> > Ben > >>> > > >>> > > >>> > On Mon, Nov 7, 2011 at 10:34 PM, Francis De Brabandere > >>> > <[email protected]> > >>> > wrote: > >>> >> > >>> >> Ben, could you tell us what database and driver version you are > using? > >>> >> > >>> >> I'll try to create a unit/integration test for this. > >>> >> > >>> >> Cheers, > >>> >> F > >>> >> > >>> >> On Mon, Nov 7, 2011 at 3:25 PM, Rainer Döbele <[email protected]> > >>> >> wrote: > >>> >> > Hi Francis, > >>> >> > > >>> >> > I agree but we need a test case for this. > >>> >> > It may as well depend on the JDBC-Driver used - in fact I don't > know. > >>> >> > Also my Chinese is a little rusted ;-) > >>> >> > > >>> >> > Regards > >>> >> > Rainer > >>> >> > > >>> >> >> from: Francis De Brabandere [mailto:[email protected]] > >>> >> >> to: [email protected] > >>> >> >> re: Re: Inserting Chinese character record to DB > >>> >> >> > >>> >> >> I think this still is something we should fix for non-prepared > >>> >> >> statements > >>> >> >> > >>> >> >> On Mon, Nov 7, 2011 at 9:41 AM, Ben Ng <[email protected]> wrote: > >>> >> >> > Hi Rainer, > >>> >> >> > > >>> >> >> > It seems that my problem have been solved when I enable > prepared > >>> >> >> statement. > >>> >> >> > Thank you for your help. > >>> >> >> > > >>> >> >> > Regards, > >>> >> >> > Ben > >>> >> >> > > >>> >> >> > On Mon, Nov 7, 2011 at 4:19 PM, Rainer Döbele < > [email protected]> > >>> >> >> wrote: > >>> >> >> >> > >>> >> >> >> Hi Ben, > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> I don't know for sure but it may be a good idea to tell > Empire-db > >>> >> >> >> to > >>> >> >> >> use prepared statements. > >>> >> >> >> > >>> >> >> >> Simply write: > >>> >> >> >> > >>> >> >> >> db.setPreparedStatementsEnabled(true); > >>> >> >> >> > >>> >> >> >> in your initialization code. > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> Please let us know whether this works and tell us which DBMS > and > >>> >> >> >> JDBC-Driver you are using. > >>> >> >> >> > >>> >> >> >> Regards > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> Rainer > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> from: Ben Ng [mailto:[email protected]] > >>> >> >> >> to: [email protected] > >>> >> >> >> re: Re: Inserting Chinese character record to DB > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> Hi Empire-DB team, > >>> >> >> >> > >>> >> >> >> I am trying to insert a record with Chinese character from my > JSP > >>> >> >> >> page. > >>> >> >> >> The encoding is set to UTF-8 already and I am trying to insert > >>> >> >> >> the > >>> >> >> >> record by the code below where "remarks" is a string contain > >>> >> >> >> Chinese > >>> >> >> characters. > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> DBRecord rec = new DBRecord(); > >>> >> >> >> rec.create(db.REQUESTS); > >>> >> >> >> rec.setValue(db.REQUESTS.REMARKS, remarks); rec.update(conn); > >>> >> >> >> > >>> >> >> >> After inserting the record, the data of the field REMARKS > become > >>> >> >> >> "???". > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> I tried to use traditional method(PreparedStatement) to insert > >>> >> >> >> this > >>> >> >> >> record by using the same db and connection. > >>> >> >> >> The data can be inserted correctly. > >>> >> >> >> Is there any step I have missed in my code so it can support > >>> >> >> >> UTF-8? > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> I really appreciate for what your team have done. Thanks a > lot. > >>> >> >> >> > >>> >> >> >> Thanks & Regards, > >>> >> >> >> Ben > >>> >> >> > > >>> >> >> > >>> >> >> > >>> >> >> > >>> >> >> -- > >>> >> >> http://www.somatik.be > >>> >> >> Microsoft gives you windows, Linux gives you the whole house. > >>> >> > > >>> >> > >>> >> > >>> >> > >>> >> -- > >>> >> http://www.somatik.be > >>> >> Microsoft gives you windows, Linux gives you the whole house. > >>> > > >>> > > >>> > >>> > >>> > >>> -- > >>> http://www.somatik.be > >>> Microsoft gives you windows, Linux gives you the whole house. > >> > >> > > > > > > > > -- > > http://www.somatik.be > > Microsoft gives you windows, Linux gives you the whole house. > > > > > > -- > http://www.somatik.be > Microsoft gives you windows, Linux gives you the whole house. >
