Почему глючит TopSpeed
От: wasilij  
Дата: 23.01.03 10:11
Оценка:
Здоровеньки булы!!!
Помогите, плз.

Имеется база данных Clarion. Файлы в формате (*.tps).
Я их читаю MFC-ыми классами так:

    CString strConnect;
    CString strDoc;
    strDoc = _T("C:\\File.TPS");
    strConnect.Format(_T("ODBC;DRIVER={TopSpeed ODBC Driver (Read-Only)};DSN='';DBQ=%s"), strDoc);    
    CString strSelect = _T("SELECT ID_N, NAME FROM []");
    TRY
    {
        CDatabase db;
        db.Open(NULL, FALSE, TRUE, strConnect);/*На этой строчке все и случается!*/
        if(db.IsOpen())
        {
            CRecordset rs(&db);
            rs.Open(CRecordset::forwardOnly, strSelect, CRecordset::readOnly);
            if(rs.IsOpen())
            {
                long nRecord = 0;
                while( ! rs.IsEOF() )
                {
                    CDBVariant var;
                    rs.GetFieldValue(_T("ID_N"), var);
                    ASSERT(var.m_dwType == DBVT_LONG);
                    long lValTmp = var.m_lVal;
                    var.Clear();
/*здесь читаю нужную информацию*/
                    rs.MoveNext();
                }
                rs.Close();
            }
        }
        db.Close();
        bSuccess = true;
    }
    CATCH(CDBException, e)
    {
        CString str;
        str.Format(_T("Error number: %d\n\n\nError description:\n%s\n\nMessage from ODBC:\n%s\n"),
            e->m_nRetCode, e->m_strError, e->m_strStateNativeOrigin);
        MessageBox(NULL, str, _T("Database error!"), MB_SETFOREGROUND);
    }
    END_CATCH;


Проблема вот в чем:
— на некоторых компах все прекрасно работает.
— а на некоторых в выделенной строчке выводиться страшное сообщение:


"Runtime error"
Internal error 01: Assertion failed: FALSE
File wslrepor.cpp line 3858
"Ok"   "Cancel"


При нажатии на "Ok" прога вываливается.
При нажатии на "Cancel" выводиться диагностическое сообщение из блока CATCH():


"Database error!"
Error number: -1

Error description:
Specified driver could not be loaded due to system error 998(TopSpeed ODBC Driver (Read-Only)).

Message from ODBC:
State:IM003,Native:160,Origin:

"Ok"


Файла wslrepor.cpp я у себя на компе не нашел
код ошибки GetLastError() == 998 == ERROR_NOACCESS -> Invalid access to memory location.
Только что мне с этим теперь делать???
Заранее спасибо, если конечно кто знает.
Может у кого-то такое было?
Re: Почему глючит TopSpeed
От: ssm Россия  
Дата: 23.01.03 10:15
Оценка:
Здравствуйте, wasilij, Вы писали:

W>Проблема вот в чем:

W>- на некоторых компах все прекрасно работает.
W>- а на некоторых в выделенной строчке выводиться страшное сообщение:

а точно на этих некоторых компах стоит ODBC DRIVER={TopSpeed ODBC Driver (Read-Only)} ?
если стоит, проверь его работоспособность, хотя бы Accessom
Re[2]: Почему глючит TopSpeed
От: wasilij  
Дата: 23.01.03 11:07
Оценка:
В первую очередь спасибо за ответ, думал никто не ответит!

Здравствуйте, ssm, Вы писали:

ssm>Здравствуйте, wasilij, Вы писали:


ssm>а точно на этих некоторых компах стоит ODBC DRIVER={TopSpeed ODBC Driver (Read-Only)} ?

Да стоит.

ssm>если стоит, проверь его работоспособность, хотя бы Accessom

В Access все конвертиться (импортируется) нормально, то есть видимо драйвер работает.
Re[3]: Почему глючит TopSpeed
От: ssm Россия  
Дата: 23.01.03 11:16
Оценка:
Здравствуйте, wasilij, Вы писали:

ssm>>если стоит, проверь его работоспособность, хотя бы Accessom

W>В Access все конвертиться (импортируется) нормально, то есть видимо драйвер работает.

Ты когда делал импорт, использовал "ODBC files" или выбирал файл базы вручную?
Если второе, то сделай первое

попробуй еще так:
1) под админом тачки, может с правами что-то напутано
2) создать явный System DSN и пробывать через него, а не напрямую, используя драйвер
Re[4]: Почему глючит TopSpeed
От: ssm Россия  
Дата: 23.01.03 11:18
Оценка:
Здравствуйте, ssm, Вы писали:

ssm>попробуй еще так:

