|
|
|
Передача в базу 0
|
|||
|---|---|---|---|
|
#18+
Подскажите плз, вот примерный код(упрощенный): SQLPrepare(hStmt, (SQLCHAR *)szSQL, SQL_NTS); LONG lValue = 0; SQLBindParameter(hStmt, ++iParam, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &lValue, 0, 0); SQLExecute(hStmt); SQLFetch(hStmt); void *ptr; result = SQLGetData(hStmt, 1, SQL_C_TCHAR, ptr, MAX_TEXTLEN, &cb); if (result = SQL_ERROR) { /* Здесь выдаю сообщение об ошибке */ } Если передаю туда(lValue) 0(причем мне надо передать именно 0, а не NULL(пустое значение)), то потом при заборе данных из базы SQLGetData() возвращает SQL_ERROR, и текст ошибки "Invalid descriptor index" Что эта ошибка означает и что ее вызвало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 11:57 |
|
||
|
Передача в базу 0
|
|||
|---|---|---|---|
|
#18+
А ты уверен что у тебя SQLExecute и SQLFetch отработали как надо? Если SQLGetData падает на "Invalid descriptor index" а индекс единичка - значит в резалтсете нету ни одной колонки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 17:43 |
|
||
|
Передача в базу 0
|
|||
|---|---|---|---|
|
#18+
Тогда понятно почему возникает ошибка. У меня ХП в базе принимает на вход 15 параметров, первый параметр определяет поведение процедуры(если 0, то вернуть резалт сет из 1 колонки, если 1 то из 7 колонок). Из всех 15 параметров все char кроме двух. Первого(который определяет поведение) и предпоследнего(скидка). Так вот, если я передаю скидку 0, то у меня мод(первый параметр) туда получаеться передаеться тоже 0(хотя передаю 1) и резалт сет соответственно из 1 колонки. Процедуру оттестировал в интерактив SQL, там все нормально, передаю первый параметр 1 и скидку 0 и резалт сет 7 колонок как и должно быть. Такая проблема только в ODBC. Из-за чего это может быть? (если надо могу привести необходимые исходники) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2006, 09:54 |
|
||
|
Передача в базу 0
|
|||
|---|---|---|---|
|
#18+
Eugene7Так вот, если я передаю скидку 0, то у меня мод(первый параметр) туда получаеться передаеться тоже 0(хотя передаю 1)Значит ищи глюк в привязке параметров. Может там индексы параметров перепутал или не тот буфер использовал, или вообще SQLPrepare забыл :) Попробуй вообще отказаться от привязки параметров - формируй строку запроса как строку и отсылай ее через ExecDirect. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 16:59 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=347&tid=2030988]: |
0ms |
get settings: |
8ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
56ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 355ms |

| 0 / 0 |
