CAST non mi funzia

di il
7 risposte

CAST non mi funzia

Salve ragazzi vi chiedo un aiuto!
Devo convertire la variabile $NOME che proviene da un input text in in integer. Script ciò:
SELECT
n.cx_c_nome,
g.lat,
g.lng,
FROM
tn_nomi
left join tn_geo g on i.cx_c_nome= g.cx_c_nome and i.cn_c_indiriz= g.cn_c_indiriz
WHERE
n.cx_c_nome = (CAST('$NOME' AS int))

ma SQL server mi da questo errore:
Warning: odbc_exec(): SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Conversione non riuscita durante la conversione del valore varchar .... nel tipo di dati int., SQL state 22005 in SQLExecDirect

In cosa sbaglio??

7 Risposte

  • Re: CAST non mi funzia

    Ma cosa è

    '$NOME'

    ??
  • Re: CAST non mi funzia

    È uno script php giusto? posta più codice, non è chiaro come stai cercando di eseguire la query.
    Inoltre la variabile $NOME che valore contiene all'interno?
  • Re: CAST non mi funzia

    oregon ha scritto:


    Ma cosa è

    '$NOME'

    ??
    Chiaramente sto usando php e $NOME è la variabile che prendo da un input type=text del form che mi serve per fare la ricerca nel database!
    Lo script mi funzia se inserisco come $nome un valore di tipo int, al contrario quando inserisco una variabile di tipo varchar mi da l'errore appena postato.
    Riguardo al mio database tn_nomi è una tabella e cx_c_nome un campo di tipo integer.
    Sono stato più chiaro? Aspetto risposte o eventualmente altre chiarificazioni che volete chiedermi.
  • Re: CAST non mi funzia

    Certo che ti deve date l'errore:
    se fai il cast a int del valore '10' deve farlo
    se fai il cast a int del valore 'pippo' deve andare in errore.

    Cosa ti aspettavi?
  • Re: CAST non mi funzia

    Toki ha scritto:


    Certo che ti deve date l'errore:
    se fai il cast a int del valore '10' deve farlo
    se fai il cast a int del valore 'pippo' deve andare in errore.

    Cosa ti aspettavi?
    Allora come posso fare per risolvere? Hai qualche idea da consigliarmi. Usando mysql non ho problemi solo che devo lavorare per SQL server e non so come risolvere
  • Re: CAST non mi funzia

    Da un punto di vista logico è insensato confrontare i valori di un campo numerico con la stringa 'pippo'.
    Da un punto di vista formale è insensato chiamare cx_c_nome un campo intero.

    Detto questo, la mia palla di vetro suggerisce il seguente accrocchio / soluzione al problema:
    WHERE CAST(n.cx_c_nome AS Varchar) = '$NOME'
  • Re: CAST non mi funzia

    Toki ha scritto:


    Da un punto di vista logico è insensato confrontare i valori di un campo numerico con la stringa 'pippo'.
    Da un punto di vista formale è insensato chiamare cx_c_nome un campo intero.

    Detto questo, la mia palla di vetro suggerisce il seguente accrocchio / soluzione al problema:
    WHERE CAST(n.cx_c_nome AS Varchar) = '$NOME'
    In realtà lo script fa parte di un software gestionale ampi. La scelta cx_c_nome è integer perchè il cliente è registrato con un codice numerico!
    Cmq l"accrocchio" funzia però ora devo controllare la stringa vuota altrimenti mi tira giù tutto database! Provo così. Grazie cmq
Devi accedere o registrarti per scrivere nel forum
7 risposte