
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
10.03.2004, 18:49
|
|||
|---|---|---|---|
|
|||
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
Уважаемые программисты FireBird и Interbase! Могу ли я, используя эту замечательную субд, написать такую хранимую процедуру, чтобы можно было вызвать её через ODBC в виде {call <имя_процедуры>(<список параметров>)} и, при этом, получить результат работы, точно такой же, как если бы это был обычный select? То есть, чтобы процедура возвращала рекордсет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 18:55
|
|||
|---|---|---|---|
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
конечно! и в этом суперволшебство интербейс! в мсскл так нельзя - получается много рекордсетов! просто надо делать select * from storedproc(param1,param2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 18:58
|
|||
|---|---|---|---|
|
|||
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
В MSSQL получается один рекордсет - если поставить в начале процедуры SET NOCOUNT ON. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 18:59
|
|||
|---|---|---|---|
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
не знал ;) сори ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:00
|
|||
|---|---|---|---|
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
Кстати,это "как вызывать", а писать тоже просто - suspend не есть сишный return. Строчку он возвращает, а процедура продолжает работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:00
|
|||
|---|---|---|---|
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
то есть можно сделать много раз fetch из разных курсоров вперемешку - и получится один рекордсет?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:01
|
|||
|---|---|---|---|
|
|||
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
Могу ли я, используя эту замечательную субд... Вах!! Через call - не можешь. А вот просто написать select * from mySP(param1, :param2, ...) - вполне :). В процедуре должен быть SUSPEND, он выталкивает выходные параметры в рекордсет. Сколько раз вызовется - столько строк и будет. Обычно вызывают его в for select... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:07
|
|||
|---|---|---|---|
|
|||
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
То есть, получается, что если я в приложении для MSSQL все запросы сделаю через RPC-вызовы хранимых процедур, то при переезде на FireBird понадобится переписать только сами хранимые процедуры и заменить, например, {call %s} на select * from %s. Где %s - вызов хранимой процедуры. И в процедурах можно будет записать запросы наиболее оптимальным для Firebird и MSSQL образом, а клиент будет полностью независим от базы данных. Только с ораклом он так работать не сможет.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:16
|
|||
|---|---|---|---|
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
кажется, что так - лично я одибиси не использую... может, там методы разные для call и для select - не знаю.. а на мой вопрос ответьте плз... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:21
|
|||
|---|---|---|---|
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
fedd Язное дело ... Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:21
|
|||
|---|---|---|---|
|
|||
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
feddто есть можно сделать много раз fetch из разных курсоров вперемешку - и получится один рекордсет?? А если кол-во колонок в рекордсете разный будет и ти, что получиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:23
|
|||
|---|---|---|---|
|
|||
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
автор то есть можно сделать много раз fetch из разных курсоров вперемешку - и получится один рекордсет?? Это ко мне вопрос? В MSSQL при установке SET NOCOUNT ON может и вернётся много рекордсатов, если процедура будет иметь вид select * from A select * from B select * from C но приложение, работающее через ODBC получит только первый рекордсет (select * from A). А если будет SET NOCOUNT OFF, то приложение, скорее всего, ничего не полуит, поскольку первым рекордсетом будет информация о количестве строк. В хранимых процедурах обычно данные формируются во временных таблицах, а в конце стоит один финальный select "в никуда", который возвращает данные клиенту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:23
|
|||
|---|---|---|---|
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
авторА если кол-во колонок в рекордсете разный будет и ти, что получиться? То что напишешь, то и получится. Выходной рекордсет - формируется так как ты захочешь. Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:25
|
|||
|---|---|---|---|
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
Павел, вот и я про то же! это я и хочу спросить www.fun4me.narod.ru - что будет с mssql при этом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:28
|
|||
|---|---|---|---|
|
|||
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
Если написать в хранимой процедуре команды для возврата многих результатов - то будет много рекордсетов. Разных. Программа скорее всего обработает только один - первый. В QA, например, будут выданы результаты в нескольких таблицах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:31
|
|||
|---|---|---|---|
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
во, пока писал - ответ получил.\r \r я вобще-то его получал уже, но подумал, что если сказать сет нокаунт офф, то не надо будет делать nextrecordset, а все будет в одном рекордсете... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:31
|
|||
|---|---|---|---|
|
|||
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
Но не разу не встречал, где бы это надо было. Зато если внутри хранимки работать как уходно с курсорами и временными таблицами, но данных ЯВНО не возвращать, то при установленной опции SET NOCOUNT ON это не повлияет на количество рекордсетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:33
|
|||
|---|---|---|---|
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
nextRecordset - это ADODB ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:33
|
|||
|---|---|---|---|
|
|||
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
Если сказать SET NOCUUNT OFF - получишь кучу лишних рекордсетов, замучаешься их обрабатывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 19:34
|
|||
|---|---|---|---|
Может тема и повторяется - но могут ли процедуры в FireBird возвращать рекордсеты? |
|||
|
#18+
понял - нокаунт отключает первый бутафорский рекордсет с количеством строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=40&tablet=1&tid=1579062]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
275ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 569ms |

| 0 / 0 |
