|
|
|
Параметры в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Пытаюсь написать хранимую процедуру на С, и мне надо передать в неё целочисленный параметр. Но функция srv_paramtype всегда выдаёт fals. Ежели подаю число как строку, то она намано показывает SRVVARCHAR. И что же делать ? Мне надо шоб параметр был именно целочисленный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2002, 09:11:44 |
|
||
|
Параметры в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
srv_paramtype оставлена только для обратной совместимости и следует использовать вместо нее srv_paraminfo. Не знаю, может ли это быть причиной неправильного отображения, или это ошибка в вашем коде. Посмотрите среди стандартных примеров xp_param, у меня он отлично показывает и строковый тип и целочисленный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2002, 11:55:31 |
|
||
|
Параметры в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Может сможешь и с этим помочь - после запроса, пытаюсь получить значение поля DBINT Mac_key; Mac_key = *((DBINT*)dbdata(dbproc2, 1)); и подставляю его в другой запрос dbfcmd(dbproc, "select * from ... where key_id=%ld",Mac_key); Запрос не возвращает ни одной записи (((. Когда вставляю значение в текст запроса вручную - всё O'k ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2002, 13:07:49 |
|
||
|
Параметры в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Пример ваять лень, но навскидку могу предположить, что key_id=%ld - это фигня какая-то, потому что в BOL в описании dbfcmd нет %ld. Может, ты %d имел в виду? Ну и совсем уж наивное предложение - в отладчике посмотри, чему равно Mac_key непосредственно перед выполнением dbfcmd. Действительно ли тому, что ты ожидаешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2002, 13:38:59 |
|
||
|
Параметры в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Я и %d пробовал - одинаково ((. Создал консольное приложение и посмотрел... Mac_key = *((DBINT*)dbdata(dbproc2, 1)); После этого в Mac_key помещается какое-то число, неизвестно откуда взятое и на протяжении перебора записей оно не меняется (((. В этом вся затыка. Естественно, что потом другие запросы не работают. Вобщем, вместо значений полей, в переменные помещается какая-то ерунда (((. Я уже всё перепробовал, хелп весь перечитал раз 30 ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2002, 14:29:35 |
|
||
|
Параметры в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
dbdata - это что, XP ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2002, 14:33:38 |
|
||
|
Параметры в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Приветствую Вы уверены в том, что предшествующий вызову dbdata(...) код работает правильно? Например, проверяется ли результат работы dbsqlexec, dbresults? Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2002, 14:47:37 |
|
||
|
Параметры в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Да, всё нормально. И количество записей совпадает... Но я кажется разобрался что к чему. ruki.sys забыл подключить (((. Я не посмотрел, что поле имеет тип NUMERIC. И если DBINT не что иное как int, то DBNUMERIC - структура ))). И естественно мне в Mac_key прога честно записывала значение первого поля этой структуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2002, 14:56:36 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32043910&tid=1821063]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
64ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 393ms |

| 0 / 0 |
