Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите ... / 3 сообщений из 3, страница 1 из 1
15.08.2003, 17:16
    #32237939
Hunter_eea
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ...
Пишу так:
pRefUser = new CRefEditUser;
TabItem.mask = TCIF_PARAM;
TabItem.lParam = (LPARAM)pRefUser;
m_ctrTab.SetItem(0, &TabItem);
VERIFY(pRefUser->Create(CRefEditUser::IDD, &m_ctrTab));
pRefUser->SetWindowPos(NULL, 2, 42, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
pRefUser->ShowWindow(SW_SHOW);
if (m_editType == 2)
{
m_pRS = pMainFrame->m_ptrReferenceUsers;
if(!m_pRS->adoEOF)
{
pRefUser->m_code = m_pRS->Fields->GetItem((_variant_t)"Код")->Value;
pRefUser->m_fio = m_pRS->Fields->GetItem((_variant_t)"ФИО")->Value;
pRefUser->m_user = m_pRS->Fields->GetItem((_variant_t)"Имя")->Value;
UpdateData(TRUE);
AfxMessageBox(_bstr_t(pRefUser->m_code));//Выводин "112", т.е. не пустое значение
}
}
а в самих котнролах не отображает ничего, т.е. значение = NULL
пробовал так:
SetDlgItemText(IDC_USER,_bstr_t(m_pRS->Fields->GetItem((_variant_t)"Имя")->Value));
SetDlgItemText(IDC_FIO,_bstr_t(m_pRS->Fields->GetItem((_variant_t)"ФИО")->Value));
SetDlgItemText(IDC_CODE,_bstr_t(m_pRS->Fields->GetItem((_variant_t)"Код")->Value));

Результат ... тот же
...
Рейтинг: 0 / 0
16.08.2003, 16:26
    #32238272
vdimas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ...
пройдись пошагово.
Выполни промежуточно:

_variant_t v1=pRefUser->m_code = m_pRS->Fields->GetItem(_variant_t(L"Код"))->Value;
и исследуй значение v1 в инспекторе.
Чудес не бывает, ищи причину.

Обрати внимания на мой синтаксис.
...
Рейтинг: 0 / 0
16.08.2003, 20:48
    #32238320
maratka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите ...
а в строках типа -
pRefUser->m_user = m_pRS->Fields->GetItem((_variant_t)"Имя")->Value;
компилер не ругается? типа того что pRefUser->m_user у тебя имеет тип
CString а св-во Value у рекордсета - тип _variant_t (или VARIANT) - а в нем текстовое поле хранится в поле -
m_pRS->Fields->GetItem((_variant_t)"Имя")->Value.bstrVal
(тип VT_BSTR) - если не ошибаюсь.
а все приведения к типу ты возлагаешь на сам компилер. у меня в проге сделано это так-
_variant_t vValue = m_spRS->Fields->Item[_variant_t("name")]->Value;
if (VT_NULL != vValue.vt && VT_EMPTY != vValue.vt)
{
memset(szField, 0, sizeof(szField));
WideCharToMultiByte(CP_ACP, 0, vValue.bstrVal,
SysStringLen(vValue.bstrVal), szField, sizeof(szField), NULL, NULL);
m_strDealer = szField;
}
else
m_strDealer.Empty();
попробуй что-то подобное.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите ... / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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