Hi,
ich habe eine Datenbankdatei mit mit ca. 800 Datensätzen. Sie enthalten eine ID und die x,y,z Koordinaten. Mit dem folgenden Code habe ich sie schon mal sortiert, nach den zugehören IDs und schrebie es in eine Liste rein.
Da ich für jede ID in OpenGL eine Kugel erzeugen möchte die die Positionsdaten abfährt, wollte ich wissen, wie man das am besten machen kann.
Ich kann natürlich wenn ich die ID kenne mit WHERE HostID is '2' filtern aber wenn ich das Programm, welches in DB reinschreibt, starte kann es sein das es die ID nicht gibt oder es meht Ids gibt als die ich abfrage. Und ich möchte es ja auch ohne die ID nachzuscheuen filtern können und das für jeden beliebigen Host.
Bsp:
Jetzt will ich in OpenGl wenn die Daten geparst wurden für die IDs 2,4 und 7 eine Kugel erstellen und dies die zugehörige Position abfahren lassen,
Ich muss die IDs ja irgendwie trennen.
Hat da jemand ein Idee oder ist es nicht möglich?
Danke und Grüße!
ich habe eine Datenbankdatei mit mit ca. 800 Datensätzen. Sie enthalten eine ID und die x,y,z Koordinaten. Mit dem folgenden Code habe ich sie schon mal sortiert, nach den zugehören IDs und schrebie es in eine Liste rein.
Code:
sqlite3_open( "C:\\OMNeT_Datenbank14.db" ,&datenbank); if (SQLITE_OK != sqlite3_prepare_v2(datenbank, "SELECT * FROM omnet WHERE HostID ORDER BY 1", -1, &stmt, 0)) { //Ausgabe von Fehler (z.B. bei Syntaxfehlern) printf("Fehler beim Vorbereiten der SQL Anfrage: %s", sqlite3_errmsg(datenbank)); } else { sqlite3_prepare_v2(datenbank, "SELECT COUNT(*) FROM omnet", -1, &stmt2, 0); sqlite3_step(stmt2); //Solange Datensätze zurückgegeben werden printf("Datensaetze: %d\n", sqlite3_column_int(stmt2, 0)); while (SQLITE_ROW == sqlite3_step(stmt)) { //Werte aus Spalten 1, 2 und 3 ausgeben (Index startet bei 0) printf("%s %s %s %s\n", sqlite3_column_text(stmt, 0), sqlite3_column_text(stmt, 1), sqlite3_column_text(stmt, 2), sqlite3_column_text(stmt, 3)); Point3f* pkt = new Point3f(); pkt->X = sqlite3_column_double(stmt, 1); pkt->Y = sqlite3_column_double(stmt, 2); pkt->Z = sqlite3_column_double(stmt, 3); punktliste.push_back(pkt); } } //Statement löschen sqlite3_finalize(stmt); sqlite3_finalize(stmt2);
Da ich für jede ID in OpenGL eine Kugel erzeugen möchte die die Positionsdaten abfährt, wollte ich wissen, wie man das am besten machen kann.
Ich kann natürlich wenn ich die ID kenne mit WHERE HostID is '2' filtern aber wenn ich das Programm, welches in DB reinschreibt, starte kann es sein das es die ID nicht gibt oder es meht Ids gibt als die ich abfrage. Und ich möchte es ja auch ohne die ID nachzuscheuen filtern können und das für jeden beliebigen Host.
Bsp:
Code:
DB sieht folgendermaßen aus: 2 156.0 97.0 156.0 2 156.071 96.9954 156.071 2 156.141 96.9909 156.141 4 493.75 212.202 190.745 4 493.848 212.212 190.726 4 493.946 212.222 190.707 7 192.696 55.9556 192.696 7 192.636 56.0071 192.636 7 192.575 56.0585 192.575
Ich muss die IDs ja irgendwie trennen.
Hat da jemand ein Idee oder ist es nicht möglich?
Danke und Grüße!
Comment