powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Процедура + массив (ASE 12.5)
5 сообщений из 5, страница 1 из 1
Процедура + массив (ASE 12.5)
    #36528854
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Подскажите как можно передать массив, например
ar1[x]
ar1[1] = 5
ar1[2] = 10
ar1[3] = 15
ar1[4] = 20
в процедуру? и как его принять в процедуре?
...
Рейтинг: 0 / 0
Процедура + массив (ASE 12.5)
    #36529025
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) формируете строку, где значения разделены запятыми. "1,2,3,4" и передаете ее как varchar
в процедуре распарсываете и загоняете во временную таблицу.
2) динамическим скриптом с клиента создается времянка, которая тут-же и заполняется. Потом вызывается нужный скрипт/хп, который уже использует эту времянку.
...
Рейтинг: 0 / 0
Процедура + массив (ASE 12.5)
    #36529067
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использование переменной имеет ограничения.
Большой массив так не передать.
Распарсивание тоже может оказаться сложным.

Мы практикуем передачу временных таблиц.

Как сделать:
Создаёте процедуру которая читает из временной таблицы (в сессии создания процедуры таблицу необходимо создать, иначе процедура не скомпиллируется)

На клиенте генерите комманду:

создать таблицу
заполнить данными из массива
вызвать процедуру

Полезно будет Ваш вызов в логе прописать, чтобы если что проверить потом процедуру независимо от клиента.

Удачи
...
Рейтинг: 0 / 0
Процедура + массив (ASE 12.5)
    #36529175
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пасиб, понятно
жаль конечно что человеческим способ это не решается...
...
Рейтинг: 0 / 0
Процедура + массив (ASE 12.5)
    #36530184
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Imperous wrote:

> Подскажите как можно передать массив, например
> в процедуру? и как его принять в процедуре?

Никак, параметры процедур и вообще переменные не могут быть
массивами (массивов вообще в TSQL нет).

Так что ищите обходные пути. Самый лучший -- сделать
временную таблицу и процедуру к ней для заполния (добавление
одной строки) и удаления. Потом N раз вызывать эту
процедуру, затем -- основную процедуру. Она уже возмёт
данные из этой временной таблицы.
Вместо временной таблицы можно использовать псевдовременную.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Процедура + массив (ASE 12.5)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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