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

    DELPHI: problema query campo numerico

    Ciao a tutti,
    ho una query che fa riferimento ad alcuni campi numerici.
    Vorrei selezionare ad esempio tutti quelli che hanno al loro interno il valore 8.
    Con le stringhe faccio così:
    codice:
    DataModule1.Q_clienti.Params[0].AsString := ('%' + uppercase(Edit1.Text) + '%');
    Come devo fare per un campo numerico?

    Fatemi sapere.
    Grazie mille.

  2. #2

  3. #3
    Premetto che nn l'ho potuta provare e vado a memoria
    Con sintassi Interbase / firebird così dovrebbe funzionare

    codice:
    Select <campi> from <tabella>
    where <condizioni>
    and
    CAST(CAMPONUMERICO AS VARCHAR(12)) like "%8%"
    ciao

  4. #4
    Mi servirebbe la sintassi per passare il paramentro come in questo esempio per le stringhe:
    codice:
    DataModule1.Q_clienti.Params[0].AsString := ('%' + uppercase(Edit1.Text) + '%');

    codice:
    DataModule1.Q_clienti.Params[0].AsInteger := (... + numero + ...);

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Re: DELPHI: problema query campo numerico

    Originariamente inviato da pegaso22
    Come devo fare per un campo numerico?
    Usa AsInteger o AsFloat o AsBoolean a seconda del tipo di file.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  6. #6
    Ciao Alka,
    non ho capito.
    Il campo è integer quindi uso AsInteger.
    Solo che facendo così ovviamente va in errore:
    codice:
    DataModule1.Q_clienti.Params[0].AsInteger := ('%' + uppercase(Edit1.Text) + '%');
    Cosa devo utilizzare al posto di '%' per indicare tutto quello prima e tutto quello dopo?

  7. #7
    Innanzitutto non hai ancora detto che Server SQL usi
    Cmq l'operatore like funziona solo con stringhe.
    E' per quello che nel mio post di prima ho convertito tramite il CAST la colonna numerica in VARCHAR e poi fatto il like. Il passaggio parametri va fatto in base al tipo di colonna / valore da passare... quindi se usi il like devi fare "AsString"

    Ciao

  8. #8
    Ok, nella query (visto che il valore è numerico) uso = e non like, giusto?

  9. #9
    Ok, ho convertito in string (nella query) il valore intero.
    Non capisco comunque come sia possibile che non esista un equivalente di quello che ho scritto sopra per le stringe valido per gli interi.

    Comunque, grazie mille!

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Dal mio punto di vista, indipendentemente dal database server in uso, è errato l'uso che si fa dei parametri. Che senso ha usare un parametro per concatenare poi i valori inseriti?

    I parametri si utilizzando quando si comparano campi con una variabile (che rappresenta il parametro) da inizializzare prima di eseguire la query.

    Nel caso in esame, dovendo concatenare una istruzione LIKE nello statement SQL, non serve usare un parametro: basta concatenare il valore nella query (tanto il concatenamento lo fai comunque).

    Inoltre, dovresti anche postare la query, oltre all'errore effettivo che non mi sembra sia stato specificato ancora nel corso della discussione.

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

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

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