|
|
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
Вызываю процедуру в базе(ASA) с помошью sybase central - резалт сет нормально возвращаеться. Вызываю из кода, SQLFetch() говорит SQL_NO_DATA. В может быть проблемма? Код следующий: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Причем SQLExecute успешно исполняться, возвращает SQL_SUCCESS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 09:43 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
Возможно проблема в типе ResourceName Попробуй wchar_t*. Кстати, ты в каком режиме компилишь, в Use Multi-Byte Character Set или в Unicode ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 10:19 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
Use Multi-Byte Character Set ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 11:14 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
_БалтикаПопробуй wchar_t*. Не помогло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 11:36 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
Не посмотрел сразу... Во-первых, когда связываешь параметр нужно передавать не ResourceName , а &ResourceName Во-вторых зачем нужно вот это??? Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 11:40 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
И вообще, чтобы говорить более конкретно, хотелось бы посмотреть на исходник хранимой процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 11:48 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
_БалтикаНе посмотрел сразу... Во-первых, когда связываешь параметр нужно передавать не ResourceName , а &ResourceName Во-вторых зачем нужно вот это??? Код: plaintext 1. 2. 3. SQLBindParameters() я биндил переменные в процедуру на вход(так знаки ? есть) SQLBindCol() биндит переменные с резалт сетом. Т.е. например, вернулся резалт сет на две колонки. Я вызываю дважды SQLBindCol(), что бы после исполнения SQLFetch() первая строка записалась в эти переменные Вот исходник процедуры: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. Как я уже писал, если ее запускать интерактивно из sybase central, она успешно отрабатывает и возвращает резалт сет из двух столбцов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 13:44 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
Ага, теперь понятнее, хотя умных мыслей по-прежнему немного. :) Возможно, sysbase-овский ODBC драйвер воспринимает ResourceName как двухбайтовую строку. Не пробовал вместо SQL_VARCHAR SQL_CHAR? ---------------- А замена ResourceName на &ResourceName не помогла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 14:30 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
Вообщем-то по симптомам похоже, что именно ResourceName неправильно интерпретируется. Попробуй посмотреть в ResourceCol_get что там в ResourceName (закинь в какую-нибудь таблицу например). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 14:44 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
временно замени хранимку на: Код: plaintext 1. 2. 3. а пока на вскидку вижу одну ошибку вот тут: SQLBindParameter(DB.hStmt, 2, SQL_PARAM_INPUT, SQL_C_TCHAR, SQL_VARCHAR, sizeof(ResourceName), 0, ResourceName, 0, 0); последним параметром НАДО посылать указатель на int содеражащий SQL_NTS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 18:21 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
_БалтикаАга, теперь понятнее, хотя умных мыслей по-прежнему немного. :) Возможно, sysbase-овский ODBC драйвер воспринимает ResourceName как двухбайтовую строку. Не пробовал вместо SQL_VARCHAR SQL_CHAR? ---------------- А замена ResourceName на &ResourceName не помогла? Замена SQL_VARCHAR на SQL_CHAR не помогла. Замена ResourceName на &ResourceName тоже. _БалтикаВообщем-то по симптомам похоже, что именно ResourceName неправильно интерпретируется. Попробуй посмотреть в ResourceCol_get что там в ResourceName (закинь в какую-нибудь таблицу например). Сделал. Там лежит именно то, что я и передал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 18:25 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
White Owl а пока на вскидку вижу одну ошибку вот тут: SQLBindParameter(DB.hStmt, 2, SQL_PARAM_INPUT, SQL_C_TCHAR, SQL_VARCHAR, sizeof(ResourceName), 0, ResourceName, 0, 0); последним параметром НАДО посылать указатель на int содеражащий SQL_NTS Сделал, не помогло. Сделал так: Код: plaintext 1. White Owlвременно замени хранимку на: Код: plaintext 1. 2. 3. Сделал. В окне сообщений сервера следующее: 2005-12-16 22:04:44.107000 workresult=-5 v_ColResourceName=CustomerListView Так что получаеться параметры передались верно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 19:08 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
v_ColResourceName=CustomerListView потому что значение Код: plaintext сменил на Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 19:10 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 22:48 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
Еще одна странная мысль: я напарывался на кривую работу с OUTPUT параметрами через ODBC. Попробуй убрать его вообще... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 23:45 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
А впрочем, вот. Набросал на скорую руку. Работает без проблем (ну разве что OUTUT параметр не возвращается :): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 23:51 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
Вроде все также. Однако все равно не работает. Может проблема где то в процедуре зарыта? В процедуре вставил такой код: [SRC vatcomsql]INSERT INTO "rs"."temporary"("Variable") VALUES (v_ColResourceName);[/src]В таблице значение появляеться. В чем же еще может быть проблема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2005, 12:30 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
White OwlРаботает без проблем (ну разве что OUTUT параметр не возвращается :): А почему не возвращаеться? Что то не так прописано(вроде все правильно) или это глюк ODBC? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2005, 20:46 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
Eugene7 White OwlРаботает без проблем (ну разве что OUTUT параметр не возвращается :): А почему не возвращаеться? Что то не так прописано(вроде все правильно) или это глюк ODBC? Чтобы возвратился SQLGetData надо вызвать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 08:07 |
|
||
|
Не возвращается ResultSet
|
|||
|---|---|---|---|
|
#18+
_Балтика Eugene7 White OwlРаботает без проблем (ну разве что OUTUT параметр не возвращается :): А почему не возвращаеться? Что то не так прописано(вроде все правильно) или это глюк ODBC? Чтобы возвратился SQLGetData надо вызвать Э? SQLGetData() работает с резалтсетом, а не с параметрами. Впрочем... вон, тестовый пример лежит открыто, если сможешь подправить его чтобы значение в SQLProcReturn прочиталось правильно - я буду очень благодарен :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2005, 20:12 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33441715&tid=2032278]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 452ms |

| 0 / 0 |
