Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CRecordset - как задать диапазон работы? Как выбрать данные из Excel? 
:(
    Опции темы
shupike
Дата 29.3.2016, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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 читать не с первой ячейки-первого столбца, а в заданном диапазоне? То есть как ему задать фокус, образно говоря? Спасибо за ответы smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

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

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


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

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


 




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


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

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