Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Errore con Query nel componente TQuery

    Ciao a tutti. Ho appena fatto una query nel mio programmino in delphi...e l'ho inserita nel componente TQUERY nella proprietà "SQL". TQUERY è già collegato con il datasource. Il mio problema è che quando metto la proprietà active del componente tquery a True mi dà errore: General SQL error. Token Unknown line 1, column 10 ,
    La QUERY è la seguente:

    SELECT (:KIDCLIENTE, :KNOME, :KCOGNOME, :KREPARTO, :KPADIGLIONE)
    FROM CLIENTI
    WHERE NOME= :KNOME AND REPARTO= :KCOGNOME


    Sapete dirmi kosa posso fare per rimediare?

  2. #2
    la sintassi sequel non prevede la parentesi dopo l'istruzione select che deve essere una sequenza di campi separati da virgola (quindi senza i : che precedono)
    ciao
    sergio

  3. #3
    Sergio io so che bisogna scriverla così invece perkè vengono visti come parametri nel componente TQuery. Altrimenti non li posso parametrizzare i campi del DB...

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,315
    Originariamente inviato da gaetanotuning
    Sergio io so che bisogna scriverla così invece perkè vengono visti come parametri nel componente TQuery. Altrimenti non li posso parametrizzare i campi del DB...
    credo che stai facendo confusione.

    innanzi tutto in un post precedente ti ho chiesto che database utilizzi e non hai ancora risposto, cerca sempre di rispondere alle domande che ti vengono fatte.

    per il problema della query, penso proprio che abbia ragione mondobimbi.

    ti suggerirei, anche, di inserire il nome della tabella prima del campo....

    io farei cosi:

    codice:
    SELECT
    clienti.IDCLIENTE, 
    clienti.NOME, 
    clienti.COGNOME, 
    clienti.REPARTO, 
    clienti.PADIGLIONE
    FROM CLIENTI
    WHERE clienti.NOME= :KNOME AND clienti.REPARTO= :KCOGNOME
    ciao

  5. #5
    Okok Grazie Ci proverò domattina Cmq uso Firebird. Il DB l'ho fatto con SQL Manager 2005...l'estensione ke ha è .GDB Alla prossima Notte a tutti

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,315
    Originariamente inviato da gaetanotuning
    Okok Grazie Ci proverò domattina Cmq uso Firebird. Il DB l'ho fatto con SQL Manager 2005...l'estensione ke ha è .GDB Alla prossima Notte a tutti
    anche io uso firebird.... e per la sua manipolazione uso un software free

    http://ibexpert.net/ibe/index.php?n=Main.DownloadFree

    so che anche EMS Sql Manager 2005 è un validissimo prodotto (anche se l'ho utilizzato pochissimo)

    a questo punto Tu devi fare una cosa semplicissima!
    prima di inserire una sintassi in un componente per effettuare la query o altro lo testi tramite il software che hai installato.
    in questo modo verifichi che quello che scrivi funziona.

    poi, per le tue applicazioni delphi, visto che il database e' firebird, utilizza gli appositi componenti della palette Interbase di delphi.... quindi non usare TQuery ma bensi il corrispondente TIBQuery e cosi via....

    facci sapere se hai altri dubbi...

    che versione di delphi hai?

    ciao

  7. #7
    Uso la versione 2007 di Delphi.

  8. #8
    Va bene SQL Server 2005 per poterle testare? Ho fatto eseguire questa...
    SELECT
    clienti.IDCLIENTE,
    clienti.NOME,
    clienti.COGNOME,
    clienti.REPARTO,
    clienti.PADIGLIONE
    FROM CLIENTI
    WHERE clienti.NOME= :KNOME AND clienti.REPARTO= :KCOGNOME

    Però mi dice..

    Messaggio 102, livello 15, stato 1, riga 8
    Sintassi non corretta in prossimità di ':'.
    Query Completata con errori. Ke ci stà ke nn và? A me pare correttissima..

  9. #9
    Però è strano ke non và....Cmq per informazione...Io ho scritto la query per inserire i dati nel DB e và...
    La query è....
    INSERT INTO CLIENTI VALUES (:KIDCLIENTE, :KNOME, :KCOGNOME, :KREPARTO, :KPADIGLIONE)

    Sempre nel TQuery.
    Quella di selezione con la stessa sintassi ma con SELECT FROM e WHERE non và

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,315
    Originariamente inviato da gaetanotuning
    Però è strano ke non và....Cmq per informazione...Io ho scritto la query per inserire i dati nel DB e và...
    La query è....
    INSERT INTO CLIENTI VALUES (:KIDCLIENTE, :KNOME, :KCOGNOME, :KREPARTO, :KPADIGLIONE)

    Sempre nel TQuery.
    Quella di selezione con la stessa sintassi ma con SELECT FROM e WHERE non và
    sono due cose diverse!

    con la prima tu inserisci dei valori, che immetti come parametri, nella tabella clienti

    con la seconda tu esegui una select e per eseguire una select puoi solo indicare il nome dei campi da selezionare e non i 'parametri'. i parametri li puoi indicare nella clausola 'where'

    altro suggerimento e' quello di specificare in quali campi vanno inseriti i dati che tramite il comando INSERT....

    codice:
    INSERT INTO
        Nome_Tabella (colonna1, colonna 2,...)
    VALUES
        (valore1, valore2,....)
    in questa maniera sara più facile e chiaro trovare eventuali errori e o malfunzionamento.

    quando tu fai una INSERT senza indicare il nome del field dove va inserito il dato, lo stesso dato viene automaticamente inserito al corrispondente field1 o field2 o etc etc, a secondo dell'ordine in cui tu hai scritto.
    se un domani, per un motivo oggi sconosciuto, modificherai la struttura della tabella, spostando l'ordine dei field il tuo programma non funzionera più!

    ancora una cosa (e non chiamarmi assillante!).
    certamente tu usi, e quindi scrivi a mano, la sintassi di insert e o di update per la tua tabella; perche non scegli di semplificarti la vita usando l'apposito componente studiato per non andare fuori di testa ?????

    io utilizzo dalla palette Interbase il componente Ibdataset, e' comodissimo fa tutto da se!

    ciao

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 © 2024 vBulletin Solutions, Inc. All rights reserved.