powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Получение полной метамодели
5 сообщений из 5, страница 1 из 1
Получение полной метамодели
    #37320435
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жизнь столкнула меня с SQLite, раньше с ним не работал посему обращаюсь к сообществу.
Суть вопроса: как получить полную метамодель (то есть таблицы, поля, типы данных, дефолты)?

SELECT * FROM sqlite_master - понятно, возвращает таблицы (не только, но сейчас про таблицы) и DDL для их создания (парсить который категорически не хочется).
PRAGMA table_info() возвращает информацию о конкретной таблице.

По сути мне нужно что-то типа курсора по sqlite_master с вызовом для каждого элемента PRAGMA table_info() и складыванием результатов в какую-нибудь таблицу (например временную).

Можно такое сделать? Или есть проще/иначе варианты? И если да, то как?
...
Рейтинг: 0 / 0
Получение полной метамодели
    #37320719
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так и нужно делать - проще вариантов нет.
Есть иные, как то sqlite3_table_column_metadata и прочие вызовы API. На уровне SQL альтернатив нет.
...
Рейтинг: 0 / 0
Получение полной метамодели
    #37320748
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
Евгений Фадеев,

Что мешает для всех имен таблиц из sqlite_master вызывать PRAGMA table_info()? Есть и другие прагмы, с их помощью можно достаточно полную информацию обо всех объектах БД получить.
...
Рейтинг: 0 / 0
Получение полной метамодели
    #37321842
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBGЧто мешает для всех имен таблиц из sqlite_master вызывать PRAGMA table_info()? Есть и другие прагмы, с их помощью можно достаточно полную информацию обо всех объектах БД получить.Мешает отсутствие соответствующих знаний.
Насколько я понимаю (возможно неправильно) в SQLite нет курсоров и иных средств императивного программирования. А вопрос, исходно, был именно про то, как это сделать средствами SQL. На клиенте проблем нет (в итоге так и будем делать).

Ну и еще один вопрос вдогонку: можно как-то средствами SQL вывести результаты PRAGMA в таблицу?
...
Рейтинг: 0 / 0
Получение полной метамодели
    #37321846
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry ArefievТак и нужно делать - проще вариантов нет.
Есть иные, как то sqlite3_table_column_metadata и прочие вызовы API. На уровне SQL альтернатив нет.Спасибо, понял. Будем делать на клиенте :(
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Получение полной метамодели
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]