Problema con DB



  • salve.Non riesco a capire come interagire con il contenuto di un database...se per esmpio avessi un DB con dentro una tabella chiamata "tabella" con vari campi tra cui uno che contiene URL a file che ho in locale sul PC...come faccio a recuperare la path del file che ho all'interno del campo del DB?e in generale..come faccio poi ad interagire con il campo estrato? ad esempio, se il mio fosse un percorso a file, come dovrei fare per aprire il file con l'applicazione predefinita?(mettiamo sia un immagine).

    Se riusciste a darmi qualche snippet ve ne sarei grato



  • QUrl::fromLocalFile / toLocalFile, QDesktopServices::openUrl



  • ok fatto...grazie per le indicazioni...
    adesso sono però di fronte ad un problema credo molto più complesso e senza aiuto non ne caverò nulla.
    Vi descrivo la mia struttura dati prima di esporvi il problema:
    Ho un DB e una tabella all'interno

    tabella
    campo1 | campo2 | campo3
    A | B | C
    D | E | F

    Quello che vorrei provare a fare è costruire una tree view a partire dai dati del DB che abbia il seguente aspetto:

    A
    |___>B

    D
    |___>E

    ecc..

    da dove comincio??io avevo pensato di fare così:

    mandare in output con una tableview il contenuto del db...ma poi, c'è un modo per generare automaticamente padri e figli dell'albero a partire dal contenuto dei vari campi della tabella?

    Grazie a tutti anticipatamente



  • per fare una cosa del genere, dovresti aggiungere un campo che rappresenta il padre diretto del record.
    Fatto questo puoi interagire in modo ricorsivo e al suo interno usi SQL con ricerca in LIKE lato destro (che è la parte che cresce) usando il campo padre diretto:

    NomeNodo | Padre
    A | NULL //root
    B | A| // B è figlio di A
    C | A|B| // C è figlio di B che è figlio di A
    D | A|B|C| // D è figlio di C che è figlio di B che è figlio di A

    Nel tuo caso è più importante la strutturazione iniziale dei record: il lavoro successivo è al quanto semplice.

    un esenpio di SQL sarà:
    //
    // chi sono i figli di...:
    function buildtree(padre) {
    var padre = padre + "|_"; // padre in ricorsione sarà A| -> A|B| e così via...

    SELECT NomeNodo FROM TreeViewTable WHERE Padre LIKE padre;
    }

    Ad esempio se il parametro della funzione è uguale a "A|B|"
    la SQL sarà: SELECT NomeNodo FROM TreeViewTable WHERE Padre LIKE 'A|B|_'
    che signfica prendi tutti quelli che hanno padre che inizia con "A|B|" e un qualsiasi carattere (nell'esempio solo A|B|C|)
    Più o meno è questo quello che dovresti fare e che io feci una decina di anni fa quindi scusami ma non ricordo tutto :-)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.