Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CRecordset проблема - помогите а ? падает 
:(
    Опции темы
qqwertyu
Дата 5.7.2006, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Сделал я в Access запрос и использую его в своем приложении с помощью CRecordset (MFC)
так вот этот запрос захватывает поле memo и если в этом поле текст длинее 256 символов - при вызове CRecordset::Open() - падает без каких либо намеков !
Что делать ?
ЗЫ: DoFieldExchange тут imho ставлю в нем брикпоинт - не заходит ! 
PM MAIL WWW   Вверх
Dart
Дата 6.7.2006, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 26.6.2006
Где: Саратов, РФ

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



А на чем падает? В отладчике смотрел? 
--------------------
ЦитатаЛюблю смотреть, как другие работают
 Дж. К. ДжеромСайт: www.ecosigma.ruПочта: [email protected] 
PM MAIL WWW ICQ   Вверх
qqwertyu
Дата 6.7.2006, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



падает внутри CRecordset::Open :
Код

        // Give derived classes a call before binding
        PreBindFields();

        // Fetch the first row of data
        MoveNext();////// <------------------------------------------------здесь падает !

        // If EOF, then result set empty, so set BOF as well
        m_bBOF = m_bEOF;

Падает в MoveNext ! 
PM MAIL WWW   Вверх
Dart
Дата 6.7.2006, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 26.6.2006
Где: Саратов, РФ

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



А отладчик дальше в MoveNext не пускает?
Тут весь вопрос в чем:
Скорее всего падает либо на попытке привязать данные к твоему буферу (Bind) - это происходит, когда неправильно описаны данные (как в ODBC - не знаю, в OLE DB - IAccessor), либо при попытке получения данных (GetData) - как правило, единственное, на чем может сковырнуться - это на обращении к защищенной памяти или к памяти, которой нет.
Посмотри в окне отладки, не проскальзывают ли у тебя сообщения типа First chance assertion violation - если да, то причина скорее всего в том, что ODBC драйверу не хватает размера буфера под memo поле.
Но лучше бы посмотрел поглубже в отладчик 
--------------------
ЦитатаЛюблю смотреть, как другие работают
 Дж. К. ДжеромСайт: www.ecosigma.ruПочта: [email protected] 
PM MAIL WWW ICQ   Вверх
qqwertyu
Дата 6.7.2006, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В MoveNext - не пускает !
В Ouput трейсит : "Error: field data truncated during data fetch." 
PM MAIL WWW   Вверх
Dart
Дата 7.7.2006, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 26.6.2006
Где: Саратов, РФ

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



Цитата(Dart @  6.7.2006,  11:02 Найти цитируемый пост)
Посмотри в окне отладки, не проскальзывают ли у тебя сообщения типа First chance assertion violation

Если есть, однозначно лезет в память, которой нет. Т.е. неправильно определены размеры переменных.
И у меня большооое сомнение в том, что memo поля можно напрямую привязывать к переменным. Для их обработки обычно используются стримы. (Опять таки может быть в ODBC и можно, а в OLE DB никак низя, только поля фиксированной длины.)
Попробуй посмотреть в этом направлении. 
--------------------
ЦитатаЛюблю смотреть, как другие работают
 Дж. К. ДжеромСайт: www.ecosigma.ruПочта: [email protected] 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


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

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


 




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


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

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