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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите с добавлением таблиц в бд  (Прочитано 3304 раз)
MoHaX
Гость
« : Апрель 26, 2010, 22:31 »

Не могу добавить таблицы в бд. Сервер PostgreSQL Database Server 8.0. База создается,но таблиц нет. Подскажите,если можно поподробней,т.к только начинаю знакомиться с QT.
Код:
#include <QtCore/QCoreApplication>

#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlError>
#include <QtSql/QSqlQuery>
#include <iostream>

int main(int argc, char** argv)
{
    QSqlDatabase db=QSqlDatabase::addDatabase("QPSQL");
              db.setHostName("localhost");
              db.setPort(5432);
              db.setDatabaseName("template1");
              db.setUserName("postgres");
              db.setPassword("pasw");
                      db.open();
                QSqlQuery query(db);
                query.exec("CREATE DATABASE myDb;");      
                query.exec("CREATE TABLE scooter ("
                           "id INTEGER PRIMARY KEY AUTOINCREMENT, "
                           "name VARCHAR(40) NOT NULL, "
                           "maxspeed INTEGER NOT NULL, "
                           "maxrange INTEGER NOT NULL, "
                           "weight INTEGER NOT NULL, "
                           "description VARCHAR(80) NOT NULL)");
                     return 0;
}
Записан
alexman
Гость
« Ответ #1 : Апрель 26, 2010, 22:34 »

А что возвращает query.lastError().text() после query.exec(...)?
Записан
Chase
Гость
« Ответ #2 : Апрель 26, 2010, 22:46 »

Цитировать
db.setDatabaseName("template1");

Вы создаете таблицу в этой базе, а не в myDb
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


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


Просмотр профиля WWW
« Ответ #3 : Апрель 27, 2010, 06:16 »

Ага. После создания базы необходимо переконнектиться. Плюс еще проверяй на открытие, а то всяко бывает...
Код
C++ (Qt)
if (!db.open()) {
 qDebug () << db.lastError ().text ();
}
 
Записан

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

вроде понятно,сначала я подключаюсь к бд template1 и создаю бд mybd.Затем мне нужно подключиться к бд mybd и уже добавлять данные.Выходит будет 2 одинаковых участка в коде(1 для подключения к template1,другой для mybd)?Как это разумно прописать?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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