Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 4

Изменить тип данных столбца в SQLite

01.03.2018, 10:45. Показов 3053. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.
В процессе отображения данных из выборки необходимо значения столбца привести к "кило", "мега" и "гига" значениям, т.е. отбросить нули и поработать с плавающей точкой. Алгоритм написан и работает если тип данных столбца не определять совсем или определить типом данных STRING. Значения столбца забиндены (Live Binding) напрямую на Label.
Задача сделать выборку (поиск) из таблицы SQLite. Запрос типа
SQL
1
'select * from  Table where (F1 between 400000 and 3999999) or (F2 between 400000 and 4000000)'
Работает он с типом INTEGER.
Если тип данных столбца установить INTEGER, то ошибка не возникает, но некоторые значения меняются в отображении Label. Например значение "2200000000" становиться "-2094967296".
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.03.2018, 10:45
Ответы с готовыми решениями:

Изменить тип данных столбца Б.д
Добрый вечер. Есть база на аксессе. Есть столбец который по типу данных "дата и время". Необходимо его перевести в "длинные...

Как для созданной таблицы изменить тип столбца
Где можно изменить тип данных таблицы в IBConsole

Изменить тип у столбца в SqLite
Как можно через метод: @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){ } изменить Тип у...

7
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
01.03.2018, 11:00
Цитата Сообщение от CaptainLGA Посмотреть сообщение
INTEGER, то ошибка не возникает, но некоторые значения меняются в отображении Label. Например значение "2200000000" становиться "-2094967296".
почитайте про размер integer
2200000000 немного великовато для него
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.03.2018, 11:21
А тип Int64 там использовать можно?
0
5978 / 4553 / 1095
Регистрация: 29.08.2013
Сообщений: 28,180
Записей в блоге: 3
01.03.2018, 11:32
Вроде есть bigint
Надо смотреть в хелпе, я думаю ТС сам и посмотрит
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.03.2018, 11:37
Нет ни того, на другого, по крайней мере в версии 3
Каждое значение, хранящееся в базе данных SQLite (или обрабатываемое движком), имеет один из следующих классов хранения:

NULL. Пустое значение в таблице базы.
INTEGER. Целочисленное значение, хранящееся в 1, 2, 3, 4, 6 или 8 байтах, в зависимости от величины самого значения.
REAL. Числовое значение с плавающей точкой. Хранится в формате 8-байтного числа IEEE с плавающей точкой.
TEXT. Значение строки текста. Хранится с использованием кодировки базы данных (UTF-8, UTF-16BE или UTF-16LE).
BLOB. Значение бинарных данных, хранящихся точно в том же виде, в каком были введены.
0
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 4
01.03.2018, 12:06  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
Вроде есть bigint
Надо смотреть в хелпе, я думаю ТС сам и посмотрит
Да, есть BIGINT. Но это не понадобилось.
Ошибка найдена.
В общем не нужно задавать принудительно в SQLite тип данных. Он там динамический. То есть можно работать как со строковыми функциями так и с численными.
Выборка была отнесена к ошибочным из-за непопадания части данных. Но проблема не в типах данных, а в неправильном запросе. Дело в том что в выборку не попали значения с F1 меньше заданного диапазона и F2 больше заданного для нее диапазона как и было указано в общем то. А в эталонной выборке с которой сравнивал они были. В общем переделал запрос и все ок.
0
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,411
Записей в блоге: 3
01.03.2018, 12:11
Цитата Сообщение от Puporev Посмотреть сообщение
Нет ни того, на другого, по крайней мере в версии 3
у меня вроде тоже 3, но показывает, что много чего есть...
Миниатюры
Изменить тип данных столбца в SQLite  
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.03.2018, 12:33
D1973, Это я в инете прочитал, а сам я не местный.
http://xbb.uz/db/Tipy-dannyh-v-SQLite-versii-3
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.03.2018, 12:33
Помогаю со студенческими работами здесь

Изменить тип данных столбца, являющегося идентификатором
Здравствуйте! Помогите, пожалуйста, разрулить вот какую проблему: Есть таблица Table, наполненная данными, в ней столбец ID типа...

Изменить тип столбца
Добрый день, помогите, пожалуйста. Есть таблица district, в ней есть столбец nameD типа varchar(30). Мне нужно поменять тип на...

Изменить тип столбца в DataGridView
Снова я. DataGridView заполняется из xml файла. Мне нужно поменять тип одной из колонок. чтобы там отображалась кнопка. Код ...

Изменить тип столбца на автозаполняющийся
Есть таблица с уже кучей записей (почти 3млн). Поле ID сейчас просто Biging. Как сделать его автозаполняющимся?

Изменить тип столбца DataGridView на checkBoxColumn
На форме имеется dataGridView, содержимое которого заполняется из базы MySQL методом: private void Load_Table() { ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru