Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> pasing error :( 
:(
    Опции темы
DVS83
Дата 10.3.2008, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Пишу запрос в хранимой процедуре (в IBExpert).
При написании запроса на выборку при помощи select возникает ошибка: pasing error;
вод код запроса:
Код

if (par=4) then
     begin
          select * from table
          where name=:name_par;
     end

Подскажите где здесь ошибка?
PM MAIL   Вверх
ksili
Дата 11.3.2008, 06:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

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



Так а IBExpert не говорит ГДЕ именно ошибка?

Добавлено через 1 минуту и 22 секунды
TABLE - это зарезервированное ключевое слово. Его нельзя использовать для имени таблицы


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
DVS83
  Дата 11.3.2008, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

Так а IBExpert не говорит ГДЕ именно ошибка?

привожу скриншот во вложении:
Цитата

b]TABLE [/b]- это зарезервированное ключевое слово. Его нельзя использовать для имени таблицы

я new не дописал  smile 
Посмотрите может я где то в синтаксисе ошибаюсь???

Это сообщение отредактировал(а) DVS83 - 11.3.2008, 19:30

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  pasin_error.jpg 72,49 Kb
PM MAIL   Вверх
ksili
Дата 12.3.2008, 06:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

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



В ХП в Select'е надо дописывать куда это всё выбирается:
Код

          select * from new_table
          where name=:name_par
          into :var1, :var2, ... ;



--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Deniz
Дата 12.3.2008, 07:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

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



Код

if (par=4) then
     begin
          select * from table
          where name=:name_par;
     end
а что вообще предполагается в данном куске?
Тут либо for select ... либо select 1 запись, и все это, как правильно заметил ksili, into :var1, ...


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
DVS83
Дата 12.3.2008, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Deniz @ 12.3.2008,  07:06)
Код

if (par=4) then
     begin
          select * from table
          where name=:name_par;
     end
а что вообще предполагается в данном куске?
Тут либо for select ... либо select 1 запись, и все это, как правильно заметил ksili, into :var1, ...

при помощи этой процедуры я планирую осуществлять поиск по названию фильма (присваивать значение из Edit параметру n_film_par)

:var1, var2... это что?
PM MAIL   Вверх
ksili
Дата 13.3.2008, 06:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

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



Цитата(DVS83 @  13.3.2008,  01:50 Найти цитируемый пост)
:var1, var2... это что? 

Вот гляди, когда ты что-то выбираешь при помощи Query или DataSet, это сохраняется где-то в этих объектах и можно получить эти значения, обратившись к определённым членам объекта (Query->Fields....). А здесь у тебя нету ни Query, ни DataSet. Но где-то же надо сохранять то, что было выбрано... Поэтому для этого используют переменные, объявленные в процедуре (var1, var1 и т.д.). 
Кроме :name_par, :n_film_par тебе надо объявить ещё переменных для результатов выбора (по кол-ву выбираемых полей). Они могут быть выходными или внутренними - без разницы (может и входные можно использовать, я не пробовал). 
И ещё в запросе надо добавить first 1, т.к. могут встретиться 2 фильма с одинаковым названием и произойдёт ошибка:
Код

if (par=4) then
     begin
          select first 1 * from my_table
          where name=:name_par
          into :var1, :var2, :var3, ....;
     end



--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

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


 




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


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

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