powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Поле Мемо через ODBC
18 сообщений из 18, страница 1 из 1
Поле Мемо через ODBC
    #33295523
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Подскажите пожалуйста, как получить данные из поля Мемо, при использовании ODBC.
Заранее спасибо.
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33295595
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажи, пожалуйста, как ты получаешь данные из строкового поля.

И уточни поле МЕМО текстовое или бинарное?
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33295876
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получаю я его из объекта класса CRecordset, с помощью функции GetFieldValue. Она возвращает объект типа вариант, вот из него то и хочу получить Мемо. Если есть какой другой путь (а он есть, я это знаю), то подскажите. А вот с чем едят бинарное и текстовое поле я не знаю. У себя использую текстовое, но с удовольствием ознакомлюсь и с работой бинарного.
Спасибо, что откликнулись, просто извелся
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33295975
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. Visual C++ и MFC

Мемо поле бывает текстового формата, а бывает бинарного. Раз не знаешь, какое у тебя, значит текстовое. Тогда ты можешь использовать тот вариант функции GetFieldValue, который записывает результат в String и не морочиться с CDBVariant.
Ну а достать CString из CDBVariant легко: CDBVariant::m_pstring.

Другой (наверно он предпочтительнее) путь получения данных из CRecordset состоит в привязке членов класса к колонкам таблиц/запросов в функции DoFieldExchange класса, порождённого от CRecordset. Объяснять это тут бессмысленно и беспощадно, см. MSDN, к тому же такую привязку поддерживает ClassWizard.

Поле мемо текстовое привязывается так же, как строковое, но с указанием максимальной длины строки (ф-ция RFX_Text). Мемо бинарное функцией RFX_Binary.
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33296112
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, извините, конечно VС++ и MFC.
Вот как раз вариант с получением из GetFieldValue строки, выдает мне набор из квадратиков и черточек.
Кстати забыл упомянуть в настройках я поставил поддержку Unicode символов.

Когда же я делаю все через мастер, то все отображается просто отлично, но вот в том то и дело, я не хочу использовать мастер.
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33296230
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поддержку Unicode символов в настройках проекта, т.е. #define _UNICODE?
Вроде по тексту и в RFX_Text, и в GetFieldValue Unicode поддерживается...

я не хочу использовать мастер
Именно мастер или DoFieldExchange?
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33296310
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А разве можно использовать DoFieldExchange без мастера. У меня не получается. Когда хочу добавить новую переменную для нового поля, то у меня громаднейшая ошибка!
Поддержку Юникода я сделал в свойствах проекта. А как можно использовать, то что вы написали? И в чем разница?
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33296339
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoFieldExchange без мастера использовать можно и нужно! И вообще ClassWizard must die! (шутка, конечно, но я им уже много лет как перестал пользоваться вообще).

Когда хочу добавить новую переменную для нового поля, то у меня громаднейшая ошибка!
Что за ошибка?

А как можно использовать, то что вы написали? И в чем разница?
Не понял, о чём это.
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33296372
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он дает ошибку отладки Debbug Assertion Failed. И соответсвтенно показывает строку.

А спрашивал я о Unicod.
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33296383
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно примерчик функции DoFieldExchange.
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33296435
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он дает ошибку отладки Debbug Assertion Failed. И соответсвтенно показывает строку.
_Какую_ строку? Эту, что ли?
Код: plaintext
ASSERT((int)m_nFields == m_nFieldsBound);
(строки, которые упоминаются в сообщении на форуме, лучше приводить сразу)

Про Unicode я ничего не говорил.

А "Debug Assertion Failed" вовсе и не "громаднейшая ошибка". Надо жать "Повторить" и оно покажет, что ему не нравится.
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33296554
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASSERT(m_nFields <= m_prs->m_nFields); Вот такая у меня ошибка.
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33296607
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну то есть именна та, которую я и предполагал.

При добавлении поля надо соответственно увеличивать m_nFields (см. MSDN). Когда поле добавляет ClassWizard, он делает это автоматически.
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33296654
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно все таки кодик, как увеличивать это поле. С MSDN у меня проблемы, а нужно срочно. Не сочтите за труд. Заранее спасибо.
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33296731
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Издеваешься?

Код: plaintext
m_nFields++;
(в конструкторе, для каждого поля, добавленного вручную)
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33296773
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы и рад, да вот только тут плакать нужно. Буду сидеть рабираться. Значит нужно каждое поле делать классом. А когда должны вызываться эти конструкторы?
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33296807
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит нужно каждое поле делать классом. А когда должны вызываться эти конструкторы?

Гм... и где берут такую траву?

Или вы не знаете, что такое класс и конструктор, или я вас не понимаю.
В первом случае помочь не могу, во втором пока тоже.
...
Рейтинг: 0 / 0
Поле Мемо через ODBC
    #33298952
Homosum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо вам большое. С помощью ваших советов, я разобрался в интересующем меня вопросе. Буду рад с вами пообщаться и поучиться.
А в благодарность я поделюсь, где берут такую траву. Нужно только поработать часов 16 подряд, высидеть "театральное представление" в университете от завкафедры и декана, а потом попробовать еще разобраться в новой для тебя технологии, так такие глюки пойдут:)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Поле Мемо через ODBC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]