Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Java jdbc-odbc DBF Cp1251 не выходит! / 2 сообщений из 2, страница 1 из 1
23.10.2007, 08:30:28
    #34886676
Vector
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java jdbc-odbc DBF Cp1251 не выходит!
Приветствую всех.

Выгружаю данные в DBF файл.
Вот код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
         try  {
            java.util.Properties connInfo =  new  java.util.Properties(); 
            connInfo.put("charSet", "Cp1251"); 
             Class .forName("sun.jdbc.odbc.JdbcOdbcDriver"); // loading driver for working with dbf 
            String url = "jdbc:odbc:Driver={Microsoft dBase Driver (*.dbf)};FIL=dBase III;DBQ=c:\Temp";
            java.sql.Connection conn = java.sql.DriverManager.getConnection( new  String(url.getBytes(), "Cp1251"), connInfo); // open seesion with dbf 
            java.sql.PreparedStatement prst=conn.prepareStatement("INSERT INTO Table.dbf " +
                      "(COD, COD_1, DAT, DATN, DATK, ADDIT) " +
                      "VALUES (?, ?, ?, ?, ?, ?)");

            dataprocess.ExportDBFClass item; //Мой класс, откуда беру данные
            String query;
             for ( int  i= 0 ; i < expcont.getCount(); i++) {
                item=expcont.getItem(i);
                prst.clearParameters();
                prst.setInt( 1 , item.cod);
                prst.setInt( 2 , item.cod_1);
                prst.setTimestamp( 3 ,  new  java.sql.Timestamp(item.dat.getTime()));
                prst.setTimestamp( 4 ,  new  java.sql.Timestamp(item.datn.getTime()));
                prst.setTimestamp( 5 ,  new  java.sql.Timestamp(item.datk.getTime()));

                //Вот эта строка добавляет текст с русскими буквами
                prst.setString( 6 , item.addit);
                
                prst.executeUpdate();
                
            }
            conn.close();
        }  catch (Exception e) {
            javax.swing.JOptionPane.showMessageDialog( null , "Не могу выгрузить данные:"+e.getMessage(), "Ошибка!!!", javax.swing.JOptionPane.ERROR_MESSAGE);
             return ;
        }


Хоть и указываю в настройках подключения, что charSet=Cp1251, выгружается все равно
в досовой кодировке Cp866.

Пробовал и так:
Код: plaintext
1.
                prst.setString( 6 , new String(item.addit.getBytes("Cp1251")));

и так:
Код: plaintext
1.
                prst.setBytes( 6 , item.addit.getBytes("Cp1251"));

и всегда не то. В лучшем случае - это Cp866, в худшем - вообще не понятно что.

Кто-нибудь сталкивался с этим?
Возможно драйвер ODBC другой нужен?
Установлен MDAC 2.8 SP1.

С уважением Vector
...
Рейтинг: 0 / 0
23.10.2007, 13:17:22
    #34887654
super
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java jdbc-odbc DBF Cp1251 не выходит!
У меня что-то подобное было ,когда я считывал из MySQL в ASP данные.я записывал данные в MySQL через командную строку,а выгружал через драйыер MySQL в ASP.У меня тоже отображалась досовская кодировка,проблема заключалась в том,что записывать и считывать в базу надо было через один и тот же драйвер. Возможно у тебя подобная ситуация.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Java jdbc-odbc DBF Cp1251 не выходит! / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]