Seite 1 von 1

Spaltennamen eines QSqlQueryModels

Verfasst: 7. Januar 2008 18:39
von Lodas23
Hallo zusammen,

ich versuche seit geraumer Zeit die Spaltennamen eines QSqlQueryModles herauszubekommen.

Hat das hier schonmal jemand hinbekommen? Ich brauche die Namen der Spalten als String. Ich habe versucht versucht eine View meiner Abfrage zu erstellen und dann SHOW COLUMNS FROM aufzurufen und dann aus diesem Ergebnis mittels der Funktion value(int) und einer Schleife mir alle Spaltennamen ausgeben zu lassen, aber das hat nicht funktioniert, da mein Model mehere Spalten mit demselben Namen hat.

Die Abfrage, die das Model füttert ist eine JOIN abfrage und deswegen gibt es doppelte Spaltennamen (MainId). Genau diese will ich aber in der QTableview nicht anzeigen lassen und deswegen muss ich die Stellen finden an denen MainId im Model ist, um
setColumnHidden(int, bool) aufrufen zu können.

Hoffe es ist klar geworden, was ich machen will und wo das Problem liegt :)

Grüße,

Andy

Verfasst: 7. Januar 2008 19:22
von solarix
[...] muss ich die Stellen finden an denen MainId im Model ist, um [...]

Code: Alles auswählen

int mainIdIndex = myModel.record().indexOf("MainId"); // sowas?
deswegen gibt es doppelte Spaltennamen (MainId).
das gibt frueher oder spaeter immer aerger... kannst du nicht auch mit einem alias arbeiten?
Select a.MainID as ID1, b.MainID as ID2 from tabA a join tabB b .........

Verfasst: 7. Januar 2008 20:36
von Lodas23
Hi solarix,

du hast mich auf die richtige Fähre gebracht. Danke dafür. Hier mein Code, falls jemand dasselbe Problem hat.

Code: Alles auswählen

 for (int i = 0; i < model->columnCount; i++)
 {
          if ((model->record().fieldName(i).compare("MainId")) == 0 )
          {
                     tabelView->setColumnHidden(i, true);
           }
}
Grüße und Danke,

Andy