Artem Zh.
Artem Zh.

Reputation: 538

Qt/SQL - Get column type and name from QSqlQuery exec Stored Procedure?

I've connected to MSSQL server using QSqlDatabase class. Then I can get stored procedures' results with QSQLQuery like:

QSqlQuery q;
q.prepare ("EXEC TestStoredProcedure");
if (q.exec ()) { 
    while (q.next ()) {
        qDebug() << q.value (0).toString ();
        ...
    }
}

So, I have values of the returned fields, but how I can get fields' names and types? Stored procedure can form the list of returned fields dynamically.

Thanks for any help and answers!

Upvotes: 2

Views: 3445

Answers (1)

FrozenM
FrozenM

Reputation: 125

You can use QSqlRecord. For example:

QSqlRecord localRecord = q.record();
for (int var = 0; var < localRecord.count(); ++var) {
    QString fieldName = localRecord.fieldName(var);
    qDebug() << fieldName;
}

or

QSqlRecord localRecord = q.driver()->record("table");
for (int var = 0; var < localRecord.count(); ++var) {
    QString fieldName = localRecord.fieldName(var);
    qDebug() << fieldName;
}

I think you can work without column type.

Upvotes: 4

Related Questions