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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Создание таблицы средствами Qt  (Прочитано 13627 раз)
gra
Гость
« : Июнь 21, 2009, 19:38 »

Приветствую комьюнити !

Есть ли какая-то возможность создать таблицу средствами Qt не прибегая к SQL'ному  "create table .... " ?
« Последнее редактирование: Июнь 21, 2009, 19:49 от gra » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Июнь 22, 2009, 06:12 »

А зачем? o_O
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Barmaglodd
Гость
« Ответ #2 : Июнь 22, 2009, 07:17 »

Безусловно! Изучаешь формат хранения данных той субд, в которой хочешь создать таблицу, и пишешь нужные структуры руками на диск.
Записан
gra
Гость
« Ответ #3 : Июнь 22, 2009, 22:15 »

Если честно, я привык работать с полноценными ORM - полностью абстрагируясь от конкретных БД.

Задача стоит в том, чтобы дать пользователю при желании пользоваться не только sqlite но и mysql\pgsql в зависимости от того что у него установлено.

Спасибо за ответы, похоже придется действительно реализовывать все отдельно для каждой.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #4 : Июнь 23, 2009, 02:09 »

Цитировать
полностью абстрагируясь от конкретных БД
Я могу ошибаться но вроде SQL92 содержит "create table" и абстрагирован от конкретной БД и поддерживается всеми существующими БД. Зачем что-то еще? Если не так поправьте.
Записан
gra
Гость
« Ответ #5 : Июнь 23, 2009, 03:22 »

Зачем что-то еще?

Если честно, я не спец но к примеру, тут - http://www.sqlite.org/datatype3.html нет ни слова про тип bool\boolean, хотя в mysql он есть (синоним для tinyint).
Не думаю, что отличия на этом заканчиваются.

Последнее время я пишу на Ruby, в нем есть отличный ORM - ActiveRecord, для того чтоб создать таблицу, нужно написать что-то вроде:
Код:
create_table :users do |t|
  t.string :name
  t.datetime :created_at
  t.boolean :admin
end

Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #6 : Июнь 23, 2009, 05:06 »

Цитировать
Если честно, я не спец но к примеру, тут - http://www.sqlite.org/datatype3.html нет ни слова про тип bool\boolean, хотя в mysql он есть (синоним для tinyint).

Не понимаю вашей логики почему в доке по sqlite должно быть описание типов MySql???

Цитировать
Последнее время я пишу на Ruby, в нем есть отличный ORM - ActiveRecord
И что будет если я этим механизмом попытаюсь создать поле в БД которая не поддерживает указанный тип?
Записан
gra
Гость
« Ответ #7 : Июнь 23, 2009, 06:09 »

Не понимаю вашей логики почему в доке по sqlite должно быть описание типов MySql???

Перечитайте топик начиная с первого поста.

И что будет если я этим механизмом попытаюсь создать поле в БД которая не поддерживает указанный тип?

А как Вы думаете? ActiveRecord поддерживает MySQL, PostgreSQL, SQLite, Oracle, SQLServer и DB2.
Записан
Rcus
Гость
« Ответ #8 : Июнь 23, 2009, 06:16 »

QtSql достаточно низкоуровневый слой абстракции, а Qt - фреймворк общего назначения, потому не представляет обобщенного синтаксиса для запросов
Записан
gra
Гость
« Ответ #9 : Июнь 23, 2009, 06:33 »

QtSql достаточно низкоуровневый слой абстракции

Да, спасибо, я уже разобрался.


Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #10 : Июнь 23, 2009, 09:21 »

ORM в QT я думаю еще долго не будет, не тот уровень. Для Ruby и Django ORM хорош, но шаг в сторону - расстрел.
Записан
sikuda
Гость
« Ответ #11 : Июль 03, 2009, 13:15 »

Так в чем вопрос - напишите сами. Qt как раз средство разработки...
Или про запустите пример SQL Browser (для sqlite) и напишите там CREATE TABLE...
Записан
CroCIV
Гость
« Ответ #12 : Август 05, 2009, 15:19 »

Если честно, я не спец но к примеру, тут - http://www.sqlite.org/datatype3.html нет ни слова про тип bool\boolean, хотя в mysql он есть (синоним для tinyint).

в стандарте SQL92 также есть описание стандартных типов данных. Если какой-то SQL-сервер не поддерживает тип данных, указанных в стандарте прошедшего тысячелетия, то не пользуйтесь этим SQL-сервер, т.к. он не SQL  Смеющийся

З.Ы.: Писать независимые от типа сервера SQL конструкции и можно, и нужно и в большинстве случаев оправдано, главное сразу ориентироваться на международный стандарт, а не на внутренний стандарт отдельно взятой компании.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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