Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,334

    [PYTHON] QSqlQuery e prepared statement con parametri che restituisce una lista vuota

    Nella mia applicazione sto implementando ora una parte che ha bisogno di un database e sto avendo subito un problema.

    Questa funzione viene eseguita correttamente, in clients c'è la lista dei nomi dei clienti
    codice:
    def getClientsNames(self, orderby='id', direction='ASC'):
            """Get all the clients."""
            clients = []
            query = QSqlQuery()
            query.exec(f'SELECT nome FROM {self._tab_clients} ORDER BY {orderby} {direction}')
    
            while query.next():
                clients.append(query.value('nome'))
    
            return clients
    Di contro quest'altra, che dovrebbe fare la stessa cosa, mi restituisce una lista vuota
    codice:
    def getClientsNames(self, orderby='id', direction='ASC'):
            """Get all the clients."""
            clients = []
            query = QSqlQuery()
            query.prepare('SELECT nome FROM :table ORDER BY :orderby :direction')
            query.bindValue(":table", self._tab_clients)
            query.bindValue(":orderby", orderby)
            query.bindValue(":direction", direction)
            query.exec()
    
            while query.next():
                clients.append(query.value('nome'))
    
            return clients
    Cosa sbaglio nell'uso del prepared statement?
    Earth2: 3QCNSPFQUH

  2. #2
    Ciao, ti consiglio di fare riferimento al forum ufficiale
    https://forum.qt.io/

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,044
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Cosa sbaglio nell'uso del prepared statement?
    Credo che l'errore stia nell'uso dei parametri espressi nel formato arametro.

    In generale, i parametri non sono "segnaposto" per l'interpolazione di valori nello statement SQL, bensì entità vere e proprie che rappresentano un valore tramite un identificatore sostitutivo che deve essere specificato prima di eseguire il comando.

    In breve, l'uso del parametro può sostituire solo "valori" e non nomi di oggetti del database, come tabelle, campi, ecc.

    Approfondisci eventualmente la documentazione ufficiale per dettagli.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,044
    Quote Originariamente inviata da denis76 Visualizza il messaggio
    Ciao, ti consiglio di fare riferimento al forum ufficiale
    https://forum.qt.io/
    Per favore, evita di rispondere in questo modo a tutte le domande che hanno a che fare con questa libreria: oltre a non fornire una soluzione, mi sembra alquanto inappropriato consigliare all'interno di un forum di fare riferimento ad un altro forum.

    Oltre a questo, qualsiasi linguaggio e/o prodotto dispone dei propri siti e forum ufficiali, ma se un utente scrive qui significa che preferisce trattare la questione in questa sede.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,334
    Quote Originariamente inviata da alka Visualizza il messaggio
    ...
    In breve, l'uso del parametro può sostituire solo "valori" e non nomi di oggetti del database, come tabelle, campi, ecc.

    Approfondisci eventualmente la documentazione ufficiale per dettagli.

    Ciao!
    Ho capito, grazie.
    Earth2: 3QCNSPFQUH

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2022 vBulletin Solutions, Inc. All rights reserved.