Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PostgreSQL > Использование Execute


Автор: bax 24.8.2011, 14:54
Народ! Кто-нибуд знает, что надо чтобы запустит динамический запрос?

Код

EXECUTE 'select Col1, Col2, Col3 from Table1 where Сol4=$1' USING 5; 

 
в чем ошибка в этом запросе? 
 Сам запрос 
Код

  select Col1, Col2, Col3 from Table1 where Col4=5

 выпольняется без проблем, возвращает несколько (больше одного) записей.
Но с EXECUTE не получается, что надо сделать?
Заранее Благодарю за ответ


Автор: LSD 24.8.2011, 15:14
У тебя отсутствует INTO.
http://developer.postgresql.org/pgdocs/postgres/plpgsql-statements.html

Автор: bax 24.8.2011, 16:23
Все равно не работает!
Может быть это из версии? у меня 8.1версия
Или EXECUTE работает только внутри функции?
 LSD, EXECUTE можно запустит из PHP как обычный запрос?

Автор: LSD 24.8.2011, 16:51
Тот execute на который я дал ссылку, это команда PL/pgSQL, есть execute который можно выполнить с клиента. Ты про который говоришь?

Автор: bax 24.8.2011, 17:01
про который, со стороны клиента.
мне надо запустит не внутри тело функции

Автор: LSD 25.8.2011, 09:57
А зачем тебе на клиенте вообще нужен execute? Что тебе мешает напрямую выполнить запрос?

Автор: bax 25.8.2011, 10:29
я хочу запустит динамическую запрос со стороны клиента.
у меня запрос должно меняется в зависимости от выбора пользователя
и поэтому мне надо использоват  'EXECUTE SELECT ....'

Автор: LSD 25.8.2011, 10:49
Все запросы от клиента динамические.

Автор: bax 25.8.2011, 11:55
Цитата(LSD @ 25.8.2011,  10:49)
Все запросы от клиента динамические.

LSD, не мог бы показат конкретные примеры?

Автор: LSD 25.8.2011, 12:43
Только на Java.

Автор: bax 25.8.2011, 14:39
да в любом, хот на Java

Автор: LSD 25.8.2011, 14:57
Код

PreparedStatement  ps = connection.prepareStatement("select Col1, Col2, Col3 from Table1 where Col4 = ?");
ps.setInt(1, 5);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
    System.out.println("Col1 " + rs.getString(1) + " Col2 " + rs.getString(2));
}
ps.close();

Автор: bax 25.8.2011, 15:53
не, это не тот! это знает все
я по другому,
ладно, сделаю по другому
все равно спасибо за ответ

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