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() ];

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


Профи
****

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

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


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

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

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

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



Не поняла, как этот вектор заполнять...
Вот массив y будет содержать те значения, которые мне нужны для последующего выбора..

IBQuery2->Open();
int y[100];
int j=0;
for(IBQuery2->First(); !IBQuery2->Eof ; IBQuery2->Next()) {
y[j] = IBQuery2->Fields->FieldByName("CODE_SPEC")->AsInteger;
j++;
}


Объясните пожалуйста, КАК именно в этот вектор записать?
И ещё, Builder ругается на строки

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



Сообщение отредактировано: 18192123 - 25.12.2008 21:39
 Оффлайн  Профиль  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:03
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"