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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> executeQuery() in Net Beans, что я делаю не так 
:(
    Опции темы
Atiskara
Дата 19.5.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Пишу выполнение запроса из БД по аналогии с тем, что уже есть. Не знаю, где что не дописала, но при выполнении rs.executeQuery возникает исключительная ситуация "The method executeQuery() cannot take arguments on a PreparedStatement or CallableStatement". Кто знает, дайте наводку? Аналогичные модули срабатывают нормально, которые естесстенно не я писала, прога нам досталась в наследство от бывшего сотрудника, и необходимо дописать. С джавой ранее никогда не работала.

Код

public class TopJurPersonsBean implements TopJurPersonsLocal {
    
    public Connection connection = null;
    DBConnectionPool pool;
    Statement pstmt = null;
    ResultSet rs = null;
    
    public TopJurPersonsBean(){
        pool = DBConnectionPool.getInstance();
    } 
    
    public List GetTopJurReport(){
        ArrayList<TopJurPersons> list = new ArrayList<TopJurPersons>();
        TopJurPersons topjur = null;
    
        try{
            connection = pool.getConnection();                                           // конннектшн вроде создается норм
            sql = "SELECT FNCash, NameBranch FROM dbo.Listfdep";
            pstmt = connection.prepareStatement(sql);                              // и тут инициализация вроде как проходит
            rs = pstmt.executeQuery(sql);                      // и отсюда в catch вылетает
            
            while( rs.next() ) {
                ...
            }
            
        }catch(SQLException ex){
            ex.printStackTrace();
            System.out.print(ex.getMessage());               //The method executeQuery() cannot take arguments on a 
                                                                                           //PreparedStatement or CallableStatement.

        }finally{
            try {                
                pstmt.close();
                connection.close();
            } catch(SQLException ex) {
                ex.printStackTrace();
            }
        }
                
        return list;                
    }
}


Это сообщение отредактировал(а) Atiskara - 19.5.2009, 14:52
PM MAIL   Вверх
Данкинг
Дата 19.5.2009, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Попробуй вместо 
Код

pstmt = connection.prepareStatement(sql);   


Написать
Код

Statement pstmt = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);





--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
hamsterKSU
Дата 19.5.2009, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 401
Регистрация: 20.10.2006
Где: Украина, Херсон

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



Цитата(Atiskara @  19.5.2009,  13:52 Найти цитируемый пост)
pstmt = connection.prepareStatement(sql);                              // и тут инициализация вроде как проходит 
           rs = pstmt.executeQuery(sql);                      // и отсюда в catch вылетает


просто делайте 
Код

rs = pstmt.executeQuery();


тело запроса вы уже передали тут:
Код

pstmt = connection.prepareStatement(sql);

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


Шустрый
*


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

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



если используете createStatement();

то надо так
Код

 connection = pool.getConnection();                                           
 sql = "SELECT FNCash, NameBranch FROM dbo.Listfdep";
            pstmt = connection.createStatement();                             
            rs = pstmt.executeQuery(sql);                  
            
            while( rs.next() ) {
                ...
            }


А если  prepareStatement();
то
Код

 connection = pool.getConnection();                                           
 sql = "SELECT FNCash, NameBranch FROM dbo.Listfdep";
            pstmt = connection.prepareStatement(sql);                             
            rs = pstmt.executeQuery();                  
            
            while( rs.next() ) {
                ...
            }

PM MAIL   Вверх
Atiskara
Дата 20.5.2009, 05:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

rs = pstmt.executeQuery(); 

тут компилятор выдает ошибку


сделала так:
Код

            pstmt = connection.createStatement();                             
            rs = pstmt.executeQuery(sql);   


работает  smile . Только вот теперь не пойму, почему же аналогичные методы в других классах прекрасно работают с prepareStatement?

Добавлено через 12 минут и 39 секунд
Всем спасибо. Поняла свои ошибки  smile 

Код

PreparedStatement pstmt = null;
...
pstmt = connection.prepareStatement(sql);                             
rs = pstmt.executeQuery(); 


вот так все заработало))
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.0464 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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