[gelöst] Spaltennamen QSqlQuery/QDataTable

Alles rund um die Programmierung mit Qt
Antworten
Ahmet Arslan
Beiträge: 17
Registriert: 12. Juli 2005 11:11
Wohnort: Köln

[gelöst] Spaltennamen QSqlQuery/QDataTable

Beitrag von Ahmet Arslan »

Hallo,

ich habe die Frage schon einmal gestellt, komme aber immer noch nicht drauf.

Mit diesem Code könnte ich den Inhalt der ersten Spalte in einem Text-Editor zeilenweise ausgeben.

Code: Alles auswählen

QSqlQuery query;
query.exec("select * from mytable");
while(query.next())
{
    QString firstValue = query.value(0).toString();
    textEditor->append(name);
} 
Nun brauche ich aber die Spaltennamen und suche daher nach einer Funktion, wie bspw.:

Code: Alles auswählen

QString firstColumn = query.column(0).toString();
Wie komme ich an den Namen einer Spalte? Ich benutze eine QDataTable und habe dort die Methode

Code: Alles auswählen

int QDataTable::numCols ()
Und könnte also mit einer Schleife über die Anzahl der Spalten laufen.

Auch hier gibt es die zwar die Methoden:

Code: Alles auswählen

QVariant QDataTable::value ()

Code: Alles auswählen

QString QDataTable::text ()
Aber ich suche vergeblich nach einer Methode oder Eigenschaft, die mir den Namen der Spalte verrät.

Any Help?
Zuletzt geändert von Ahmet Arslan am 29. Juli 2005 12:14, insgesamt 1-mal geändert.
br06
Beiträge: 7
Registriert: 4. Juli 2005 21:40

Beitrag von br06 »

Hi,

versuche mal

QVariant QSqlQueryModel::headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const [virtual]

Gruß Christian
Ahmet Arslan
Beiträge: 17
Registriert: 12. Juli 2005 11:11
Wohnort: Köln

Danke

Beitrag von Ahmet Arslan »

Danke für den Tipp! Ich werde es versuchen ...
Ahmet Arslan
Beiträge: 17
Registriert: 12. Juli 2005 11:11
Wohnort: Köln

Qt Version

Beitrag von Ahmet Arslan »

Habe vergessen die Qt-Version zu erwähnen: 3.2.1

Und die hat leider keine
QVariant QSqlQueryModel::headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const [virtual]

Seltsam, dass der Zugriff auf die Spalten nicht einfacher funktioniert ...?
Ahmet Arslan
Beiträge: 17
Registriert: 12. Juli 2005 11:11
Wohnort: Köln

ok

Beitrag von Ahmet Arslan »

Hallo,

falls jemand mal ein ähnliches Problem haben sollte:

Ich habe mit:

Code: Alles auswählen

QSqlCursor cur( "mytable" ); 
QSqlRecord *rec = cur.editBuffer(false);
textEdit->append(rec->toString());
einen kommagetrennten QString mit den Spaltennamen erhalten. Man kann sich auch mit rec->toStringList() eine QStringList zurückgeben lassen.
Antworten