не возвращаются output-параметры из хранимой процедуры
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



не возвращаются output-параметры из хранимой... Expand / Collapse
How can I get output params from stored...
Poll ResultsVotes
1
0%
0
Member Votes: 0, Anonymous Votes: 0. You don't have permission to vote within this poll.
Автор
Сообщение
11.09.2006 14:49
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 28.11.2006 11:20
Сообщ.: 1, Visits: 8
у меня проблема: Обращаюсь к SQL Server Express через ODBC API. Хочу получить данные из хранимой процедуры, причем параметры объявлены, как output. Без них все возвращается просто супер. Также не возвращается результат процедуры, постоянно получаю только 0;
Вот процедура:
//////////////////////////////////////////////////////////////////////////
CREATE PROCEDURE [dbo].[MyProc2]
@counterID int,
@name varchar(100) output
AS
if @counterID<>0
select @name = name from scales where counterID=@counterID
else
select * from scales where counterID=2
return 999
////////////////////////////////////////////////////////////////////////////////////
вот код проги на с++:
char cmd[] = "{? = call MyProc2 ( 0,?)}";
long res[2];
char name[100];
int counterID=1;
SQLBindParameter(hStmt, 1, SQL_PARAM_OUTPUT, SQL_C_LONG,
SQL_INTEGER, 0, 0, ¶m1, 0, &res[0]);
SQLBindParameter(hStmt, 2, SQL_PARAM_OUTPUT, SQL_C_CHAR,
SQL_CHAR, sizeof(name), 0, name, 0,&res[1]);
RETCODE result_code = SQLExecDirect(hStmt,(unsigned char*)cmd,strlen(cmd));
if(SQL_SUCCESS==result_code || SQL_SUCCESS_WITH_INFO==result_code)
{
while ( ( retcode = SQLMoreResults(hStmt) ) != SQL_NO_DATA )
{
printf(name);
}
}
/////////////////////////////////////////////////////////////////
Если передавать 1 или другое число, кроме 0, то ничего не возвращается, если же 0, то все нормально.
Помогите, если кто-нибудь имел такие проблемы, я тут горю работа стоит, начальство напрягает. Перечитал MSDN, на Microsoft-е все перерыл. Везде написано, что все должно работать....... :(
Сообщ. #904166
20.09.2006 14:55


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 27.03.2008 15:26
Сообщ.: 701, Visits: 7 028
char cmd[] = "{? = call MyProc2 ( 0,?)}";

Как-то непонятненько.... Может всё-таки лучше

char cmd[] = "{? 

declare @text as varchar(100)

exec MyProc2  0, @text  out

select @text

}";

Сообщ. #904606
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, Alexey Spirin

Время GMT +3:00, Сейчас 6:18