Evgenii Legotckoi
Evgenii Legotckoi20 листопада 2015 р. 10:23

Qt/C++ - Урок 040. Типи даних у різних базах даних у Qt

У процесі розробки програми під Qt , яка має працювати з базами даних, необхідно враховувати той нюанс, що драйвер Qt для цільової Бази Даних може не підтримувати всі типи даних, які Ви могли закласти у Вашу Базу Даних. Наприклад, один із подібних прикладів, з яким зіткнувся один із читачів сайту, це проблема з відображенням типу даних DECIMAL через QSqlTableModel . У той час як при розробці програми на C++ Builder цей тип даних відмінно відображався у поданні.

А робота проводилася з базою даних MSSQL , для якої використовувався драйвер ODBC . Результати роботи додатків на C++ Builder та на Qt наведені на нижченаведених малюнках. Різниця у вигляді таблиць у тому, що у додатку на Qt відсутні значення уявленні, де тип даних у базі даних було оголошено як DECIMAL .


C++ Builder - Всі колонки заповнені

Додаток на Qt – відсутні значення у колонках з типом даних DECIMAL

Перевіряємо типи даних у документації

При перевірці підтримуваних типів даних на сторінці в офіційної документації знаходимо типи даних, що підтримуються, вибраним драйвером та коригуємо Базу Даних відповідно до типів даних, які підтримуються цим драйвером.

Типи даних ODBC

Тип даних ODBC Опис типу SQL Рекомендований введення (тип даних C++ або Qt)
BIT Логічний BOOL
TINYINT 8 бітове ціле число typedef qint8
SMALLINT 16-розрядне ціле число зі знаком typedef qint16
INTEGER 32-розрядне ціле число зі знаком typedef qint32
BIGINT 64-розрядне ціле число зі знаком typedef qint64
REAL 32-бітовий одинарної точності з плаваючою комою За замовчуванням відображення на QString
FLOAT 64-розрядна подвійна плаваюча кома За замовчуванням відображення на QString
DOUBLE 64-розрядна подвійна плаваюча кома За замовчуванням відображення на QString
CHAR Рядок символів Відображається на QString
VARCHAR Рядок символів Відображається на QString
LONGVARCHAR Рядок символів Відображається на QString
CLOB Символ великого рядкового об'єкта Відображається на QString
DATE Рядок символів Зіставлено з QDate
TIME Час символу, рядок символів Відображається на QTime
TIMESTAMP Час символу, рядок символів Відображається на QDateTime

Підсумок

В результаті тип DECIMAL був просто змінений на тип INTEGER і все злетіло.

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

Коментарі

Only authorized users can post comments.
Please, Log in or Sign up
d
  • dsfs
  • 26 квітня 2024 р. 14:56

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:80бали,
  • Рейтинг балів4
d
  • dsfs
  • 26 квітня 2024 р. 14:45

C++ - Тест 002. Константы

  • Результат:50бали,
  • Рейтинг балів-4
d
  • dsfs
  • 26 квітня 2024 р. 14:35

C++ - Тест 001. Первая программа и типы данных

  • Результат:73бали,
  • Рейтинг балів1
Останні коментарі
k
kmssr09 лютого 2024 р. 05:43
Qt Linux - Урок 001. Автозапуск програми Qt під Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Анатолий Кононенко05 лютого 2024 р. 12:50
Qt WinAPI - Урок 007. Робота з ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
EVA
EVA25 грудня 2023 р. 21:30
Boost - статичне зв&#39;язування в проекті CMake під Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
J
JonnyJo25 грудня 2023 р. 19:38
Boost - статичне зв&#39;язування в проекті CMake під Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
G
Gvozdik19 грудня 2023 р. 08:01
Qt/C++ - Урок 056. Підключення бібліотеки Boost в Qt для компіляторів MinGW і MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Тепер обговоріть на форумі
IscanderChe
IscanderChe30 квітня 2024 р. 14:22
Во Flask рендер шаблона не передаётся в браузер Доброе утро! Имеется вот такой шаблон: <!doctype html><html> <head> <title>{{ title }}</title> <link rel="stylesheet" href="{{ url_…
G
Gar22 квітня 2024 р. 15:46
Clipboard Как скопировать окно целиком в clipb?
DA
Dr Gangil Academics20 квітня 2024 р. 17:45
Unlock Your Aesthetic Potential: Explore MSC in Facial Aesthetics and Cosmetology in India Embark on a transformative journey with an msc in facial aesthetics and cosmetology in india . Delve into the intricate world of beauty and rejuvenation, guided by expert faculty and …
a
a_vlasov14 квітня 2024 р. 16:41
Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
Павел Дорофеев
Павел Дорофеев14 квітня 2024 р. 12:35
QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь

Слідкуйте за нами в соціальних мережах