Привет! В этом выпуске мы создадим базу данных в Qt. Для примера сделаем модель телефонной книги и добавим в нее возможность добавлять и удалять данные
Даже несмотря на старое знакомство с Qt из прошлого (3.x), забавно смотреть на эту магию. :) Поиск способов вызова API стал заметно проще из Qt... Ммм, а как эту среду разработки теперь зовут? Как говорится, всё для людей. Остаётся научить отладке проблем с подключением к различным СУБД. Вот бы там также элегантно получилось ;) P.S. И вот ведь казус - с Borland Delphi все это не менее весело и просто собиралось ещё в конце 90-ых прошлого века. Лучшая была технология RAD, пригодная для написания приложений БД для PC.
Могу ошибаться, но запросы к базе надо было делать в блоке if(db.open{ ........} А то например после вывода сообщения "No open" Мы создаем обьект и делаем запрос 🤭
Привет, у меня работает не так, когда добавляю контакт, у меня создаётся только одна строка, потом при нажатии добавить, больше не добавляются, и цифра строки не ставиться
Спасибо за видео! Поясните пжлст новичку, почему объект db создан без динамического распределения памяти, а объект запроса с помощью указателя query. Это конечно вопрос больше по С++, но хотелось бы ваше пояснение. Спасибо!
Почему мы создаем таблицу и добавляем БД в конструкторе класса главного окна. Это получается он будет при каждом новом открытии проги создавать новую ДБ и новую таблицу? В QT есть какой-то setup скрипт, который это сделает разово?
как почему за счет чего он у тебя сохраняется при каждом запуске и как это сделать?, я уже целую неделю пересматриваю твой видос и не могу понять что пропустить((((
Такая ситуация, все работает, но не так к сожалению. База данных создалась и подключилась тут все отлично, но вот написав код для кнопки добавить она добавляет всего одну ячейку, и если закрыть окно и заново запустить ничего не сохраняется. upd(что то начало работать но очень не долго, но возможно я понял в чем беда, можно у вас узнать как у вас звездочка в строке поменялась на 1?)
@@programmcat Спасибо за ответ!) Оказывается все так просто.. а я уже весь инет перерыл хех, теперь правда в моем приложении только одна из двух баз данных работает отлично, со второй так и остались беды..
@@programmcat Все таки обращусь еще раз к вам, как может быть такое что код абсолютно идентичен (не считая что переменные с другими именами), но вот одна база данных работает отлично, а другая ни в какую. Я уже и через DB browser добавил строку чтоб виделась 1 но и это не помогло, создает 2ю строку которая не меняется на 2 ну и не сохраняется. (Пишу курсовую, и вот эти базы данных просто убивают меня пока что хех, но для моего проекта надо именно 2 базы данных, я не могу придумать как все в одну запичкать)
Работа с двумя подключениями одновременно имеет свои нюансы, этот ролик не поможет :) После названия драйвера, вторым аргументом нужно прописать название подключения. Например: ("QSQLITE", "firstConnect").
в файле mainwindow.cpp есть строка (21) query->exec("CREATE TABLE... как я понял она создает таблицу в базе но зачем каждый раз при запуске в базе создавать таблицу ?
Привет, ломаю голову. У меня есть текст в LineEdit. Хочу нажать на кнопку и чтобы слово в LineEdit добавилась в базу данных. У меня только создается новый row, и на этом все. Уже не знаю что придумать. Подскажи пожалуйста. Спасибо 🙏
@@programmcat Почему-то у меня не добавляется следующая строка по нажатию кнопки Добавить. Одна добавляется строка, остальные нет и не сохраняется данные.
@@user-lc5vo2cc7u нужно enter нажать после добавления записи, чтобы номер строки появился. Тогда строчка считается добавленной, и можно создавать новую.
отвечали выше. сам не проверял, но наверно сработает: model->submitAll(); нужно добавить эту строку после команды model->insertRow(model->rowCount()); тогда изменения сохраняться