Subject | Re: [Firebird-Java] Re: Trying to run TrackStudio :-) |
---|---|
Author | Mark Rotteveel |
Post date | 2012-06-29T08:43:39Z |
On 29-6-2012 9:46, the_a_rioch wrote:
don't report the java.sql.Types name which is failing.
connecting using NONE. In the Java world the local system encoding is
considered to be the 'default' encoding.
Mark
--
Mark Rotteveel
>> Actually, blobs are always sent in their defined charactersetIt is in the XSQLDA together with the data.
>
> with that characterset bundled, or driver should separately query "what charset it was supposed to be for column/blob-id x?")
>> (a thingI will consider it, but this is more a limitation of Hibernate that they
>> BTW which I believe Jaybird currently doesn't handle well when the blob
>> characterset deviates from the connection characterset). The driver
>> should take of conversion here, not Firebird.
>
> Scanning through Jaybird_2_1_JDBC_driver_manual...
> Out of line, that table of mapping between Java and FB types, could you add there numeric codes like that "-1" ?
> Why for Javist it would be lame question, "use the source, Luke" for outsiders that would require an investigation "where and what to search for".
don't report the java.sql.Types name which is failing.
> After reading "Appendix D. Character Encodings" i think that current heuristics about NONE has just no sense at all.This is exactly the same way that other Firebird drivers work when
> There is UTF-16 charset in Java, there is some unknown charset in DB, and you introduce yet another, 3rd charset !
> Okay, imagine that heavy-loaded FB server is running on Linux. Client desktops on Windows. Under this logic, there would be (assuming Russian as the language):
connecting using NONE. In the Java world the local system encoding is
considered to be the 'default' encoding.
> 1) database language - unknown yet before connection. Valid guesses would be NONE, UTF8, Win1251 (if database was designed on local Delphi/IBExpert/etc Windows box, then moved to server), KOI8-R (if designed on Linux from start).Well, lets agree to disagree.
> 2) default OS charset (file.encoding) on server would be KOI8-R, unknown before connection
> 3) default OS charset (file.encoding) on client would be 1251
> 4) Java application internal charset would be UTF-16 (for Russian it would be the same as UCS-2, used by Windows API, if i get it right)
> 5) Jaybird's heuristics would ( from my POV - ignoring and overriding connection's NONE charset) assume connection charset charset of 3) which has high chances to differ from server's one.
>
> I believe you had a rational and good thought of choice for defaults but i just cannot see any rationale behind that.
> Sorry for being harsh, that is just how i really feel - completely lost on that subject.
> Also that appendix D in manual seems full of ambiguous wording to my eye.Because in most cases that would be wrong as well.
> "When the NONE character set is used, the driver does not know how to interpret the received data."
> Driver is just a intermediate bridge. So was it about data, it receives from server ? Or was it data it receives from JDBC/application ? And why it "does not know" if it can query the server while reading schema and it can assume UTF-16 on JDBC endpoint ?
Mark
--
Mark Rotteveel