|
|
|
Проблеммы с курсором
|
|||
|---|---|---|---|
|
#18+
Я с помощью ODBC поключаюсь к базе, делаю запрос(select с возвращением резалт-сета), потом SQLFetch() скролю строку, и с помошью SQLGetData() забираю значения колонок резалт-сета. И так пока SQLFetch() не вернет SQL_NO_DATA. После того как вернет, пытаюсь делать новый запрос в том же STMT. Однако получаю ошибку: Invalid cursor state (error 0) Кто может подсказать что означает эта ошибка(по всей видимости проблемы с курсором) и как ее бороть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 17:09 |
|
||
|
Проблеммы с курсором
|
|||
|---|---|---|---|
|
#18+
по-моему если он однонаправленный и дошел до конца - надо делать SQLFreeStmt() и по новой работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 17:20 |
|
||
|
Проблеммы с курсором
|
|||
|---|---|---|---|
|
#18+
Не надо делать SQLFreeStmt(). Ты ж не хочешь потом заново звать SQLAllocStmt()? :) Надо делать SQLCloseCursor() или SQLCancel(). И после этого можно сразу кидать новый SQLPrepare() или SQLExecDirect() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 18:00 |
|
||
|
Проблеммы с курсором
|
|||
|---|---|---|---|
|
#18+
а разве SQLFreeStmt с опцией SQL_CLOSE не просто закроет курсор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 18:07 |
|
||
|
Проблеммы с курсором
|
|||
|---|---|---|---|
|
#18+
Ой... Действительно! Уже начал забывать ODBC 1.0 :) А! Вспомнил почему я перестал использовать SQLFreeStmt. Если курсор не был открыт, то SQLFreeStmt(hStmt, SQL_CLOSE) просто ничего не будет делать. А SQLCloseCursor(hStmt) на неоткрытом курсоре выругается. Дополнительный контроль за ошибками всегда полезен :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 18:21 |
|
||
|
Проблеммы с курсором
|
|||
|---|---|---|---|
|
#18+
а SQLCloseCursor это что-то более новое? Потому что я что-то не помню его (последний раз на Visual C++ 5.0 что-то делал). По логике то конечно этот вызов лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2006, 18:32 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=350&tid=2031111]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 379ms |

| 0 / 0 |
