Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Проблема с запросом


Автор: JulT 9.6.2005, 08:44
Всем привет.
Не могу выполнить запрос, сделала так:
selall=con.prepareStatement("select kart.id, kart.ustrojstvo, kart.s_number, kart.inv_number, kart.depart, kart.komnata from kart"+" where kart.ustrojstvo=DELL GX-270 and kart.komnata=1213 and kart.depart=Держфлотінспекція");
И он мне выдает:
Exception in the selektETC():java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near 'GX'.
Не могу понять почему,уже все перепробовала,помогите пожалуйста.
Использую SQL Server7.0,все поля в базе имеют тип varchar

Автор: chief39 9.6.2005, 09:25
Кхе... smile
у тебя такая штука получается....
ты передала строку, да? запрос....
и что видит сервер? а вот что:
Код

select    kart.id,
        kart.ustrojstvo,
        kart.s_number,
        kart.inv_number,
        kart.depart,
        kart.komnata 
from    kart
where    kart.ustrojstvo=DELL GX-270
  and    kart.komnata=1213
  and    kart.depart=Держфлотинспекция

а теперь подумам что не так.... ему ведь, как говоришь, варчар нужен, значит у сервера должно выглядеть вот так:
Код

select    kart.id,
        kart.ustrojstvo,
        kart.s_number,
        kart.inv_number,
        kart.depart,
        kart.komnata 
from    kart
where    kart.ustrojstvo="DELL GX-270"
  and    kart.komnata="1213"
  and    kart.depart="Держфлотинспекция"

Значит надо запихнуть (") в тело запроса. Поскольку Java и сама кавычки воспринимает, надо её предупредить что это не ей а дальше чтоб передала smile
то есть когда надо кавычки - вставляем \"
Итого, попробуй:
Код

 "select    kart.id, kart.ustrojstvo, kart.s_number, kart.inv_number, kart.depart, kart.komnata " +
 "from    kart"+
 "where    kart.ustrojstvo=\"DELL GX-270\"  and    kart.komnata=\"1213\"  and    kart.depart=\"Держфлотинспекция\" "


smile

Автор: JulT 9.6.2005, 10:25
Спасибо большое

Автор: chief39 9.6.2005, 10:43
Заходьте ще smile
Мне и самому тут нравится smile

Автор: batigoal 9.6.2005, 12:08
JulT
А ты уверена, что тебе нужен именно prepareStatement()? Он подразумевает подстановку некоторых параметров, т.е. использование в тексте запроса символов "?" вместо некоторых значений. Или это был просто тестовый пример?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)