hallo Ich wage nochmal eine Frage. Diesmal aber von besserer Qualität. (so hoffe ich) Ich muß sehr viele (~50) SQL Abfragen ausführen. Ist es besser nur eine Abfrage zu erstellen und diese immer wieder umzuschreiben QSqlQuery query4( "DROP TABLE IF EXISTS `funde_tmp`" ); QString sql3 = "DROP TABLE IF EXISTS `ringe_tmp`"; query4.exec(sql3); oder die alte Abfrage zu löschen und eine Neue zu erstellen? Falls Löschen die bessere Alternative ist würde ich gerne wissen wie. Eine Methode "destroy" oder "kill" habe ich nicht gefunden. Die bessere Methode meine ich in Bezug auf Geschwindigkeit und Speichernutzung. Im Beispiel oben sind es nur Abfragen ohne Ergebnis. Im nächsten Schritt werden es aber auch Abfragen mit z.T. großen Ergebnismengen sein. PS Ich weiß das es für jedes Objekt auch einen Destruktur gibt. Also z.B. so was: query4.~QSqlQuery () Aber der zerstört das Objekt QSqlQuery und nicht nur die query4. Danach sind keine weiteren Abfragen mehr möglich. Ich weiß das ich wenig Ahnung habe, bin mir aber ziemlich sicher das dieses Verhalten nicht normal ist. Wer Lust hat kann mir sagen wo hier mein Problem ist. -- Mit freundlichen Grüßen Norbert Pilsl München
On Thu, Jun 30, 2005 at 05:38:51PM +0200, Norbert Pilsl wrote:
PS Ich weiß das es für jedes Objekt auch einen Destruktur gibt. Also z.B. so was: query4.~QSqlQuery () Aber der zerstört das Objekt QSqlQuery und nicht nur die query4. Danach sind keine weiteren Abfragen mehr möglich. Ich weiß das ich wenig Ahnung habe, bin mir aber ziemlich sicher das dieses Verhalten nicht normal ist.
Doch, voellig normal.
Wer Lust hat kann mir sagen wo hier mein Problem ist.
Ein Beispiel ist z.B. hier zu finden: http://doc.trolltech.com/3.3/sql.html#x2327 query4 aus deinem Code ist nicht nur der SQL-query fuer die Zerstoerung von funde_tmp, sondern kann mit Hilfe der Methode exec auch beliebig viele weitere Queries ausfuehren. Wie auch in meinem verlinkten Beispiel zu sehen ist, kannst du auf das explizite Benutzen von QString verzichten und die automatischen Konvertierungen gebrauchen. (Wie du das ja auch bei query4 gemacht hast.) QSqlQuery query4( ... ); query4.exec( "DROP TABLE ..."); query4.exec( "DROP TABLE ..."); ... Peter
participants (2)
-
Norbert Pilsl
-
Peter Wiersig