LINUX.ORG.RU

Создание таблиц?

 ,


0

2

В общем, можно ли нормально создавать таблицы с QtSql? Не нашёл ничего в доках. Можно конечно ручками написать запрос, но будет ли оно работать для разных СУБД?

Если субд поддерживает создание таблиц запросами (ЕМНИП любая имеено так их и создает), то почему нет?

erfea ★★★★★
()
Ответ на: комментарий от erfea

Потому что СУБД разные и предусматривается что работать будет со всеми сразу (ну хотя бы sqlite, mysql, pgsql, что там ещё популярно?). И хз, можно ли сделать запрос который будет работать во всех. Ещё видимо нужно будет создать ключ на дюжину полей, тоже не совсем понятно, будет ли оно одинаково работать.

Я не особо хорошо со скулом знаком, не хочется ещё и с овместимостью бодаться.

Kalashnikov ★★★
() автор топика
Ответ на: комментарий от Kalashnikov

Я сам с sql последнее время очень мало работаю... по идее стоит или вообще разные модули для разных бд сделать или хотя бы в узких местах разницу учесть. Я бы работу бд в отдельный модуль вынес.

ЗЫ cast MikeDM

erfea ★★★★★
()
Ответ на: комментарий от Kalashnikov

С interbase(firebird), mysql и ms sql имел дело, как бы с совместимостью в sql всё запущено. Делал «прокладку» , которая через сокеты принимала текстовую строку запроса и возвращала ответ - количество полей, записей, имена полей и дальше значения полей , все в тексте.

ilovewindows ★★★★★
()
Ответ на: комментарий от ilovewindows

Ну с обычными запросами насколько я понимаю проблем нет, QSqlTableModel это вроде берёт на себя, беда только с созданием таблиц.

Вообще, посмотрел на типы полей, погрустил и думаю тупо сделать три разных запроса ну и отправлять один из них в зависимости от типа драйвера.

Kalashnikov ★★★
() автор топика
Ответ на: комментарий от Kalashnikov

С типами еще более запущенный случай, даже если к строке средствами sql преобразовывать, то всякие разделители типа -.,: и проч. могут от настроек на серверах зависеть.

ilovewindows ★★★★★
()
Ответ на: комментарий от Kalashnikov

Вряд ли там вкорячено хотя бы определение типов данных. Скорее всего, это обычная морда для просмотра «готовых» БД и выполнения написанных вручную запросов.

Я, конечно, не настоящий сварщик, но такое у меня подозрение.

Hoodoo ★★★★★
()

Нет.

Если копать глубже - то есть такая штука как

QSqlDriver::sqlStatement
create она не поддерживает.

com
()
Ответ на: комментарий от Hoodoo

Нет, тут ты не прав. Всё-таки подобие определения типов там есть. Для каждого типа базы данных своё.

com
()
Ответ на: комментарий от erfea

ЗЫ cast MikeDM

туто я туто =)

задавайте вопросы про Qt4 и Sql отвечу, пока добрый =)

MikeDM ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.