Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нарушение прав доступа при чтении, Помогите решить проблему 
:(
    Опции темы
Fantaz1
Дата 17.1.2009, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 16.1.2009

Репутация: нет
Всего: нет



Пишу программу для роботы с базами данных. Скомпилирывал ошибок нема, но при запуске выдает вечно ошибку!
вот скрин http://s2.ipicture.ru/uploads/090117/5RIfE83Pfx.jpg
Кто обьяснит что это такое и из-за чего оно выскакует?? 
Что это за нарушение прав доступа?

Это сообщение отредактировал(а) Fantaz1 - 17.1.2009, 14:38
PM MAIL   Вверх
pan2004
Дата 17.1.2009, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 357
Регистрация: 28.7.2007

Репутация: 1
Всего: 9



Это ошибка 0xc0000005, хорошо знакомая всем программерам на C++. Возникает, когда программа пытается воспользоваться нулевым или "висящим" указателем(это тот, который указывает в никуда). Соответственно, надо найти его и исправить.

Добавлено через 3 минуты и 46 секунд
еще это называется Segmentation fault

Это сообщение отредактировал(а) pan2004 - 17.1.2009, 14:41


--------------------
Qt4/C++ fan
WinXP SP3: MSVC++2005 Qt4.5.1 Boost1.39
сыграем в дурака?
PM MAIL   Вверх
Fantaz1
Дата 17.1.2009, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 16.1.2009

Репутация: нет
Всего: нет



Спасибо, ошибку нашел и исправил.

Но вот появилась еще одна небольшая проблемка, при реализации фильтрации в базе данных.
Пишу программу по примеру с книги, ошибок нема, запускается программа нормально, но при выборе фильтрации, выскакует окно с ошибкой  :
( Ошибка синтаксиса (пропущен оператор) в выражении запроса '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'", "%'" ?? В книге там про эту строчку не слова.
Заранее всем большое спасибо!


PM MAIL   Вверх
xvr
Дата 18.1.2009, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(Fantaz1 @ 17.1.2009,  21:49)
Спасибо, ошибку нашел и исправил.

Но вот появилась еще одна небольшая проблемка, при реализации фильтрации в базе данных.
Пишу программу по примеру с книги, ошибок нема, запускается программа нормально, но при выборе фильтрации, выскакует окно с ошибкой  :
( Ошибка синтаксиса (пропущен оператор) в выражении запроса 'AND Kind_of_sport Like 'бег%' )

Вот текст функции фильтрации:

        m_pSet ->m_strFilter = m_strFilter0 + _T(" AND " + field + " LIKE '" + FilterDlg.m_FilterValue + "%'");


Тут ошибка, должно быть
Код

 m_pSet ->m_strFilter = m_strFilter0 + _T(" AND ") + field + _T(" LIKE '") + FilterDlg.m_FilterValue + _T("%'");
Макрос _T применяется ТОЛЬКО к изображению строк, ни в коем случае не к выражениям

Цитата

Врядли б в книге напечатали неправельный код, но тогда почему не работает?
Ф топку ©

Цитата

И кто может объяснить значение содержимого этих скобок (" AND " + field + " LIKE '" + FilterDlg.m_FilterValue + "%'")
Никак не могу понять, для чего там эти слова "AND", "LIKE'", "%'" ?? 
 Стандартное выражение фильтра в SQL

Цитата

В книге там про эту строчку не слова.
 Почитайте про SQL
PM MAIL   Вверх
mes
Дата 18.1.2009, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(xvr @  18.1.2009,  20:16 Найти цитируемый пост)
Макрос _T применяется ТОЛЬКО к изображению строк, ни в коем случае не к выражениям

почему это вдруг?

Это сообщение отредактировал(а) mes - 18.1.2009, 21:51


--------------------
PM MAIL WWW   Вверх
vinter
Дата 18.1.2009, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата(mes @  18.1.2009,  22:27 Найти цитируемый пост)
почему это вдруг?

_T это конкантенация L и строки в случае юникода, что получится при конкантинации имени переменной и L? 


--------------------
Мой блог
PM MAIL WWW   Вверх
mes
Дата 18.1.2009, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



сорри, не так понял высказывание. Подумал что нельзя применять к строчкам запроса и неправильной считается эта строка :
Цитата(xvr @  18.1.2009,  20:16 Найти цитируемый пост)
 m_pSet ->m_strFilter = m_strFilter0 + _T(" AND ") + field + _T(" LIKE '") + FilterDlg.m_FilterValue + _T("%'");


a оказывается речь об этой :
Цитата(xvr @  18.1.2009,  20:16 Найти цитируемый пост)
       m_pSet ->m_strFilter = m_strFilter0 + _T(" AND " + field + " LIKE '" + FilterDlg.m_FilterValue + "%'");

a ее заметил только сейчас.. еше раз сорри  smile 



--------------------
PM MAIL WWW   Вверх
xvr
Дата 18.1.2009, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Кстати, а что лежит в m_strFilter0? Судя по сообщению об ошибке там пусто, а не должно быть пусто  smile 

Это сообщение отредактировал(а) xvr - 18.1.2009, 22:34
PM MAIL   Вверх
kolobok0
Дата 19.1.2009, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 24.12.2008

Репутация: нет
Всего: 2



Цитата(Fantaz1 @ 17.1.2009,  21:49)
...Никак не могу понять, для чего там эти слова "AND", "LIKE'", "%'" ?? В книге там про эту строчку не слова...

как тут уже прозвучало - курите SQL.
AND - с английского И. Используеться в данном языке как логическая связь. пример..
 "мама мыла раму" И "курила"
LIKE - поиск подстроки.
процент - это то же самое что и звёздочка в файловой системе.т.е. "любые данные"

книгу как уже сказали - в топку. если не разжовано что сие значит.

SQL сильно зависит(носит отпечаток) самого движка БД..так что изучая SQL обратите на это внимание...


удачи ВАм
(круглый)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0778 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.