Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021

QSqlDatabase + ODBC + Excel

06.04.2012, 06:00. Показов 3056. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Импортирую данные из Excel через ODBC используя QSqlDatabase. Пока все данные в текстовом виде все импортируется без проблем. Но только стоит в файле с данными назначить для ячеек с датами тип "Дата", то при выборке в query.value(DATE).toString(); оказывается пусто. Может кто сталкивался, с этим можно что либо сделать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2012, 06:00
Ответы с готовыми решениями:

QSqlDatabase and Excel
Вообщем проблема такая. Загружаю файл (Excel *.xls) и хочу получить список Таблиц (Листов Excel) - в кодировку не попадаю. Хорошо...

Excel через ODBC, Как выбрать через Select столбец из файла Excel по букве?
Собственно проблема такая. Надо с помощью команды Select получить данные из столбца файла Excel по букве этого столбца. Вообще суть в том,...

Ошибка ODBC excel
День добрый. ОС Win 10. Access 2016. В базе access ведется база товаров и их цен Приходит запрос (excel файл) - 2 столбца: код...

7
Автор FAQ
 Аватар для Чистый
2733 / 1429 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
06.04.2012, 10:17
а если не назначать ячейке тип Дата нормально выдергивает ? проблема в том что excel дату хранит не как дату а как число кол-во секунд от 01,01,1900 (если память не изменяет) до даты указанной в ячейке. Хотя логически тогда оно должно вытягивать это страшное число..
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
06.04.2012, 10:35  [ТС]
Чистый, Да, текстовые поля без проблем все выдергивает.
Насчет числа я знаю, но если бы я хотя бы это число мог получить, там уже придумал бы как из него дату получить. А тут просто пусто. query.value возвращает QVariant, пробовал этот QVariant сразу через qDebug вывести, он тоже пустой оказался. Получается это либо косяк ODBC драйвера, в чем я сомневаюсь, либо qt такую библиотеку написали. Вот думаю может это где то настраивается....
Есть еще вариант использовать ActiveX, но там другие проблемы еще круче.
0
Автор FAQ
 Аватар для Чистый
2733 / 1429 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
06.04.2012, 10:44
а можешь скинуть мелкий проект, я у себя проверю и какой файл excel используешь ? если 2007 и выше попробуй переконвертить под 2003
1
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
06.04.2012, 12:00  [ТС]
Использую 2003. Хотел тебе сделать тестовый проект и вот тут выяснилось, что все еще веселее....
Вообщем на основании хрен знает какой информации библиотека, при выборке, делает заключение о типе данных в столбце. Если в ячейке тип данных отличается от, типа данных столбца, то она просто выдает пустую строку.
То есть поидее, если в столбце, все ячейки будут типа дата, ну видимо кроме заголовка, то все таки данные вернутся.
Я пробовал назначить всем ячейкам тип Дата, кроме парочки выборочных, и с датой все показала, а текстовые данные проигнорировала.

Отсюда вопрос! Как узнать тип данных в query.value ?

Добавлено через 12 минут
Получается если тип дата, то я должен вытаскивать ее
C++ (Qt)
1
query.value(7).toDate().toString("dd.MM.yyyy");
а если тип строка то
C++ (Qt)
1
query.value(7).toString();
То есть получается, я либо должен два раза считывать каждую из дат и смотреть что мне выдалось, либо как то получить информацию о типе....
0
Автор FAQ
 Аватар для Чистый
2733 / 1429 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
06.04.2012, 12:13
либо в цикле перебирать конвертирование и ждать пока вернется не пустая строка.... мда весело как то
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
06.04.2012, 12:16  [ТС]
Чистый, Походу, если нового ничего не найду, придется так и делать.
0
Автор FAQ
 Аватар для Чистый
2733 / 1429 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
06.04.2012, 12:23
вроде как то можно задать запрос что бы он вернул тебе тип данных конкретного столбца... может в эту сторону покапать ?

Добавлено через 1 минуту
вот тут списко типов данных и их соответсвие друг другу
http://doc.crossplatform.ru/qt... types.html
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.04.2012, 12:23
Помогаю со студенческими работами здесь

Справка по ODBC - Excel Files
Здравствуйте. Подскажите, пожалуйста, книги или ссылки, в которых можно почитать конкретно про ODBC - Excel Files. Конкретный...

ODBC драйвера импорт данных в Excel
Всем доброго времени суток. Описание проблемы. Есть ODBC драйвер для подключения к некой БД. Так вот с помощью этого ODBC драйвера...

Импорт данных в Excel из ODBC драйвера
Всем доброго времени суток. Описание проблемы. Есть ODBC драйвер для подключения к некой БД. Так вот с помощью этого ODBC драйвера...

Импорт данных в Excel из ODBC драйвера
Всем доброго времени суток. Описание проблемы. Есть ODBC драйвер для подключения к некой БД. Так вот с помощью этого ODBC драйвера...

SQL-запрос к Oracle из Excel через ODBC
Люди! Подскажите, pls, как написать макрос, который по данным запроса к базе данных Oracle устанавливал бы значения переменных или ячеек...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru