Название: Создание таблицы средствами Qt Отправлено: gra от Июнь 21, 2009, 19:38 Приветствую комьюнити !
Есть ли какая-то возможность создать таблицу средствами Qt не прибегая к SQL'ному "create table .... " ? Название: Re: Создание таблицы средствами Qt Отправлено: Пантер от Июнь 22, 2009, 06:12 А зачем? o_O
Название: Re: Создание таблицы средствами Qt Отправлено: Barmaglodd от Июнь 22, 2009, 07:17 Безусловно! Изучаешь формат хранения данных той субд, в которой хочешь создать таблицу, и пишешь нужные структуры руками на диск.
Название: Re: Создание таблицы средствами Qt Отправлено: gra от Июнь 22, 2009, 22:15 Если честно, я привык работать с полноценными ORM - полностью абстрагируясь от конкретных БД.
Задача стоит в том, чтобы дать пользователю при желании пользоваться не только sqlite но и mysql\pgsql в зависимости от того что у него установлено. Спасибо за ответы, похоже придется действительно реализовывать все отдельно для каждой. Название: Re: Создание таблицы средствами Qt Отправлено: break от Июнь 23, 2009, 02:09 Цитировать полностью абстрагируясь от конкретных БД Я могу ошибаться но вроде SQL92 содержит "create table" и абстрагирован от конкретной БД и поддерживается всеми существующими БД. Зачем что-то еще? Если не так поправьте.Название: Re: Создание таблицы средствами Qt Отправлено: gra от Июнь 23, 2009, 03:22 Зачем что-то еще? Если честно, я не спец но к примеру, тут - http://www.sqlite.org/datatype3.html нет ни слова про тип bool\boolean, хотя в mysql он есть (синоним для tinyint). Не думаю, что отличия на этом заканчиваются. Последнее время я пишу на Ruby, в нем есть отличный ORM - ActiveRecord, для того чтоб создать таблицу, нужно написать что-то вроде: Код: create_table :users do |t| Название: Re: Создание таблицы средствами Qt Отправлено: break от Июнь 23, 2009, 05:06 Цитировать Если честно, я не спец но к примеру, тут - http://www.sqlite.org/datatype3.html нет ни слова про тип bool\boolean, хотя в mysql он есть (синоним для tinyint). Не понимаю вашей логики почему в доке по sqlite должно быть описание типов MySql??? Цитировать Последнее время я пишу на Ruby, в нем есть отличный ORM - ActiveRecord И что будет если я этим механизмом попытаюсь создать поле в БД которая не поддерживает указанный тип?Название: Re: Создание таблицы средствами Qt Отправлено: gra от Июнь 23, 2009, 06:09 Не понимаю вашей логики почему в доке по sqlite должно быть описание типов MySql??? Перечитайте топик начиная с первого поста. И что будет если я этим механизмом попытаюсь создать поле в БД которая не поддерживает указанный тип? А как Вы думаете? ActiveRecord поддерживает MySQL, PostgreSQL, SQLite, Oracle, SQLServer и DB2. Название: Re: Создание таблицы средствами Qt Отправлено: Rcus от Июнь 23, 2009, 06:16 QtSql достаточно низкоуровневый слой абстракции, а Qt - фреймворк общего назначения, потому не представляет обобщенного синтаксиса для запросов
Название: Re: Создание таблицы средствами Qt Отправлено: gra от Июнь 23, 2009, 06:33 QtSql достаточно низкоуровневый слой абстракции Да, спасибо, я уже разобрался. Название: Re: Создание таблицы средствами Qt Отправлено: Admin от Июнь 23, 2009, 09:21 ORM в QT я думаю еще долго не будет, не тот уровень. Для Ruby и Django ORM хорош, но шаг в сторону - расстрел.
Название: Re: Создание таблицы средствами Qt Отправлено: sikuda от Июль 03, 2009, 13:15 Так в чем вопрос - напишите сами. Qt как раз средство разработки...
Или про запустите пример SQL Browser (для sqlite) и напишите там CREATE TABLE... Название: Re: Создание таблицы средствами Qt Отправлено: CroCIV от Август 05, 2009, 15:19 Если честно, я не спец но к примеру, тут - http://www.sqlite.org/datatype3.html нет ни слова про тип bool\boolean, хотя в mysql он есть (синоним для tinyint). в стандарте SQL92 также есть описание стандартных типов данных. Если какой-то SQL-сервер не поддерживает тип данных, указанных в стандарте прошедшего тысячелетия, то не пользуйтесь этим SQL-сервер, т.к. он не SQL ;D З.Ы.: Писать независимые от типа сервера SQL конструкции и можно, и нужно и в большинстве случаев оправдано, главное сразу ориентироваться на международный стандарт, а не на внутренний стандарт отдельно взятой компании. |