|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Sep 2001
Città: Firenze
Messaggi: 216
|
[WxWindows] Database
Non ho capito come nelle wxwindows si possa ottenere un risultato che proviene da più di una tabella di una database. La guida non è per niente chiara su questo punto.
Supponiamo di avere un database composto da due tabelle, che si chiamano Autori (3 attributi: Id, Nome, Cognome) e Playlist (2 attributi: Codice, Musica). Se ad esempio creo un oggetto "table" scriverò nel seguente modo: //qui sopra ci sarebbe tutta la parte di connessione al database a le inizializzazioni const wxChar tableName[] = "Autori"; const UWORD numTableColumns = 3; table = new wxDbTable(db, tableName, numTableColumns, "", !wxDB_QUERY_ONLY, ""); table->SetColDefs(0, "Id", DB_DATA_TYPE_VARCHAR, Id_a, SQL_C_CHAR, sizeof(Id_a), TRUE, TRUE); table->SetColDefs(1, "Nome", DB_DATA_TYPE_VARCHAR, Nome_a, SQL_C_CHAR, sizeof(Nome_a), TRUE, TRUE); table->SetColDefs(2, "Cognome", DB_DATA_TYPE_VARCHAR, Cognome_a, SQL_C_CHAR, sizeof(Cognome_a), TRUE, TRUE); if (!table->Open()) { wxMessageBox("Errore in apertura database","ERROR!", wxOK | wxICON_EXCLAMATION); } wxString sqlStmt; sqlStmt = "SELECT * FROM Autori, Playlist WHERE Codice=Nome"; table->QueryBySqlStmt(sqlStmt); wxString msg; while (table->GetNext()) { msg.Printf("Riga %lu -- Nome : %s Cognome :%s", table->GetRowNum(), Nome_a, Cognome_a); wxMessageBox(msg, "Data", wxOK | wxICON_INFORMATION, NULL); } In questo caso funziona la select con il FROM che contiene anche "Playlist" e riesco a visualizzare i campi di "Autori" (Nome_a, Cognome_a) ma come faccio a visualizzare anche i campi di "Playlist"? Dove li leggo? Il fatto è che "table" contiene solo i campi di "Autori", dovrei forse in qualche modo creare un'altro oggetto wxDbTable e fare una sorta di join con "table" e fare poi la SELECT...boh... Spero in vostro aiuto. Grazie mille. Ciao. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:29.



















