Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Параметры в хранимой процедуре / 8 сообщений из 8, страница 1 из 1
16.08.2002, 09:11:44
    #32043767
WASP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры в хранимой процедуре
Пытаюсь написать хранимую процедуру на С, и мне надо передать в неё целочисленный параметр. Но функция srv_paramtype всегда выдаёт fals. Ежели подаю число как строку, то она намано показывает SRVVARCHAR. И что же делать ? Мне надо шоб параметр был именно целочисленный.
...
Рейтинг: 0 / 0
16.08.2002, 11:55:31
    #32043834
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры в хранимой процедуре
srv_paramtype оставлена только для обратной совместимости и следует использовать вместо нее srv_paraminfo. Не знаю, может ли это быть причиной неправильного отображения, или это ошибка в вашем коде. Посмотрите среди стандартных примеров xp_param, у меня он отлично показывает и строковый тип и целочисленный.
...
Рейтинг: 0 / 0
16.08.2002, 13:07:49
    #32043877
WASP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры в хранимой процедуре
Может сможешь и с этим помочь - после запроса, пытаюсь получить значение поля
DBINT Mac_key;
Mac_key = *((DBINT*)dbdata(dbproc2, 1));
и подставляю его в другой запрос
dbfcmd(dbproc, "select * from ... where key_id=%ld",Mac_key);

Запрос не возвращает ни одной записи (((. Когда вставляю значение в текст запроса вручную - всё O'k
...
Рейтинг: 0 / 0
16.08.2002, 13:38:59
    #32043885
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры в хранимой процедуре
Пример ваять лень, но навскидку могу предположить, что key_id=%ld - это фигня какая-то, потому что в BOL в описании dbfcmd нет %ld. Может, ты %d имел в виду? Ну и совсем уж наивное предложение - в отладчике посмотри, чему равно Mac_key непосредственно перед выполнением dbfcmd. Действительно ли тому, что ты ожидаешь?
...
Рейтинг: 0 / 0
16.08.2002, 14:29:35
    #32043910
WASP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры в хранимой процедуре
Я и %d пробовал - одинаково ((. Создал консольное приложение и посмотрел...

Mac_key = *((DBINT*)dbdata(dbproc2, 1));
После этого в Mac_key помещается какое-то число, неизвестно откуда взятое и на протяжении перебора записей оно не меняется (((. В этом вся затыка. Естественно, что потом другие запросы не работают. Вобщем, вместо значений полей, в переменные помещается какая-то ерунда (((. Я уже всё перепробовал, хелп весь перечитал раз 30 (((
...
Рейтинг: 0 / 0
16.08.2002, 14:33:38
    #32043915
Rom
Rom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры в хранимой процедуре
dbdata - это что, XP ?
...
Рейтинг: 0 / 0
16.08.2002, 14:47:37
    #32043921
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры в хранимой процедуре
Приветствую

Вы уверены в том, что предшествующий вызову dbdata(...) код работает
правильно? Например, проверяется ли результат работы dbsqlexec, dbresults?

Удачи
...
Рейтинг: 0 / 0
16.08.2002, 14:56:36
    #32043925
WASP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметры в хранимой процедуре
Да, всё нормально. И количество записей совпадает... Но я кажется разобрался что к чему. ruki.sys забыл подключить (((. Я не посмотрел, что поле имеет тип NUMERIC. И если DBINT не что иное как int, то DBNUMERIC - структура ))). И естественно мне в Mac_key прога честно записывала значение первого поля этой структуры
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Параметры в хранимой процедуре / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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