ssm> 1) под админом тачки, может с правами что-то напутано
ssm> 2) создать явный System DSN и пробывать через него, а не напрямую, используя драйвер
3) сравни версии дров
Re[4]: Почему глючит TopSpeed
От: wasilij  
Дата: 23.01.03 12:17
Оценка:
Здравствуйте, ssm, Вы писали:

ssm>Здравствуйте, wasilij, Вы писали:


ssm>>>если стоит, проверь его работоспособность, хотя бы Accessom

W>>В Access все конвертиться (импортируется) нормально, то есть видимо драйвер работает.

ssm>Ты когда делал импорт, использовал "ODBC files" или выбирал файл базы вручную?

ssm>Если второе, то сделай первое
Делал, тот же резалт

ssm>попробуй еще так:

ssm> 1) под админом тачки, может с правами что-то напутано
Под админо и делаю
ssm> 2) создать явный System DSN и пробывать через него, а не напрямую, используя драйвер
очень уж хочеться напрямую, так как должно работать на машине где нет настроек конкретных DSN, а есть только поставленные драйвера.

Кстати, версия драйверов у меня одна: 2.00.00.00
Re[5]: Почему глючит TopSpeed
От: ssm Россия  
Дата: 23.01.03 12:22
Оценка:
Здравствуйте, wasilij, Вы писали:

ssm>> 2) создать явный System DSN и пробывать через него, а не напрямую, используя драйвер

W>очень уж хочеться напрямую, так как должно работать на машине где нет настроек конкретных DSN, а есть только поставленные драйвера.

я так и непонял, работает ли через явный DSN ???

W>Кстати, версия драйверов у меня одна: 2.00.00.00

сравни версии odbcad32.exe
Re[6]: Почему глючит TopSpeed
От: wasilij  
Дата: 23.01.03 12:40
Оценка:
Здравствуйте, ssm, Вы писали:

ssm>Здравствуйте, wasilij, Вы писали:


ssm>>> 2) создать явный System DSN и пробывать через него, а не напрямую, используя драйвер

W>>очень уж хочеться напрямую, так как должно работать на машине где нет настроек конкретных DSN, а есть только поставленные драйвера.

ssm>я так и непонял, работает ли через явный DSN ???

ща попробую...

W>>Кстати, версия драйверов у меня одна: 2.00.00.00

ssm>сравни версии odbcad32.exe
ух ты, на вкладке About там где работает все файлы одной версии, а там где нет, куча разных версий — может из-за этого? И что теперь делать?
Re[7]: Почему глючит TopSpeed
От: ssm Россия  
Дата: 23.01.03 12:50
Оценка:
Здравствуйте, wasilij, Вы писали:

W>>>Кстати, версия драйверов у меня одна: 2.00.00.00

ssm>>сравни версии odbcad32.exe
W>ух ты, на вкладке About там где работает все файлы одной версии, а там где нет, куча разных версий — может из-за этого? И что теперь делать?

вот он,помоему, где зверть порылся

ну тут что можно сказать...
1. берем отбойный молоток и убиваем им старый ODBC(на глючных компах)
2. берем новый ODBC(мин. версию посмотришь на нормальных компах), и ставим на глючных тачках
все...

можешь попробывать руками изменить отличающиеся файлы, но это как повезет...
а вообще помню дело доходило и до перестановки системы, но это уже в крайнем случае
успехов в этом нелегком деле!
Re[8]: Почему глючит TopSpeed
От: wasilij  
Дата: 23.01.03 13:44
Оценка:
Здравствуйте, ssm, Вы писали:
ssm>ну тут что можно сказать...
ssm>1. берем отбойный молоток и убиваем им старый ODBC(на глючных компах)
..................

И ПОСЛЕДНИЙ ВОПРОС, ААА,
Как удалить odbc23.dll, если он не удаляется даже в safe mode?
Причем на рабочих компах он удаляется (перезаписывается) и в обычном режиме...

Другими словами, что использовать в качестве отбойного молотка?
Re[9]: Почему глючит TopSpeed
От: ssm Россия  
Дата: 23.01.03 14:01
Оценка: 2 (1)
Здравствуйте, wasilij, Вы писали:

W>Как удалить odbc23.dll, если он не удаляется даже в safe mode?


если(win95,98, etc)
удаляешь этот файл в чистом DOS
иначе если(nt, 2000, XP, etc){
если(Файловая сиситема == FAT){
удаляешь этот файл в чистом DOS,
загружаясь с системной дискетки
}
если(Файловая сиситема == NTFS){
ребутишь тачку
до логина конектишься к ней с другой тачки под логином админа
и грохаешь ентот файлик,
если неполучиться, то можешь попробывать навесить последний сервис пак(6а для NT)
}
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.