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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSqlQuery и QSqlDatabase  (Прочитано 10299 раз)
juvf
Программист
*****
Offline Offline

Сообщений: 564


Просмотр профиля
« : Март 06, 2023, 12:50 »

Ни как не могу понять как делается запрос в БД.

Что ассистент, что мануалы/учебники/инет - ответа не нашел. Суть вопроса... вот например статья по бд в qt

Создаем бд Соединяемся с бд

Код:
QSqlDatabase db = QsqlDatabase::addDatabase("QMYSQL", "mydb");
   db.setHostName("bigblue");
   db.setDatabaseName("flightdb");
   db.setUserName("acarlson");
   db.setPassword("1uTbSbAs");
   bool ok = db.open();
допустим я ещё один QSqlDatabase  создал
 
Код:
QSqlDatabase db2 = QSqlDatabase::addDatabase("QMYSQL", "juvfdb");
   db2.setHostName("bigred");
   db2.setDatabaseName("darkdb");
   db2.setUserName("juvf");
   db2.setPassword("123456");
   bool ok = db2.open();

Теперь, во всех мануала и в той статье наглядно показано как делается запрос
Код:
QSqlQuery query;
   query.exec("SELECT name, salary FROM employee WHERE salary > 50000");

Вопрос: Этот запрос выполнится в какую БД? В bd или в db2?
« Последнее редактирование: Март 06, 2023, 13:57 от juvf » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #1 : Март 06, 2023, 13:05 »

заглянуть в документацию, видимо, религия не позволяет:
- https://doc.qt.io/qt-5/qsqlquery.html#QSqlQuery-1
- https://doc.qt.io/qt-5/qsqldatabase.html#addDatabase (в описании класса более детально рассказано о default)
- https://doc.qt.io/qt-5/qsqldatabase.html#database

я никогда БД не использовал, нашел тебе ответ за минуту Улыбающийся
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
juvf
Программист
*****
Offline Offline

Сообщений: 564


Просмотр профиля
« Ответ #2 : Март 06, 2023, 13:10 »

заглянуть в документацию, видимо, религия не позволяет:
- https://doc.qt.io/qt-5/qsqlquery.html#QSqlQuery-1
- https://doc.qt.io/qt-5/qsqldatabase.html#addDatabase (в описании класса более детально рассказано о default)
- https://doc.qt.io/qt-5/qsqldatabase.html#database

я никогда БД не использовал, нашел тебе ответ за минуту Улыбающийся
Я эту документацию до дыр зачитал. Где там ответ? Если хотите помочь, можете на давать безполезные  и капетаноочевидные ссылки,  а понять суть моего вопроса и ответить на вопрос: Этот запрос выполнится в какую БД? В bd или в db2?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #3 : Март 06, 2023, 13:28 »

для особо непонятливых я процитирую:

по первой ссылке:
Цитировать
If db is not specified, or is invalid, the application's default database is used.
по второй:
Цитировать
If connectionName is not specified, the new connection becomes the default connection for the application, and subsequent calls to database() without the connection name argument will return the default connection. If a connectionName is provided here, use database(connectionName) to retrieve the connection.

2 и 2 теперь сможешь сложить? или тоже надо разжевать? Улыбающийся

P.S. попробуй спрашивать у ChatGPT, он неплохо справляется.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #4 : Март 06, 2023, 13:32 »

кстати, а тебе не приходило в голову просто взять и запустить код и посмотреть что же произойдет? на одной теории без практики далеко не уедешь.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
juvf
Программист
*****
Offline Offline

Сообщений: 564


Просмотр профиля
« Ответ #5 : Март 06, 2023, 14:02 »

да ты достал. зачем ты людей носом тычишь в документацию? Это кому-то помогло?

ещё раз говорю - будьте толлерантны к тем, кто обращается за помощью.
Мне давно известно, что прочтение документации не даёт 100%-ых знаний. Даже ПЛОТНОЕ прочтение документации. Без практики, советов более опытных, без разъяснений и примеров освоение материала длительно и сложно. Надеюсь ты тоже это поймёшь (хотя бы на своем примере) и в будущем к обращению за помощью будешь относиться не как "сделай это за меня" и думать что "ты ленишься читать документацию и/или искать ответы самостоятельно, а вместо этого первым делом бежишь на форум.". И надеюсь ты поймёшь, что если человек что-то спросил тут, это не означает, что он не читал ПЛОТНО документацию и не пытался найти ответ в гугле.


и вот ещё....

Цитата: kambala
переходим по его ссылке, и... о боги! там даже есть пример как функцию в свойство засунуть!
а чуть ранее

Цитата: kambala
> Где-то есть в мануалах/примерах как в качестве проперти делать функцию?
в документации вроде не попадалось
Цитата: kambala
...я ...документацию QML очень плотно читал, чтобы понять что там вообще есть, какие подходы можно использовать и т.д.

Т.е. ты такой весь гуру... читал ПЛОТНО документацию по QML и в документации тебе это не попадалось!? А оно там есть. И ты меня тут учишь плотно читать документацию, сам так делаешь и сам же не видишь, что в этой документации? это тебе ни на что как-бы не намекает?

Цитата: kambala
2 и 2 теперь сможешь сложить?
ну попробуй, сложи...

реально, ты дастал.... я не прошу тебя носом меня тыкнуть, я не прошу мануалы, я прошу дать ответ на вопрос: Этот запрос выполнится в какую БД? В db или в db2?
Зачем ты постишь и постишь непонятно что? Зачем ты постоянно устраиваешь троллинг? Я задал конкретный вопрос. Ты с БД ни когда не работал - проходи мимо. Хочешь помочь - вникни в суть вопроса и дай ответ НА ВОПРОС.

Ты наверно уже приготовился писать ответ в своём троллинг стиле? Успокойся, выдохни и сделай малое и простое: попробуй сам себе ответить на вопрос "Этот запрос выполнится в какую БД? В db или в db2?"

кстати, а тебе не приходило в голову просто взять и запустить код и посмотреть что же произойдет? на одной теории без практики далеко не уедешь.
а тебе не приходило в голову, что.... вспомнил - тебе не приходило. Даже больше, я тебе попытался это в голову вложить - увы, не задержалось.  Еще раз, специально для тебя

Да, но только мир многогранный, и не ограничевается твоим настольным ПК.


и вот ещё.... от туда же... тебе надо это прям постером где-то распечатать
))))) я же говорю - прежде чем давать такие советы - ПОПРОБУЙ САМ.



Записан
juvf
Программист
*****
Offline Offline

Сообщений: 564


Просмотр профиля
« Ответ #6 : Март 06, 2023, 14:15 »

P.P.S
P.S. попробуй спрашивать у ChatGPT, он неплохо справляется.
Он точно справиться? Есть аккаунт/подписка/доступ на ChatGPT. Зашли ему мой вопрос. Прежде чем давать такие советы - ПОПРОБУЙ САМ.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #7 : Март 06, 2023, 14:20 »

запрос не выполнится ни в одну из указанных бд (наверное выдаст ошибку), почему — очень доходчиво объяснено в процитированных мною частях документации. жаль, что ты не в состоянии это понять.

аккаунта в ChatGPT у меня нет, но на вопросы о программировании он отвечает вполне неплохо, видел примеры из других языков.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
juvf
Программист
*****
Offline Offline

Сообщений: 564


Просмотр профиля
« Ответ #8 : Март 06, 2023, 14:31 »

наверное выдаст ошибку
Если возникает ошибка, exec() возвращает false. Доступ к ошибке можно получить с помощью QSqlQuery::lastError().

запрос не выполнится ни в одну из указанных бд .... жаль, что ты не в состоянии это понять.
я из документации тоже это так же понял. но, в первом моём посту я дал ссылку на статью, где НАГЛЯДНО показано как работать с бд в Qt. Сначала создается бд с соединением "mydb", потом делается запрос на default. Вот это смутило.
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 564


Просмотр профиля
« Ответ #9 : Март 06, 2023, 14:34 »

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


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