textmitfunktion hat geschrieben:Warum unwartbar?
Weil Dateien normalerweise die unangenehme Eigenschaft haben, sich zu ändern. Wenn die Dateien dann auf einem anderen Server liegen muss dein Programm immer schauen, ob und was sich ändert und das entsprechend in die DB schreiben. Da du dort keinen QFileSystemWatcher installieren kannst, der dir mitteilt wann sich etwas ändert, darfst du brav pollen. Oder du schreibst dir eine Server-Applickation, auf die du connectest, die dir über Netzwerk entsprechende Änderungen mitteilt.
Ich hatte mich, der Einfachheit halber, bewusst etwas kurz gefasst.
Aber ich sag jetzt mal worum es geht. Nämlich um die Informationen zu einigen tausend Videos, die zu vergleichen sind. Name,Pfad,Datum,Größe,Länge,Auflösung,Container,ACodec,VCodec,FPS,Interlace also alles was ein Video ausmacht.
Und wie du gesehen hast, ist das was man weglässt meistens das entscheidende. Du hast nicht geschrieben, dass die Daten wahrscheinlich eh in die DB geschrieben werden, was meinen ersten Kommentar überflüssig macht, genauso dass es Videos sind, die im Gegensatz zu gewöhnlichen Dateien praktisch nie mehr geändert werden (umkodiert, beschnitten, etc).
Darum halt die Frage, erst per Liste den Vergleich durchführen und dann in die DB tun. Oder erst in die DB und mittels DB Abfragen vergleichen.
Da wäre etwas mehr Ausführlichkeit auch nicht schlecht. Vergleichen ist so relativ. Z.B. braucht man Vergleiche um zu sortieren. Z.B. nach Länge. Dafür kannst du dir nen Funktor/Funktion schreiben, um nach speziellen Kriterien zu sortieren.
Vergleich kann auch heißen "Vergleiche Produkt A mit Produkt B" - also eine Gegenüberstellung von $num verschiedenen, vorher selektierten Elementen.
Zu guter letzt kann es auch heißen, alle Elemente auszulesen und in eine Tabelle zu legen und einfach oben den ColumnHeader anklicken, um alle Daten nach einem bestimmten Kriterium in der Tabelle zu sortieren (also "visueller Vergleich").
Im Prinzip kannst du Sortierarbeiten schon direkt mit einem passenden SQL-Query erledigen. Es wäre jetzt nicht schlecht, wenn du sagst, was "Vergleichen" heißt, dann kann man dich in eine bestimmte Richtung schubsen
Ok, warte, das wäre in meinem Fall ja eine 2 dimensionelles Array (einfach relational).
Hier meinen sie das man dafür lieber QVector nehmen sollte.
Äh, du hast doch QList selber vorgeschlagen? Egal. Du hast den Post glaube ich absolut nicht verstanden. Du brauchst kein 2-dimensionales Array, deine Daten sind flach (pro existierender Dtaei ein MetaObject). QList und QVector haben andere Unterscheidungsmerkmale. schnelles insert in der Mitte der Liste vs. (potentiell) schnelleren RandomAccess. Steht aber recht ausführlich in der Doku.