Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Базы данных > Другие СУБД
Перезагрузить страницу Использование переменной как поле в таблице
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
X-Cite_Forever X-Cite_Forever вне форума
Member
 
Сообщений: 536
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2006
По умолчанию 15.02.2010, 18:20

В процедуру передаю две переменные.
Одна содержит имя поля, вторая значение.
Мне необходимо в процедуре записать в поле значение.
В данном коде выдается ошибка на строке UPDATE
так как использовать :POLE нельзя, БД думает что :POLE это название поля в таблице.
Код:
for select ID_STUDENTS from students into :ids do
   begin
    if (:pk_list like ('%,'||:ids||',%')) then
     begin
      update students set :POLE = :VALUE where (ID_STUDENTS = :ids);
     end
   end
Ответить с цитированием
  (#2 (permalink)) Старый
avc avc вне форума
Member
 
Сообщений: 118
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.04.2007
По умолчанию 15.02.2010, 19:43

Динамическая генерация текста запроса (execute immediate или что там в вашей субд доступно)
or
куча if'ов

(Имя поля, имя таблицы не могут быть параметрами)
Ответить с цитированием
  (#3 (permalink)) Старый
X-Cite_Forever X-Cite_Forever вне форума
Member
 
Сообщений: 536
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2006
По умолчанию 16.02.2010, 15:56

Кучей if`ов процедура и реализована, а вот про execute immediate что-то слышал. Спасибо буду копать дальше
Ответить с цитированием
  (#4 (permalink)) Старый
X-Cite_Forever X-Cite_Forever вне форума
Member
 
Сообщений: 536
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2006
По умолчанию 16.02.2010, 19:48

При использовании execute immediate 'тут типа оператор' выдает ошибку:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 19, column 15.
immediate.

15 колонка это начало слова immediate
Версия: Firebird 2.0
Что может быть?
Ответить с цитированием
  (#5 (permalink)) Старый
X-Cite_Forever X-Cite_Forever вне форума
Member
 
Сообщений: 536
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2006
По умолчанию 16.02.2010, 21:07

Все. Разобрался. Проблема была в том что на многих сайтах справка по этому оператору шла как использование SQL. А в Firebird немного по другому. Надо использовать EXECUTE STATEMENT
Аналогично вопросы возникли с substring. Синтаксис в SQL-92 и PSQL различается
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заполнить поле в таблице из запроса mico C++ Builder 4 08.11.2010 03:46
кодировка в таблице simsalbim PHP 14 31.03.2007 11:10
Позиционирование в таблице StringGrid Droom Delphi 2 19.10.2006 18:54
Кодировка в таблице v0v41k C++ Builder 6 18.10.2006 18:38
Как сделать обновление в таблице Golik Delphi 2 04.05.2006 17:20
Редактирование записей в таблице eva001 C++ Builder 2 13.04.2006 10:21
Как в С++ Билдере 6 сделать в ДБГриде вычисляэмое поле или поле с подстановкой значен s_vad C++ Builder 3 16.09.2005 17:31
Разделение строки в таблице blur Delphi 5 21.07.2005 15:06
Вывод значения переменной в динамическом поле aqua Flash и ActionScript 2 28.11.2004 17:22
Цветная ячейка в таблице Dimitrii Java 4 13.06.2004 17:08
Выборка данных в таблице в поле TS типа TimeStamp Anonymous C++ Builder 0 25.01.2004 17:03
кол-во записей в таблице Anonymous PHP 1 13.11.2003 11:16



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов