Subject | JDBC driver problem |
---|---|
Author | Samofatov, Nickolay |
Post date | 2004-08-13T16:47:11Z |
Hi, Roman!
Today I received the following message from the guy verifying fresh JDBC driver at BSS company:
------------------
Lexa (11:46 AM) :
--- FBBlob.java 2004-08-03 11:50:37.000000000 +0400
+++ FBBlob.java.bak 2004-07-08 14:10:47.000000000 +0400
@@ -24,7 +24,6 @@
import java.sql.Blob;
import java.sql.SQLException;
import java.util.*;
-import java.nio.charset.Charset;
import org.firebirdsql.gds.*;
@@ -475,7 +474,9 @@
osw.write(buffer, 0, chunk);
length -= chunk;
}
+ osw.close();
os.close();
}
catch (IOException ioe) {
throw new SQLException("read/write blob problem: " + ioe);
Lexa (11:47 AM) :
короче там не вызывался osw.close(). таким образом не делался flush и блоб получался кастрированным.
метод
public void copyCharacterStream(Reader inputStream, int length) throws
------------------
Additinally, this guy is unhappy that setCharacterStream apparently uses JVM encoding for all blobs.
He changed this method to use something like OutputStreamWriter osw = new OutputStreamWriter(os, javaEncoding);
to be consistent with setString() logic.
His final comment was:
---------
Lexa (12:03 AM) :
по видимому если Blob не текстовый (sub_type 0 по-моему), то setCharacterStream, setString, getString должны использовать кодировку базы данных при своей работе. если Blob текстовы, то эти методы должны юзать кодировка заданную для поля.
Lexa (12:04 AM) :
и настанет счастье
---------
Nickolay Samofatov
Today I received the following message from the guy verifying fresh JDBC driver at BSS company:
------------------
Lexa (11:46 AM) :
--- FBBlob.java 2004-08-03 11:50:37.000000000 +0400
+++ FBBlob.java.bak 2004-07-08 14:10:47.000000000 +0400
@@ -24,7 +24,6 @@
import java.sql.Blob;
import java.sql.SQLException;
import java.util.*;
-import java.nio.charset.Charset;
import org.firebirdsql.gds.*;
@@ -475,7 +474,9 @@
osw.write(buffer, 0, chunk);
length -= chunk;
}
+ osw.close();
os.close();
}
catch (IOException ioe) {
throw new SQLException("read/write blob problem: " + ioe);
Lexa (11:47 AM) :
короче там не вызывался osw.close(). таким образом не делался flush и блоб получался кастрированным.
метод
public void copyCharacterStream(Reader inputStream, int length) throws
------------------
Additinally, this guy is unhappy that setCharacterStream apparently uses JVM encoding for all blobs.
He changed this method to use something like OutputStreamWriter osw = new OutputStreamWriter(os, javaEncoding);
to be consistent with setString() logic.
His final comment was:
---------
Lexa (12:03 AM) :
по видимому если Blob не текстовый (sub_type 0 по-моему), то setCharacterStream, setString, getString должны использовать кодировку базы данных при своей работе. если Blob текстовы, то эти методы должны юзать кодировка заданную для поля.
Lexa (12:04 AM) :
и настанет счастье
---------
Nickolay Samofatov