Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пробьлема с посылкой SQL запрса в jdbc:odbc 
:(
    Опции темы
lw_
Дата 6.10.2006, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 6.10.2006

Репутация: нет
Всего: нет



Недавно начал осваивать jdbc. При написании простого упражнения возникли трудности, вроде всё делаю правильно, а в чём трабл не понятно.

Упражнение состооит в следующем. Создаётся источник данных (для простоты это текстовыйм файл). И в него из приложения на Java заносятся данные.

Вот код:
Код

package createBase;

import java.sql.*;  //import all the JDBC classes

public class CreateJoltData {

    static String[] SQL = {
        "create table JoltData ("+
            "programmer varchar (32),"+
            "day varchar (3),"+
            "cups integer);",
        "insert into JoltData values ('Gilbert', 'Mon', 1);",
        "insert into JoltData values ('Wally', 'Mon', 2);",
        "insert into JoltData values ('Edgar', 'Tue', 8);",
        "insert into JoltData values ('Wally', 'Tue', 2);",
        "insert into JoltData values ('Eugene', 'Tue', 3);",
        "insert into JoltData values ('Josephine', 'Wed', 2);",
        "insert into JoltData values ('Eugene', 'Thu', 3);",
        "insert into JoltData values ('Gilbert', 'Thu', 1);",
        "insert into JoltData values ('Clarence', 'Fri', 9);",
        "insert into JoltData values ('Edgar', 'Fri', 3);",
        "insert into JoltData values ('Josephine', 'Fri', 4);",
    };
    
    
    public static void main(String[] args) {
        
        String URL = "jdbc:odbc:CafeJolt";
        String username = "";
        String password = "";

        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        } catch (Exception e) {
            System.out.println("Failed to load JDBC/ODBC driver.");
            return;
        }

        Statement stmt = null;
        Connection con=null;
        try {
             con = DriverManager.getConnection (
                URL,
                username,
                password);
             stmt = con.createStatement();
        } catch (Exception e) {
            System.err.println("problems connecting to "+URL);
        }

        try {
            // execute SQL commands to create table, insert data
            for (int i=0; i<SQL.length; i++) {
                stmt.execute(SQL[i]);
            }
            con.close();
        } catch (Exception e) {
            System.err.println("problems with SQL sent to "+URL+
                ": "+e.getMessage());
        }

    }

        
        
    }


В винде посредством ODBC Data Sourse Adminstrator на вкладке User Data Sourse добавил драйвер Microsof Text Driver (*.txt, *.csv)  прописал путь к базе (в моём случае к текстовому файлу).

затем запускаю приложении и компилятор выдаёт ошибку:

Цитата

problems with SQL sent to jdbc:odbc:CafeJolt: [Microsoft][ODBC Text Driver] Cannot modify the design of table 'JoltData'.  It is in a read-only database.



понять не могу почему она только read-only.
В чём проблемы в коде или в ODBC драйвере? 
Что я мог сделать не правильно?

PM MAIL   Вверх
Slavca
Дата 7.10.2006, 07:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 17.2.2005
Где: Новосибирск

Репутация: 1
Всего: 5



Надо обратить внимание на:
Цитата

Cannot modify the design

не может выполниться
Код

create table JoltData (
            programmer varchar (32),
            day varchar (3),
            cups integer);


Создание структуры можно выполнить там же, где создаешь ODBC Data Source.
"Параметры" - Определить формат...
Там добавляешь столбцы (имя, тип и т.д.)

И не забывай закрывать statement и connection после использования.

Это сообщение отредактировал(а) Slavca - 7.10.2006, 07:25
PM ICQ   Вверх
3x3
  Дата 7.10.2006, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 261
Регистрация: 17.9.2006

Репутация: 1
Всего: 8



Цитата(Slavca @ 7.10.2006,  07:16)
Надо обратить внимание на:
Цитата

Cannot modify the design

не может выполниться
Код

create table JoltData (
            programmer varchar (32),
            day varchar (3),
            cups integer);


Создание структуры можно выполнить там же, где создаешь ODBC Data Source.
"Параметры" - Определить формат...
Там добавляешь столбцы (имя, тип и т.д.)

И не забывай закрывать statement и connection после использования.

Я не понял, что вы написали выше, но, если вы имели в виду, что для того, что бы это заработало следует выражение "create table JoltData (..." заменить выражением "create table JoltData.txt (...", то вы были совершенно правы.


--------------------
Зачем платить больше,
когда можно заплатить дважды?
PM   Вверх
lw_
Дата 7.10.2006, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 6.10.2006

Репутация: нет
Всего: нет



Цитата

Я не понял, что вы написали выше, но, если вы имели в виду, что для того, что бы это заработало следует выражение "create table JoltData (..." заменить выражением "create table JoltData.txt (...", то вы были совершенно правы. 


сделал так всё равно не помоголо, теперь выбрасывает с:

Цитата

problems with SQL sent to jdbc:odbc:CafeJolt: [Microsoft][ODBC Text Driver] Text file specification field separator matches decimal separator or text delimiter.


Попробывал в ODBC Data Sourse Adminstrator сразу задать колонки, определил тип и название, тоже не помоголо.

вроде всё делаю по руководству:загрузил JDBC-ODBC мост, соединился с источником данных, посылаю инструкции SQL, но почему  они не выполняются  smile 
PM MAIL   Вверх
3x3
Дата 7.10.2006, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 261
Регистрация: 17.9.2006

Репутация: 1
Всего: 8



Цитата(lw_ @ 7.10.2006,  19:51)
Цитата

Я не понял, что вы написали выше, но, если вы имели в виду, что для того, что бы это заработало следует выражение "create table JoltData (..." заменить выражением "create table JoltData.txt (...", то вы были совершенно правы. 


сделал так всё равно не помоголо, теперь выбрасывает с:

Цитата

problems with SQL sent to jdbc:odbc:CafeJolt: [Microsoft][ODBC Text Driver] Text file specification field separator matches decimal separator or text delimiter.


Попробывал в ODBC Data Sourse Adminstrator сразу задать колонки, определил тип и название, тоже не помоголо.

вроде всё делаю по руководству:загрузил JDBC-ODBC мост, соединился с источником данных, посылаю инструкции SQL, но почему  они не выполняются  smile

Не обманывайте меня, как это не помогло, когда ошибка исчезла?
Теперь идите и меняйте Start > Settings > Control Panel > Regional Options
> Numbers tab > Decimal Symbol на точку заместо запятой.


--------------------
Зачем платить больше,
когда можно заплатить дважды?
PM   Вверх
lw_
Дата 8.10.2006, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 6.10.2006

Репутация: нет
Всего: нет



Цитата

Не обманывайте меня, как это не помогло, когда ошибка исчезла?


ни как не хотел ввести Вас в заблуждение)), просто не так выразился. Имел ввиду что сам факт ошибки не изчез.

Ваши советы:

Цитата

выражение "create table JoltData (..." заменить выражением "create table JoltData.txt (...", то вы были совершенно правы


и 
Цитата

Теперь идите и меняйте Start > Settings > Control Panel > Regional Options
> Numbers tab > Decimal Symbol на точку заместо запятой. 


мне почти помогли, ну т.е на 99,999999% smile  За что хочу Вам выразить свою благодарность smile 

только вместо Start > Settings > Control Panel > Regional Options
> Numbers tab > Decimal Symbol надо было зайти в Start > Settings > Control Panel > Regional Options
> Currency tab > Decimal Symbol и поменять запятую на точку 


3x3, Спасибоsmile)
  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0494 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.