Russian Qt Forum
Ноябрь 23, 2024, 18:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как получить структуру таблицы SQLite  (Прочитано 9723 раз)
slava_d200
Гость
« : Январь 08, 2013, 00:54 »

Прошу помощи.
Есть ли в QT возможность получения структуры таблицы в SQLite
c перечислениями полей и типов этих полей.
Записан
JayFOX
Гость
« Ответ #1 : Январь 08, 2013, 01:15 »

Код:
QSqlRecord QSqlDatabase::record ( const QString & tablename ) const
Записан
slava_d200
Гость
« Ответ #2 : Январь 18, 2013, 18:45 »

СПС.

А как определить какой длины это поле (если оно строковое)
или если числовое, то длина и кол-во знаков после запятой.

На данны момент интересует работа с SQLite
« Последнее редактирование: Январь 18, 2013, 18:59 от slava_d200 » Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #3 : Январь 18, 2013, 21:16 »

А как определить какой длины это поле (если оно строковое)
или если числовое, то длина и кол-во знаков после запятой.
А справку почитать никак?
Код:
QSqlRecord QSqlDatabase::record ( const QString & tablename ) const
=>
QSqlField QSqlRecord::field ( int index ) const
=>
int QSqlField::length () const
int QSqlField::precision () const

Правда SQLite на такие ограничения плевать хотела.
Записан
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4350



Просмотр профиля
« Ответ #4 : Январь 18, 2013, 21:22 »

Правда SQLite на такие ограничения плевать хотела.
Ага. Она легко пишет строку в числовое поле и дату в строковое. Ведь у нее типы полей декларативные.
Записан
slava_d200
Гость
« Ответ #5 : Январь 18, 2013, 23:02 »

То то и оно что в SQLite я всегда имею тип String
длина = -1
разрядность = -1

вот по этому то и задал вопрос как реально получить эти показатели.
Записан
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4350



Просмотр профиля
« Ответ #6 : Январь 18, 2013, 23:11 »

вот по этому то и задал вопрос как реально получить эти показатели.

Можно попробовать typeof:
Код
SQL
CREATE TABLE test (i integer, r real, t text, b blob);
SELECT rowid, typeof(i), typeof(r), typeof(t), typeof(b) FROM text;
 
Но длины так тоже не получить.

Или смотреть на его API.
Записан
Nimbus
Гость
« Ответ #7 : Январь 20, 2013, 10:13 »

Код:
$ echo "PRAGMA table_info(\"clients\");" | sqlite3 ~/ololo.sqlite
0|id|INTEGER|1||1
1|created|DATETIME|0||0
2|name|VARCHAR|0||0
3|dob|DATE|0||0
4|height|INTEGER|0||0
5|weight|FLOAT|0||0
6|purpose|TEXT|0||0
7|disease|TEXT|0||0
8|limits|TEXT|0||0
По-моему распарсить выхлоп sqlite не так уж и сложно ;-)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.092 секунд. Запросов: 23.