Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывести результат вложенной процедуры 
V
    Опции темы
Antony41
Дата 22.10.2013, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Блин не фига не понимаю как можно вывести в DBGRID?
вот вложеная процедура, писал сам так что не пинайте сильно
Код

create or alter procedure FUNC_SEARCH_IN_GROUP (
    IGROUP_ID integer,
    ISEARCH varchar(30))
returns (
    OFIO varchar(50),
    OGROUP_TITLE varchar(100),
    OTELS varchar(100),
    OADRESES varchar(100),
    OEMAILS varchar(100),
    OATTACHMETS varchar(1000),
    OSUBINFO varchar(3000))
as
declare variable PFIO varchar(100);
declare variable PCONTACT_ID varchar(100);
declare variable PGROUP_TITLE varchar(100);
declare variable PGROUP_ID integer;
begin
  if (igroup_id = 0) then
    begin
      for select contacts.fio, contacts.id, contacts.groups_id
          from contacts where (contacts.fio containing :isearch)
          into :pfio, :pcontact_id, :pgroup_id
      do
      begin
        ofio = :pfio;
        if (exists(select groups.title from groups where groups.id = :pgroup_id)) then
           begin
             for select groups.title from groups where (groups.id = :pgroup_id)
                 into :pgroup_title
             do
             begin
               ogroup_title = :pgroup_title;
             end
           end
           else
           begin
             ogroup_title = 'none';
           end
        execute procedure func_show_phones_contact_by_id(:pcontact_id) returning_values otels;
        otels = iif(otels is null, '', otels);
        execute procedure func_show_adreses_contact_by_id(:pcontact_id) returning_values oadreses;
        oadreses = iif(oadreses is null, '', oadreses);
        execute procedure func_show_emails_contact_by_id(:pcontact_id) returning_values oemails;
        oemails = iif(oemails is null, '', oemails);
        execute procedure func_show_attach_contact_by_id(:pcontact_id) returning_values oattachmets;
        oattachmets = iif(oattachmets is null, '', oattachmets);
        execute procedure func_show_subinfo_contact_by_id(:pcontact_id) returning_values osubinfo;
        osubinfo = iif(osubinfo is null, '', osubinfo);
        suspend;
      end
    end
    else
    if (:igroup_id = 1) then
    begin
      for select contacts.fio, contacts.id, contacts.groups_id
          from contacts where (contacts.fio containing :isearch)
          into :pfio, :pcontact_id, :pgroup_id
      do
      begin
        if (not exists(select groups.id from groups where (groups.id = :pgroup_id))) then
          begin
            ofio = :pfio;
            ogroup_title = ('none');
            execute procedure func_show_phones_contact_by_id(:pcontact_id) returning_values otels;
            otels = iif(otels is null, '', otels);
            execute procedure func_show_adreses_contact_by_id(:pcontact_id) returning_values oadreses;
            oadreses = iif(oadreses is null, '', oadreses);
            execute procedure func_show_emails_contact_by_id(:pcontact_id) returning_values oemails;
            oemails = iif(oemails is null, '', oemails);
            execute procedure func_show_attach_contact_by_id(:pcontact_id) returning_values oattachmets;
            oattachmets = iif(oattachmets is null, '', oattachmets);
            execute procedure func_show_subinfo_contact_by_id(:pcontact_id) returning_values osubinfo;
            osubinfo = iif(osubinfo is null, '', osubinfo);
            suspend;
          end
      end
    end
    else
    if (igroup_id > 1) then
    begin
      for select contacts.fio, contacts.id, groups.title
          from contacts, groups where ((contacts.fio containing :isearch)
          and (contacts.groups_id = :igroup_id) and (groups.id = :igroup_id))
          into :pfio, :pcontact_id, :pgroup_title
      do
      begin
        ofio = :pfio;
        execute procedure func_show_phones_contact_by_id(:pcontact_id) returning_values otels;
        otels = iif(otels is null, '', otels);
        execute procedure func_show_adreses_contact_by_id(:pcontact_id) returning_values oadreses;
        oadreses = iif(oadreses is null, '', oadreses);
        execute procedure func_show_emails_contact_by_id(:pcontact_id) returning_values oemails;
        oemails = iif(oemails is null, '', oemails);
        execute procedure func_show_attach_contact_by_id(:pcontact_id) returning_values oattachmets;
        oattachmets = iif(oattachmets is null, '', oattachmets);
        execute procedure func_show_subinfo_contact_by_id(:pcontact_id) returning_values osubinfo;
        osubinfo = iif(osubinfo is null, '', osubinfo);
        ogroup_title = pgroup_title;
        suspend;
      end
    end
end

PM MAIL   Вверх
Antony41
Дата 22.10.2013, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



только не говорите что теперь мне придется еще и вручную заполнять DBGrid, StringGrid.
PM MAIL   Вверх
Antony41
Дата 22.10.2013, 19:02 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну вот нашел ответ на свой вопрос нужно было выполнять не execute procedure FUNC_SEARCH_IN_GROUP(0, '') smile 
а вот так select * from FUNC_SEARCH_IN_GROUP(0, '') smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


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

1. Базы данных (Paradox, Oracle и т.п.)

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


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


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

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


 




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


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

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