|
|
|
shupike |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 29.3.2016 Репутация: нет Всего: нет |
День добрый! Пишу вот программку для разбора данных из Excel-файла. Пользуюсь CRecordset, вытаскивает при помощи SQL-запроса данные, определенным образом группируя, ну и затем с данными провожу необходимые манипуляции. Суть проблемы в чем - все это работает только в том случае, если в файле Excel первая же строка - это имена столбцов, например, "date", "IP" и так далее, тогда запрос отлично все забирает:
sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s",sDriver,"1.xls"); TRY { // Открываем базу данных,указывая DSN base.Open(NULL,false,false,sDsn); // Выделяем память под доступ к данным CRecordset recset( &base); sSql = "SELECT IP FROM [Sheet1$] GROUP BY IP"; recset.Open(CRecordset::forwardOnly,sSql,CRecordset::readOnly); while( !recset.IsEOF()) { recset.GetFieldValue("IP",temp2); recset.MoveNext(); } recset.Close(); base.Close(); При этом исходный файл выглядит так: date IP Name 02.02.2016 192.168.0.124 user3 02.02.2016 192.168.0.15 user2 ... 03.02.2016 192.168.0.162 user1 Если же файл отличается от такого шаблона, допустим, первые две строки занимают некое описание, а уже потом идут требуемые столбцы, то ничего не работает. Например, в этом случае: Файл Excel 12 февраля 2016 date IP Name 02.02.2016 192.168.0.124 user3 02.02.2016 192.168.0.15 user2 ... 03.02.2016 192.168.0.162 user1 Вот как заставить CRecordset читать не с первой ячейки-первого столбца, а в заданном диапазоне? То есть как ему задать фокус, образно говоря? Спасибо за ответы |
|||
|
||||
Правила форума "C++: Базы данных" | |
|
Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах. Благодарим за понимание. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Базы данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |