Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Нарушение прав доступа при чтении |
Автор: Fantaz1 17.1.2009, 14:27 |
Пишу программу для роботы с базами данных. Скомпилирывал ошибок нема, но при запуске выдает вечно ошибку! вот скрин http://s2.ipicture.ru/uploads/090117/5RIfE83Pfx.jpg Кто обьяснит что это такое и из-за чего оно выскакует?? Что это за нарушение прав доступа? |
Автор: pan2004 17.1.2009, 14:40 |
Это ошибка 0xc0000005, хорошо знакомая всем программерам на C++. Возникает, когда программа пытается воспользоваться нулевым или "висящим" указателем(это тот, который указывает в никуда). Соответственно, надо найти его и исправить. Добавлено через 3 минуты и 46 секунд еще это называется Segmentation fault |
Автор: Fantaz1 17.1.2009, 21:49 |
Спасибо, ошибку нашел и исправил. Но вот появилась еще одна небольшая проблемка, при реализации фильтрации в базе данных. Пишу программу по примеру с книги, ошибок нема, запускается программа нормально, но при выборе фильтрации, выскакует окно с ошибкой : ( Ошибка синтаксиса (пропущен оператор) в выражении запроса 'AND Kind_of_sport Like 'бег%' ) Вот текст функции фильтрации: void CKyrsDBView::DoFilter(CString field) { CFilterDlg FilterDlg; int res = FilterDlg.DoModal(); if(res == IDOK) { m_pSet ->Close(); m_pSet ->m_strFilter = m_strFilter0 + _T(" AND " + field + " LIKE '" + FilterDlg.m_FilterValue + "%'"); m_pSet ->Open(); UpdateData(FALSE); } } Врядли б в книге напечатали неправельный код, но тогда почему не работает? Объясню как работает: открывается диалог. окно в котором я должен ввести значение ( FilterDlg.m_FilterValue ) по которому программа должна отфильтровать списки по заданному полю ( field ) И кто может объяснить значение содержимого этих скобок (" AND " + field + " LIKE '" + FilterDlg.m_FilterValue + "%'") Никак не могу понять, для чего там эти слова "AND", "LIKE'", "%'" ?? В книге там про эту строчку не слова. Заранее всем большое спасибо! |
Автор: xvr 18.1.2009, 21:16 | ||||||||||
Тут ошибка, должно быть
|
Автор: mes 18.1.2009, 21:27 | ||
почему это вдруг? |
Автор: vinter 18.1.2009, 21:42 |
_T это конкантенация L и строки в случае юникода, что получится при конкантинации имени переменной и L? |
Автор: xvr 18.1.2009, 22:34 |
Кстати, а что лежит в m_strFilter0? Судя по сообщению об ошибке там пусто, а не должно быть пусто ![]() |
Автор: kolobok0 19.1.2009, 16:37 | ||
как тут уже прозвучало - курите SQL. AND - с английского И. Используеться в данном языке как логическая связь. пример.. "мама мыла раму" И "курила" LIKE - поиск подстроки. процент - это то же самое что и звёздочка в файловой системе.т.е. "любые данные" книгу как уже сказали - в топку. если не разжовано что сие значит. SQL сильно зависит(носит отпечаток) самого движка БД..так что изучая SQL обратите на это внимание... удачи ВАм (круглый) |