powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / IBExpert - Как вернуть таблицу через хранимку?
18 сообщений из 18, страница 1 из 1
IBExpert - Как вернуть таблицу через хранимку?
    #36859053
Ришат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал написать хранимку вида:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SET TERM ^ ;

create or alter procedure R_ADM_GET_GROUPS
as
begin
  select first  100  g.id as Val, g.name as Name from groups g

  suspend;
end^

SET TERM ; ^

GRANT EXECUTE ON PROCEDURE R_ADM_GET_GROUPS TO SYSDBA;

Но компилится она не хочет. Подскажите пожалуйста нубику как вернуть таблицу в хранимке и вобще возможно ли такое?
С FB только начал знакомство.

Заранее благодарю :)
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859063
oleg_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859097
Ришат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oleg_m,

Спасибо большое, разобрался...
Но честно говоря это извращение делать курсор для возвращения таблицы, но прикольно :)
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859118
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РишатНо честно говоря это извращение делать курсор для возвращения таблицы, но прикольно :)
ХП на порядок может больше...
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859124
Ришат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
получилось примерно такое:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create or alter procedure R_ADM_GET_GROUPS
returns (
    VAL integer,
    NAME char( 100 ))
as
begin
  for select g.id, trim(g.name)
    from groups g
    into :val, :name
  do begin
    suspend;
  end
end
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859130
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ришат > Но честно говоря это извращение делать курсор для возвращения таблицы, но прикольно :)

Теперь тоже самое, только на русском - с объяснением термина "курсор" в данном случае.

Ришат> получилось примерно такое:

Второй бегин-енд там не нужен. Да и вообще, понятно, что "примерно", но как-то уж совсем примитивно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859131
Ришат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Di_LIne,

В принципе, главное желание уйти от хранения запросов в EXE программы.
Есть идея например хранить их в отдельной таблице и загружать нужный через Хранимку, и выполнять квери уже в клиенте... Может есть и другие варианты, посоветуйте плиз.
Заранее благодарен :)
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859138
Ришат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам,

Я всегда приветствую конструктивную критику, посоветуйте как сделать более элегантно :)
Задача получить таблицу...
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859140
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ришат> В принципе, главное желание уйти от хранения запросов в EXE программы.

Так, к слову - хотелось бы узнать зачем. С примерами - в частности,
зачем избегать "хранения" таких простых запросов в EXE.

Ришат> Есть идея например хранить их в отдельной таблице и загружать
Ришат> нужный через Хранимку, и выполнять квери уже в клиенте...

Загружать не через хранимку, а "напрямую".

Ришат> Может есть и другие варианты, посоветуйте плиз.

С этим вопросом в другой раздел - по ЯП или даже лучше в разделы РИС / Проектирование БД.

Ришат> посоветуйте как сделать более элегантно ... Задача получить таблицу...

Select Field1, Field2, ..., FieldN From Table.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859149
Ришат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам,

Это всего лишь пример, квери будут намного сложнее, но это не суть... суть в том чтобы клиентская программа не падала при изменениях в структуре базы или наборе данных... ваш вариант к сожалению мне не подходит... и при любых изменениях логики нужно перекомпилить проект с новыми изменениями...
в моем же случае квери выглядит так
Код: plaintext
select * from R_ADM_GET_GROUPS

и в общем вернуть он может что угодно... Чего собственно я и добиваюсь... при этом не нужно будет переписывать клиентскую часть...
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859164
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ришат> клиентская программа не падала при изменениях в структуре базы или наборе данных...

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

Ришат> при любых изменениях логики нужно перекомпилить проект с новыми изменениями...

В том-то и дело, что в ХП выносят _логику_, а не все подряд. Не заглядывая в
профиль, можно догадаться, что ты "выходец" (вернее, приходец) с MSSQL.

Повторюсь - с вопросами построения и разработки ИС - в другой раздел.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859177
Kotъ-Begemotъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамВторой бегин-енд там не нужен
Ну нет! Begin - end лишним НЕ БЫВАЕТ! Ибо это как Кольт - пусть лучше будет и окажется ненужным, чем понадобится, а нету! :)
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859181
Ришат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам,

Вы правы :) раньше работал с MS-SQL, теперь вот пытаюсь подружиться в FB,
и для меня многое в нем в новинку, поэтому и приходится задавать дурацкие вопросы.
Ну и на том спасибо :) Всего Вам наилучшего.
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859186
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kotъ-Begemotъ...
...Begin - end лишним НЕ БЫВАЕТ! ...
В мемориз!
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859188
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ришат> Вы правы :) раньше работал с MS-SQL, теперь вот пытаюсь подружиться в FB,

Если опыт работы с MSSQL достаточно большой, то есть некоторое "привыкание"
(это характерно для почти всех СУБД и технологий и почти для всех разработчиков).

Так вот, тут важно не переносить один-в-один опыт и методы работы с одной СУБД
на другую, тем более в данном случае, когда СУБД отличаются достаточно сильно -
это неправильно как в ту, так и в другую сторону. Ну и перед началом экспериментов
не мешало бы ознакомиться с некоторыми азами и вводной - есть читать книги лень
или их нет - прочитай основные вводные статьи на ibase.ru (ссылки на must read для
новичков вроде уже давали - поищи в форуме).

Ришат> и для меня многое в нем в новинку, поэтому и приходится задавать дурацкие вопросы.

Дурацкие вопросы нестрашны, если их немного и заметно развитие. А не так, как
некоторые - за 5 лет на 5%. Чайников тут не пинают, хотя ламеров не жалуют.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859327
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РишатГаджимурадов Рустам,

Это всего лишь пример, квери будут намного сложнее, но это не суть... суть в том чтобы клиентская программа не падала при изменениях в структуре базы или наборе данных... ваш вариант к сожалению мне не подходит... и при любых изменениях логики нужно перекомпилить проект с новыми изменениями...
в моем же случае квери выглядит так
Код: plaintext
select * from R_ADM_GET_GROUPS

и в общем вернуть он может что угодно... Чего собственно я и добиваюсь... при этом не нужно будет переписывать клиентскую часть...Обычно при изменении структуры клиетские запросы продолжают работать. Конечно если изменения не кардинальные. Екзешник кстати тоже можно сделать более гибким. Хранить тексты запросов в реестре или инишке. Только все равно все это не спасет при серьезных изменениях в структуре базы поскольку таким образом решается только вопрос выборки данных. Но ведь есть еще вопрос модификации.
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859442
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stelvicОбычно при изменении структуры клиетские запросы продолжают работать.

Если только их разработчик не использовал SELECT *, что характерно для начинающих.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
IBExpert - Как вернуть таблицу через хранимку?
    #36859853
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, stelvic!
You wrote on Wed, 22 Sep 10 06:30:55 GMT:

stelvic s> Екзешник кстати тоже можно сделать более гибким.
s> Хранить тексты запросов в реестре или инишке.ога.
особенно если это курсовик.

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / IBExpert - Как вернуть таблицу через хранимку?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]