Subject JDBC driver problem
Author Samofatov, Nickolay
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