Domanda

Sto scrivendo un'applicazione con un frontend GUI (GTK) e un backend SQLite. Quando qualcosa viene modificato tramite la GUI, voglio che la modifica venga visualizzata nella GUI se e solo se è stata completata correttamente nel DB.

  • La visione del codice di ritorno da sqlite3_step per SQLITE_ERROR è sufficiente per garantire che non fornisca un feedback falso all'utente?

  • In caso contrario, ci sono altri passaggi, come callback o trigger, che fornirebbero ulteriore affidabilità?

  • Esiste un modo per rilevare TUTTE le modifiche al database, piuttosto che solo quelle dalla connessione del programma, in modo che io possa riflettere dinamicamente le modifiche al suo contenuto nella GUI?

È stato utile?

Soluzione

Oltre alla gestione delle eccezioni ... Dovresti selezionare nuovamente i dati dal db che l'utente ha commesso facendo clic sul pulsante Salva. In questo modo sai per certo che l'utente vede i dati giusti.

Altri suggerimenti

Se capisco correttamente, stai facendo un'applicazione GUI che modifica le informazioni in un database SQLite.

  • Non proprio, potresti avere SQLITE_BUSY se hai thread; SQLITE_INTERNAL ; eccetera. Controlla Documentazione SQLite . Invece di chiedere SQLITE_ERROR potresti fare qualcosa del tipo:

SQLITE_OK o SQLITE_DONE a seconda di ciò che stai facendo.

if (ret != SQLITE_OK || ret != SQLITE_DONE)
    //then this is an error.
  • Non so in che lingua stai codificando, ma ho fatto un'astrazione di SQLite in C qui . Potresti trovarlo interessante.

  • Usa sqlite3_trace ()

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top