|
|
|
ошибка ODBC в MFC
|
|||
|---|---|---|---|
|
#18+
Привет, есть потребность открывать mdb файл и делать запросы. Как самое простое, выбрал ODBC. Код падает: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 07:08 |
|
||
|
ошибка ODBC в MFC
|
|||
|---|---|---|---|
|
#18+
assert, что число полей = 0. Не хочу нследоваться от CRecordset, т.к. таблиц много, нужен универсальный подход. В чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 07:10 |
|
||
|
ошибка ODBC в MFC
|
|||
|---|---|---|---|
|
#18+
Если кто-то работал с ODBC на MFC (или API), подскажите! В мсдне на эту тему просто муть какая-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 11:04 |
|
||
|
ошибка ODBC в MFC
|
|||
|---|---|---|---|
|
#18+
TopSpace пишет: > Падает на recset.Open(); В его недрах вылетает assert Думаю надо перечислить все поля. Вообще, если не хочешь потрахаца, используй лучше напрямую ODBC. MFC-шные классы эти очень своеобразны. А если хочешь, то смотри в код, что за ассерт, что он подразумевает, ну и соотв. делай, чтобы ему было бы хорошо. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 11:29 |
|
||
|
ошибка ODBC в MFC
|
|||
|---|---|---|---|
|
#18+
2TopSpace А как по-твоему, что этот рекордсет должен выбрать из базы? (какие колонки из каких таблиц) Ладно, отвечу сам: CRecordset-у пофиг, что ты на CDatabase выполнил какой-то SQL. SQL надо передать в CRecordset: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 11:52 |
|
||
|
ошибка ODBC в MFC
|
|||
|---|---|---|---|
|
#18+
Плииин...работает! Спасибо!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 13:23 |
|
||
|
ошибка ODBC в MFC
|
|||
|---|---|---|---|
|
#18+
Возникла другая проблема... или руки кривые, или ODBC - зло...:) Вобщем натравливаю объект класса CRecordset на базу, на выборку запросы работают, а на вставку нет: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 10:57 |
|
||
|
ошибка ODBC в MFC
|
|||
|---|---|---|---|
|
#18+
Рекордсет (CRecordset) да рассчитан на запись данных в таблицу (добавление, изменение). Но пользоваться им надо не так, как ты это делаешь. Нужно привзать переменные класса к соотв. полям (колонкам) таблицы, вызвать AddNew(), присвоить переменным нужные значения и вызвать Update(). Как вариант можно выполнить SQL-выражение на запись с помощью CDatabase (ExecuteSQL()). Вообще больно смотреть на твои мучения, почитай хотя бы описание класса CRecordset и его функций в MSDN. PS: ODBC не зло, но Microsoft объявило его deprecated, поэтому если ты только начинаешь программировать, то посмотри на OLE DB или ADO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 13:01 |
|
||
|
ошибка ODBC в MFC
|
|||
|---|---|---|---|
|
#18+
Да я понимаю все эти фишки про ADO, я с ним работал, и про выведение класса из CRecordset (как ты описал). Тут просто обстоятельства такие.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 13:04 |
|
||
|
ошибка ODBC в MFC
|
|||
|---|---|---|---|
|
#18+
Ой ВэйPS: ODBC не зло, но Microsoft объявило его deprecatedНе распоространяй слухи. ODBC не объявлен deprecated. Deprecated объявлен стандартный мост OLE DB -> ODBC называемый MSDASQL и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 18:45 |
|
||
|
ошибка ODBC в MFC
|
|||
|---|---|---|---|
|
#18+
White OwlНе распространяй слухи. ODBC не объявлен deprecated. Deprecated объявлен стандартный мост OLE DB -> ODBC называемый MSDASQL и все. Видимо, ты прав. Наверно, я невнимательно прочитал и неправильно интерпретировал вот этот абзац: Код: plaintext 1. 2. 3. 4. 5. Слова "Provider" после слова "ODBC" я просто не заметил. Во-первых, конечно, большое спасибо, а то я уже начал готовиться к переделке всего кода на OLE DB. И это радует. С другой стороны, если у меня уже начался маразм, то надо срочно сдавать дела... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 11:22 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34573897&tid=2028670]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
180ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 473ms |

| 0 / 0 |
