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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> задание переменной в процедуре 
:(
    Опции темы
EvoEvo
Дата 15.3.2008, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Никак не могу понять, как в процедуре  задать переменной значение записи из таблицы, при этом нужно еще и выбрать нужную запись из этой таблицы.  И нигде не найти примеров на эту тему smile 
Я думал примерно так, но не работает:

ID = Clients.id_c
    WHERE Clients.N_PLAT = :n_plat_chet;

PM MAIL   Вверх
Akella
Дата 15.3.2008, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Код

select name from table1 where id = 10 into :var_name


Добавлено через 2 минуты и 37 секунд
Код

  for select id from treklama into :NEW_VAR do begin
    update treklama SET treklama.ID_NAPR = treklama.ID_NAPR where treklama.id = :NEW_VAR;




Код

CREATE OR ALTER PROCEDURE ISP_1 
AS
DECLARE VARIABLE NEW_VAR BIGINT;
begin

  for select id from treklama into :NEW_VAR do begin
    update treklama SET treklama.ID_NAPR = treklama.ID_NAPR where treklama.id = :NEW_VAR;

  end
end


Добавлено через 3 минуты и 11 секунд
Код

CREATE OR ALTER PROCEDURE SP_SET_ID2 (
    IN_ID BIGINT,
    IN_ID2 BIGINT)
AS
begin
  update treklama t set t.id2 = :in_id2 where t.id = :in_id;
end


Добавлено через 3 минуты и 32 секунды
Код

CREATE OR ALTER PROCEDURE TVID_IU (
    ID BIGINT,
    NAME VARCHAR(30),
    OLD1_NAME VARCHAR(30),
    SO_EXP INTEGER)
AS
BEGIN
  IF (EXISTS(SELECT ID FROM TVID WHERE (ID = :ID))) THEN
    UPDATE TVID
    SET NAME = :NAME,
        OLD1_NAME = :OLD1_NAME,
        SO_EXP = :SO_EXP
    WHERE (ID = :ID);
  ELSE
    INSERT INTO TVID (
        ID,
        NAME,
        OLD1_NAME,
        SO_EXP)
    VALUES (
        :ID,
        :NAME,
        :OLD1_NAME,
        :SO_EXP);
END


Добавлено через 4 минуты и 44 секунды
Код

  select id_c from Clients where N_PLAT = :n_plat_chet into :ID


Добавлено через 5 минут и 32 секунды
Код

   for select id, name from treklama into :v_in, :v_name do begin ...


Добавлено через 13 минут и 23 секунды
Код

--вот чуть сложнее пример

CREATE OR ALTER PROCEDURE SP_PROTO_PM 
RETURNS (
    V_NAME_OUT CHAR(30),
    V_DELIM_OUT VARCHAR(30),
    V_COUNT_OUT INTEGER)
AS
DECLARE VARIABLE V_TR_COUNT INTEGER = 0;
DECLARE VARIABLE V_NAME VARCHAR(30) CHARACTER SET WIN1251 = '';
DECLARE VARIABLE V_TVID BIGINT;
DECLARE VARIABLE V_ID BIGINT;
begin
   for select tv.id, tv.name from tvid tv INTO :v_tvid, :V_NAME do begin
     V_COUNT_out = 0;
     for select tr.id from treklama tr
     WHERE
       (tr.id_vid = :v_tvid) AND
       (tr.id in (select pm.id from TREKLAMA_EXPORT pm))
     into :v_id do begin

       select result from SP_GET_LEN_ALLTEXT(:v_id) INTO :V_TR_COUNT;
       V_COUNT_out = V_COUNT_out + V_TR_COUNT;

     end--for select CHAR_LENGTH(tr.text) from treklama tr WHERE tr.id_vid = :v_tvid into :V_TR_COUNT do begin
     V_NAME_out  = V_NAME;
     v_delim_out = ' = ';
     suspend;
   end--for select tv.id from tvid tv INTO :v_tvid do begin
end

PM MAIL   Вверх
EvoEvo
Дата 15.3.2008, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ок! все получилось! спасибо!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

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

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

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

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

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

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


 




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


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

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