|
|
|
Чего то с DAO не получается .... какае-то дрянь выскакивает
|
|||
|---|---|---|---|
|
#18+
Пожалуйста, помогите ... на VBA так все было просто ... а на Visual C++ не пашет. Проблема такая мне нужно из VC++ работать c данными БД ... к примеру с файлом KKK.MBD. #include "afxdao.h" main() { CDaoRecordset* cDaoRset; CDaoDatabase cDaoDB; cDaoDB.Open("C:\\KKK.MBD"); } На 3-й строчке выскакивает .... Unhandled exception in DDD.exe (KERNEL32.DLL) 0xE06D7363 Microsoft С++ Exception. И при завершении программы на последок выскакивает: Debug Assertion Failed Program D:\DDD.EXE Line:42 Пробывал я к различным источникам обращатся, к DBF, MDB (2000, 97), XLS ... но дерьмо как выскакивает так и выскакивает. Пожалуйста помогите. Документации то же нет по DAO с MC++, и ADO с MC++ (вместе с примерами естественно). Может кто ссылками поделится .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2004, 11:41 |
|
||
|
Чего то с DAO не получается .... какае-то дрянь выскакивает
|
|||
|---|---|---|---|
|
#18+
Как это документации нет? А MSDN? Может у тебя DAO не установлено? В любом случае надо сделать try и catch(CDaoException* e), посмотреть что за ошибка. Должно стать понятнее :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2004, 12:20 |
|
||
|
Чего то с DAO не получается .... какае-то дрянь выскакивает
|
|||
|---|---|---|---|
|
#18+
или автор Debug Assertion Failed Program D:\DDD.EXE Line:42 пойти дебагом внутрь и посмотреть на каком файле (видимо как раз в afxdao-привязанном) в 42 строке стоит АССЕРТ и на какое условие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2004, 12:34 |
|
||
|
Чего то с DAO не получается .... какае-то дрянь выскакивает
|
|||
|---|---|---|---|
|
#18+
Поставил я catch ... ну она мне выдает .... Unrecognized database format "C:\DDD.MDB" Для 97 MDB она естественно не выдает ничего, но падает как и раньше падала. Падает она в CRTODAT.C в цикле: while ( --pfend >= __onexitbegin ) /* * if current table entry is non-NULL, * call thru it. */ if ( *pfend != NULL ) (**pfend)(); На счет DAO ... она действительно не поддерживает Access 2000, или нужно что то доп. установить что бы она его поддерживала ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2004, 13:46 |
|
||
|
Чего то с DAO не получается .... какае-то дрянь выскакивает
|
|||
|---|---|---|---|
|
#18+
Unrecognized database format "C:\DDD.MDB" Ага, то есть база двухтысячная, а DAO грузится 97е. Для 97 MDB она естественно не выдает ничего, но падает как и раньше падала. Падает на том же операторе Open(), не выдавая сообщений об ошибке? (когда ответишь на этот вопрос, пойдём дальше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2004, 14:36 |
|
||
|
Чего то с DAO не получается .... какае-то дрянь выскакивает
|
|||
|---|---|---|---|
|
#18+
Нет падает она при завершении программы, после команды return 0; Она куда то идет вниз .............. и там уже падает ... при закрытии. Т.е после команды Open все продолжает работать MesagBox ... Как DAO установить для 2000 Access .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2004, 14:54 |
|
||
|
Чего то с DAO не получается .... какае-то дрянь выскакивает
|
|||
|---|---|---|---|
|
#18+
Падать после закрытия программы может из-за инициализации/деинициализации СОМ, её надо в фигурные скобки запихать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2004, 16:37 |
|
||
|
Чего то с DAO не получается .... какае-то дрянь выскакивает
|
|||
|---|---|---|---|
|
#18+
по подробней пожалуйста .... что нужно в фигурные скобки запихать ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2004, 16:41 |
|
||
|
Чего то с DAO не получается .... какае-то дрянь выскакивает
|
|||
|---|---|---|---|
|
#18+
Насчёт DAO и Access2000. Если сначала загрузится 97-е DAO, а именно это происходит в VC6, то загрузить 2000е уже никак нельзя. Поэтому надо попробовать загрузить 2000-е, если оно есть. Для этого надо написать AfxGetModuleState()->m_dwVersion = 0x0601; После этого попытаться открыть базу. Если не получилось, а база двухтысячная, то увы. Если не получилось, а база 97-я, то вернуть AfxGetModuleState()->m_dwVersion = 0x0600; и попробовать открыть ещё раз. Версию базы можно узнать через ODBC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2004, 17:35 |
|
||
|
Чего то с DAO не получается .... какае-то дрянь выскакивает
|
|||
|---|---|---|---|
|
#18+
Извените конечно, мы не сильны но после: AfxGetModuleState()->m_dwVersion = 0x0601; появилось: error C2039: 'm_dwVersion' : is not a member of 'AFX_MODULE_STATE' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2004, 17:49 |
|
||
|
Чего то с DAO не получается .... какае-то дрянь выскакивает
|
|||
|---|---|---|---|
|
#18+
error C2039: 'm_dwVersion' : is not a member of 'AFX_MODULE_STATE' Оно появляется, если проект собран с _AFXDLL Какого типа у вас проект? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2004, 19:07 |
|
||
|
Чего то с DAO не получается .... какае-то дрянь выскакивает
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 08:50 |
|
||
|
Чего то с DAO не получается .... какае-то дрянь выскакивает
|
|||
|---|---|---|---|
|
#18+
А как определить тип проекта ? У меня: Use MFC in Static Library При создании проекта ... я его консольным определил .... по моему здравствуй мир что ли .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 14:08 |
|
||
|
Чего то с DAO не получается .... какае-то дрянь выскакивает
|
|||
|---|---|---|---|
|
#18+
Вставил я CoInitialize(NULL) и CoUninitialize() ... но как падало так и падает void LK (void) { { CoInitialize(NULL); } CDaoRecordset* cDaoRset; CDaoDatabase cDaoDB; try { cDaoDB.Open("C:\\Dispatcher.mdb"); //DSN=Dispatcher_0"); } catch(CDaoException* e) { MessageBox(NULL, e->m_pErrorInfo->m_strDescription,"AptScript",MB_OK); } { CoUninitialize(); } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 14:34 |
|
||
|
Чего то с DAO не получается .... какае-то дрянь выскакивает
|
|||
|---|---|---|---|
|
#18+
Я сгенерировал новый проект Win 32 Console Application - An application that supports MFC и вроди все заработало ...... 1) не падает 2) и строка AfxGetModuleState()->m_dwVersion = 0x0601; ошибок не вызывает 3) и переключила на Access 2000 ... так что вроди все нормально .... спасибо за помощь ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2004, 15:05 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32431692&tid=2035328]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 310ms |

| 0 / 0 |
