IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Процедура, возвращающая набор значений, C++ Builder
18192123
сообщение 21.12.2008 18:39
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


В базе (на IBExpert) есть хранимая процедура:
Код

ALTER PROCEDURE MED_ACT_AND_SPEC (
    code_act integer)
returns (
    code_spec integer)
as
begin
for
    select "MED_ACT_and_SPEC".code_spec
    from "MED_ACT_and_SPEC"
    where "MED_ACT_and_SPEC".code_act=:code_act
    into :code_spec
do
  suspend;
end

которая возвращает набор из числовых значений..
В Builder по нажатию кнопки вот такой обработчик:

IBStPrMedActSp->ParamByName("CODE_ACT")->AsInteger=codeact;
IBStPrMedActSp->ExecProc();
int i=IBStPrMedActSp->ParamByName("CODE_SPEC")->AsInteger; //здесь хочу добраться до выходных //параметров функции...но так, как есть - я получаю только первое значение...
//а как получить всё, что возвращает процедура, объясните пожалуйста...!


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 25.12.2008 9:52
Сообщение #2


Гость






Лучше записывать результаты в vector, тогда твоя задача сведется к тому, чтобы сгенерировать случайное число в интервале от 0 до количества элементов в векторе:

	std::srand(std::time(0));
std::vector<int> myVector;

// ... Заполнение вектора данными ...

int value = myVector[ rand() % myVector.size() ];

 К началу страницы 
+ Ответить 
Гость
сообщение 25.12.2008 17:07
Сообщение #3


Гость






Цитата(volvo @ 25.12.2008 9:52) *

Лучше записывать результаты в vector, тогда твоя задача сведется к тому, чтобы сгенерировать случайное число в интервале от 0 до количества элементов в векторе:

	std::srand(std::time(0));
std::vector<int> myVector;

// ... Заполнение вектора данными ...

int value = myVector[ rand() % myVector.size() ];



а если результаты, которые нужно будет записывать в vector, не являются непрерывным набором...
т.е например, такой набор - 1,3,18,19...ноль вообще никогда не появится в моём наборе...
Тогда использование vector мне поможет?
 К началу страницы 
+ Ответить 
18192123
сообщение 25.12.2008 17:07
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Цитата(Гость @ 25.12.2008 17:07) *

а если результаты, которые нужно будет записывать в vector, не являются непрерывным набором...
т.е например, такой набор - 1,3,18,19...ноль вообще никогда не появится в моём наборе...
Тогда использование vector мне поможет?

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
18192123   Процедура, возвращающая набор значений   21.12.2008 18:39
volvo   Обычно (по крайней мере при использовании TADOStor...   21.12.2008 22:52
18192123   Обычно (по крайней мере при использовании TADOSto...   22.12.2008 0:45
volvo   Итого, что имеем: у тебя есть хранимая процедура,...   22.12.2008 14:28
18192123   Пусть свой набор значений я получила...Записала ег...   25.12.2008 5:01
volvo   Лучше записывать результаты в vector, тогда твоя з...   25.12.2008 9:52
Гость   Лучше записывать результаты в vector, тогда твоя ...   25.12.2008 17:07
18192123   а если результаты, которые нужно будет записывать...   25.12.2008 17:07
18192123   Лучше записывать результаты в vector, тогда твоя ...   25.12.2008 21:36
volvo   А какая разница, что у тебя хранится в векторе, не...   25.12.2008 18:24
volvo   #include <vector> присутствует? (это по по...   25.12.2008 21:48
18192123   А нужно ли очищать этот вектор, а то у меня в нём ...   25.12.2008 22:55
volvo   Если тебе больше не нужны значения, хранящиеся в в...   25.12.2008 23:04


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.06.2025 2:14
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"