Subject | JayBird as ColdfusionMX driver |
---|---|
Author | issush2002 |
Post date | 2002-12-02T20:12:20Z |
Hello,
I've had a good look through the archives and I don't think this has
been answered, but apologies if it has.
I'm trying out JayBird with ColdfusionMX in place of Interserver, and
in places I'm getting query results 20 times faster, which is
fantastic. I have hit one problem, though, which is when I try to
retrieve a blob (subtype 1) I get 'ByteArray objects cannot be
converted to strings.'
I've found the following note on the CF forums, which I hope points
to a solution:
-----
I found some information information regarding this error. First, I
am using JTOPEN JDBC for the i-Series (AS/400). The ByteArray
conversion error on the AS/400 has to do with database fields being
set with a CCSID of 65535:
Why is the Toolbox JDBC returning EBCDIC characters to my Java
program?
Normally, the Toolbox JDBC driver will translate EBCDIC characters to
Unicode Strings automatically. If it appears to be returning
untranslated EBCDIC characters instead, then it is likely that the
field in the OS/400 database is tagged with CCSID 65535. The Toolbox
JDBC driver recognizes this CCSID as a field that should not be
translated. To avoid this behavior, tag fields on the server that you
want to be translated, with a valid CCSID. Alternately, you can set
the "translate binary" connection property to "true", which instructs
the JDBC driver to translate all fields, including those tagged with
CCSID 65535. The easiest way to do this is to add
";translate binary=true"
to the end of the URL used when connecting to the database.
Example from Cold Fusion: JDBC:AS400://172.16.1.2/S10A6949;translate
binary=true
Doing this will keep you from having to develop code to translate
these. I assume that most JDBC drivers will have a similar property
available.
----
Is there an equivalent switch I can use for JayBird ?
Thanks in advance,
Simon
I've had a good look through the archives and I don't think this has
been answered, but apologies if it has.
I'm trying out JayBird with ColdfusionMX in place of Interserver, and
in places I'm getting query results 20 times faster, which is
fantastic. I have hit one problem, though, which is when I try to
retrieve a blob (subtype 1) I get 'ByteArray objects cannot be
converted to strings.'
I've found the following note on the CF forums, which I hope points
to a solution:
-----
I found some information information regarding this error. First, I
am using JTOPEN JDBC for the i-Series (AS/400). The ByteArray
conversion error on the AS/400 has to do with database fields being
set with a CCSID of 65535:
Why is the Toolbox JDBC returning EBCDIC characters to my Java
program?
Normally, the Toolbox JDBC driver will translate EBCDIC characters to
Unicode Strings automatically. If it appears to be returning
untranslated EBCDIC characters instead, then it is likely that the
field in the OS/400 database is tagged with CCSID 65535. The Toolbox
JDBC driver recognizes this CCSID as a field that should not be
translated. To avoid this behavior, tag fields on the server that you
want to be translated, with a valid CCSID. Alternately, you can set
the "translate binary" connection property to "true", which instructs
the JDBC driver to translate all fields, including those tagged with
CCSID 65535. The easiest way to do this is to add
";translate binary=true"
to the end of the URL used when connecting to the database.
Example from Cold Fusion: JDBC:AS400://172.16.1.2/S10A6949;translate
binary=true
Doing this will keep you from having to develop code to translate
these. I assume that most JDBC drivers will have a similar property
available.
----
Is there an equivalent switch I can use for JayBird ?
Thanks in advance,
Simon