Russian Qt Forum

Qt => Базы данных => Тема начата: dsp от Июнь 16, 2011, 18:11



Название: Как правильно составить запрос
Отправлено: dsp от Июнь 16, 2011, 18:11
Привет.

Допустим есть программа, в которой в меню можно выбрать файл с базой данных, который есть в какой-либо папке.

Вопрос такой: как в запросах, например SELECT указывать название таблицы, которую я выбрал?



Название: Re: Как правильно составить запрос
Отправлено: Пантер от Июнь 16, 2011, 18:22
в меню можно выбрать файл с базой данных
указывать название таблицы, которую я выбрал?
Что-то меня тут смущает....


Название: Re: Как правильно составить запрос
Отправлено: dsp от Июнь 16, 2011, 18:26
в меню можно выбрать файл с базой данных
указывать название таблицы, которую я выбрал?
Что-то меня тут смущает....
Гы..
Может я просто не правильно формулирую проблему: Допустим есть 3 базы данных с одной и той же структурой, но вообще друг с другом не связанные. В них что-то лежит. А программа одна, которая может работать с бд, имеющую такую же структуру (одинаковое количество и название столбцов и типов данных), что и эти 3. Хочу я сейчас работать с одной бд, завтра с другой, всего лишь выбрав их в меню. Или как такие вещи решаются?


Название: Re: Как правильно составить запрос
Отправлено: sobr_vamp от Июнь 16, 2011, 18:27
Тут нормально написано
http://habrahabr.ru/blogs/qt_software/51650/

А вообще...
1. Выбираете подходящий класс для работы с БД.
1. Делаете соединение (там будет драйвер для вашей базы и путь к ней)
2. Открываете базу
3. Делаете запросы

К сожалению в коде написать не могу =) Но принцип такой


Название: Re: Как правильно составить запрос
Отправлено: dsp от Июнь 16, 2011, 18:31
Тут нормально написано
http://habrahabr.ru/blogs/qt_software/51650/

А вообще...
1. Выбираете подходящий класс для работы с БД.
1. Делаете соединение (там будет драйвер для вашей базы и путь к ней)
2. Открываете базу
3. Делаете запросы

К сожалению в коде написать не могу =) Но принцип такой

Да я не об этом =)
Я знаю немного, как работать с БД, но работая с бд, я всегда видел запросы типа:
query.prepare("SELECT File_Photo FROM photos WHERE Id = :Id");
Вот вместо явного указания таблицы "photos", как мне указывать названия выбранной мной таблицы, т.е. как сделать этот запрос пригодный для всех таблиц.


Название: Re: Как правильно составить запрос
Отправлено: sobr_vamp от Июнь 16, 2011, 18:47
Ну у вас же путь хранится в каком-нибудь QComboBox?
1. Берете полный путь, выделяете имя файла без расширения
2. Сохраняете в QString str, например
3. В запросе делаете что-то вроде "SELECT * FROM" + str + "..."

Разные пути - разные базы... А запрос один для всех. Что сложного то?)


Название: Re: Как правильно составить запрос
Отправлено: dsp от Июнь 16, 2011, 18:50
Ну у вас же путь хранится в каком-нибудь QComboBox?
1. Берете полный путь, выделяете имя файла без расширения
2. Сохраняете в QString str, например
3. В запросе делаете что-то вроде "SELECT * FROM" + str + "..."

Разные пути - разные базы... А запрос один для всех. Что сложного то?)
ничего. Уже так и сделал... туплю малость. уже день с ночью перепутал....диплом =)
Спасибо