QSQLQuery return über Funktion
-
Hallo zusammen,
ich würde gerne wissen ob die möglichkeit besteht die query abfrage bzw. resultat über eine return funktion an eine andere klasse weitergeben kann ohne diese vorher in ein QStringList oder Qlist mit Struct oder Class vorher umwandeln zu müssen.
z.B:
QSqlQuery KlasseA(){ QSqlQuery myAbfrage ("DB",myDB); myAbfrage.prepare("SELECT Count(*) FROM db"); myAbfrage.exec(); return myAbfrage; } void KlasseB(QSqlQuery myAbfrage) { while(myAbfrage.next()==true) { qDebug()<< myAbfrage.value(1)<<myAbfrage.value(2); } } Oder ist das so nicht möglich ? Dank im Voraus!
-
Wie wäre es mit einfach ausprobieren?
Ja es sollte laut Dokumentation gehen. -
Probiert habe ich schon einiges nur leider ohne erfolg, im netz gefuden habe ich auch nichts...
leider ist für mich die Dokumentation sehr Kryptisch geschrieben und ein Beispiel zur übergabe finde ich nicht wirklich in der Dokumentation. Daher meine frage hier im forum in der hoffnung eine erklärung oder hinweis zu bekommen.
btw. für einen neuling ist es schwer zu interpretieren wie ich das zu verstehen habe:
z.B.:
QSqlQuery::QSqlQuery(QSqlQuery &&other)
Move-constructs a QSqlQuery from other.
This function was introduced in Qt 6.2.
Tja was soll ich hier als nicht QT PRO verstehen und anwenden können ohne nachzufrage?
-
@Djago said in QSQLQuery return über Funktion:
Tja was soll ich hier als nicht QT PRO verstehen und anwenden können ohne nachzufrage?
Ich sehe in diesem Konstruktor leider nichts Qt-spezifisches. Das ist basic C++.
Wenn es nicht als Object geht dann übergibt/gib einen Pointer auf QSqlQuery zuürck. Abgesehen davon verstehe ich nicht wirklich warum man ein QSqlQuery in der Gegend rumreichen muss. Les die Werte in eine eigene Struktur aus und übergib die - ist wesentlich sinnvoller.
-
@Christian-Ehrlicher said in QSQLQuery return über Funktion:
@Djago said in QSQLQuery return über Funktion:
Tja was soll ich hier als nicht QT PRO verstehen und anwenden können ohne nachzufrage?
Ich sehe in diesem Konstruktor leider nichts Qt-spezifisches. Das ist basic C++.
Wenn es nicht als Object geht dann übergibt/gib einen Pointer auf QSqlQuery zuürck. Abgesehen davon verstehe ich nicht wirklich warum man ein QSqlQuery in der Gegend rumreichen muss. Les die Werte in eine eigene Struktur aus und übergib die - ist wesentlich sinnvoller.
das es ein Konstruktor ist ist mir auch klar aber die art und weise wie die Dokumentation ist, ist für mich kryptisch.
wie ich bereits oben gefragt habe:"ich würde gerne wissen ob die möglichkeit besteht die query abfrage bzw. resultat über eine return funktion an eine andere klasse weitergeben kann ohne diese vorher in ein QStringList oder Qlist mit Struct oder Class vorher umwandeln zu müssen."
einfachhalber wollte ich vermeiden das als struktur\QStringListe\QList oder was auch immer zu übergeben.
und erst in der nächsten klasse zu entscheiden was ich mit den ergebnissen anstelle. -
@Djago said in QSQLQuery return über Funktion:
das es ein Konstruktor ist ist mir auch klar aber die art und weise wie die Dokumentation ist, ist für mich kryptisch.
Was für eine Dokumentation? Es ist ein move-Konstruktor. Was soll da nopch mehr zu geschrieben werden?
wie ich bereits oben gefragt habe:"ich würde gerne wissen ob die möglichkeit besteht die query abfrage bzw. resultat über eine return funktion an eine andere klasse weitergeben kann ohne diese vorher in ein QStringList oder Qlist mit Struct oder Class vorher umwandeln zu müssen."
Wie gesagt - es geht wenn man es richtig macht, an deiner Stelle würde ich ein Objekt auf dem Heap anlegen und dieses zurückgeben.
einfachhalber wollte ich vermeiden das als struktur\QStringListe\QList oder was auch immer zu übergeben.
und erst in der nächsten klasse zu entscheiden was ich mit den ergebnissen anstelle.Dann kannst Du den Query auch direkt dort erzeugen wo Du ihn benötigst. Alles andere ist meiner Meinung nach schlechtes Design.