2012-01-31 2 views
1

Я пытаюсь сделать SELECT с помощью DB MySql. Это код:QSqlQuery :: подготовить: база данных не открыта

qDebug() << "status" << db.db().isOpen(); 
query.prepare("SELECT jobId FROM jobs"); 

и результат:

status true 
QSqlQuery::prepare: database not open 

Как я могу это исправить?

+2

Откуда взялись эти магические 'db' и' query? Они не существуют в этом бедном оправдании для теста! –

ответ

-1
QSqlQuery (const QString & query = QString(), QSqlDatabase db = QSqlDatabase()) 
QSqlDatabase QSqlDatabase::database (const QString & connectionName = QLatin1String(defaultConnection), bool open = true) [static] 

QSqlQuery запрос (QString ("SELECT JobId FROM заданий"), QSqlDatabase :: базу данных ("Вы называете соединение"); query.exec();

+1

-1 Вы даже не потрудились форматировать свой собственный код. –

4

Try передавая базу данных в конструкторе из QSqlQuery:

QSqlQuery query(db.db()); 
query.prepare("SELECT jobId FROM jobs"); 
0

Вот отрывок я написал недавно

//Add the database connection 
QSqlDatabase m_db = QSqlDatabase::addDatabase("MYSQL", "m_db_connect"); 
//Set relevant settings 
m_db.setHostName("127.0.0.1"); 
m_db.setDatabaseName("maindb"); 
m_db.setUserName("neox"); 
m_db.setPassword("12345567"); 
//Open the database 
if(!m_db.open()) { 
    qWarning() << __FUNCTION__ << "Failed to open main database; aborting..."; 
    qWarning() << __FUNCTION__ << m_db.lastError().text(); 
    return false; 
} 
//Create query string 
QString queryString("SELECT id from events"); 
QSqlQuery query(m_db, queryString); 
//Check if the query has executed properly 
if(!query.exec()) { 
    qWarning() << __FUNCTION__ <<":"<<__LINE__<<"Failed to fetch ids"; 
    qWarning() << __FUNCTION__ <<":"<<__LINE__<<m_db.lastError().text(); 
    return false; 
} 
QList<int> id_list; 
//Here I check whether the select has returned any results and append them to the list 
while(query.next()) { 
    int id = query.value(0).toInt(); 
    id_list.append(id); 
} 

Это работало для меня до сих пор, и я надеюсь, что это полезно

Смежные вопросы