![]() |
|
|
![]()
|
|
| AntonTatu |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 12.4.2008 Репутация: нет Всего: нет |
Всем привет
Кок скопировать значение из поля List Controla в переменную типа string (MVSC++2005), пытаюсь вот так, да неправильно что то : string NumStr; //копирую число из поля NumberOfNode, файла Access; NumStr = m_listCtrl.SetItemText(nItem, 0, CA2CT((const char*)_bstr_t(rs.GetField("NumberOfNode")))); int m = atoi(NumStr.c_str()); Доступ к БД получаю, строчка m_listCtrl.SetItemText(nItem, 0, CA2CT((const char*)_bstr_t(rs.GetField("NumberOfNode")))); работает нормально, значения в ListControl выводятся, а как их теперь передать в string ? ЗЫ: еще вопрос, после int m = atoi(NumStr.c_str()); , m получит целое значение ? Спасибо ! |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 6 Всего: 8 |
Используй CString
-------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| AntonTatu |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 12.4.2008 Репутация: нет Всего: нет |
Ну да, после того как я скажу что инфу с ячеек ListControl мне нужно запихать в вектор std::vector < std::vector <int> > MyArray( n, std::vector<int>(m) ); следующий совет будет используй CArray нее.. мне так не нужно, нужно получить string и из него с помощью к примеру "atoi" цифры.... |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 6 Всего: 8 |
Нет, но это:
просто кашмар!!! Что у тебя rs.GetField возвращает я не вижу, ты бы кода побольше написал!!! Это сообщение отредактировал(а) Rapalex - 6.11.2008, 15:09 -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| AntonTatu |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 12.4.2008 Репутация: нет Всего: нет |
Ну так я и не говорю что это супер пупер идеальный вариант, просто как по другому я не знаю... Классы для работы с БД через ADO взяты из ..... ADO_Files.zip поюзай Гугл в нем точная ссылка есть ( я не уверен что на форуме можно линки давать) _variant_t CADORecordset::GetField(const char *pFieldName) { CheckOpen(); try { return m_pRecordset->GetFields()->GetItem(_bstr_t(pFieldName))->GetValue(); } catch (_com_error e) { throw CADORecordsetException(CADORecordsetException::reErrGetField, (const char*)e.Description(), true); } } Есть таблица Access (текстовые поля), нужно перегнать из нее данные в массив (массив массивов числовой) вот код: кнопки по которой считываю таблицу в List Control, void CDlg::ReloadList () { TRY_ADO() CHECK_ADO_CONNECTION() m_listCtrl.DeleteAllItems (); CADORecordset rs; rs.SetConnection (&theApp.m_connection); // rs.SetSQL ("select num_rec, [Name], [Phone], [Description] from tab1 order by [Name]"); rs.SetSQL ("select * from Vershini"); rs.SetOpenMode (false); rs.Open (); int nItem = 0; if (!rs.IsEmpty ()) for (rs.First () ; !rs.IsEoF () ; rs.Next ()) { m_listCtrl.InsertItem(nItem, _T("")); m_listCtrl.SetItemText(nItem, 0, CA2CT((const char*)_bstr_t(rs.GetField("Num")))); m_listCtrl.SetItemText(nItem, 1, CA2CT((const char*)_bstr_t(rs.GetField("Name")))); m_listCtrl.SetItemText(nItem, 2, CA2CT((const char*)_bstr_t(rs.GetField("Phone1")))); m_listCtrl.SetItemText(nItem, 3, CA2CT((const char*)_bstr_t(rs.GetField("Phone2")))); m_listCtrl.SetItemText(nItem, 4, CA2CT((const char*)_bstr_t(rs.GetField("Description")))); m_listCtrl.SetItemData(nItem++, (DWORD)((long)rs.GetField("num_rec"))); } CATCH_ADO() } вся таблица это строковые поля, в лист контрол все попадает нормально, данные отображаются.... теперь мне нужно что бы данные из столбцов : "Num", "Phone1" , "Phone2" записывались в вектор (типа int), соответственно перед записью в вектор инфу нужно конвертнуть в тип int из строкового типа std::vector < std::vector <int> > MyArray( n, std::vector<int>(m) ); Это сообщение отредактировал(а) AntonTatu - 6.11.2008, 16:01 |
||||
|
|||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 6 Всего: 8 |
Пользуйся тегами кода с++
Мне просто интересно как твоё (const char*) дружит с уникод проектом!!! -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
| AntonTatu |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 12.4.2008 Репутация: нет Всего: нет |
да нормально вроде, все выводится без проблем.., сам попробуй, я же ссылку дал... ЗЫ: мне кажется мы ушли от темы...., я не спрашивал о том как мне подключить Access к С++, я спрашивал о другом.... |
|||
|
||||
| Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 6 Всего: 8 |
ТЫ ОЧЁМ
Код оформляй как код а не как текст!!! Если нормально, то -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |