Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585

    confronto valori numerici in stringa SQL

    Ciao a tutti,
    ho un database dove il campo "Progetto_Inizio" e' definito come Numerico - Intero

    Nella pagina index.asp ho creato:
    var par6 = document.forms[0].progetto_inizio.options[document.FrontPage_Form.progetto_inizio.selectedIn dex].text ...
    document.FrontPage_Form.action = "response_ck.asp ?start="+par6
    document.FrontPage_Form.submit(); }

    <body>
    <select size="1" name="progetto_inizio" id="progetto_inizio">
    <option selected><%=objRS("Progetto_Inizio")%></option>
    <option>2005</option>
    <option>2006</option>
    <option>2007</option>
    <option>2008</option>
    <option>2009</option>
    <option>2010</option>
    </select>

    Nella pagina response_ck.asp invece ho:
    <%@ Language=VBScript %>
    <% Option Explicit
    Dim start
    start = Request("start")
    %>
    .....
    <BODY>

    strSQL = "SELECT * FROM table WHERE Progetto_Inizio >= '%" & start & "%'"
    Set objRS = objConn.Execute(strSQL)
    '
    ....

    Il mio probema e':
    Vorrei far eseguire la query operando un filtro sui valori contenuti nel campo "Progetto_Inizio" >= 2005 ad esempio ma ho il seguente errore:

    Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
    [Microsoft][Driver ODBC Microsoft Access] Tipi di dati non corrispondenti nell'espressione criterio.
    response_ck.asp, line 45


    Ho provato a mettere in diversi posti sia la cint che la funzione IsNumeric ma non ho ottenuto niente ...

    Dove sbaglio ???

    Grazie mille in anticipo !!!

  2. #2
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781

    Re: confronto valori numerici in stringa SQL

    Originariamente inviato da betto
    strSQL = "SELECT * FROM table WHERE Progetto_Inizio >= '%" & start & "%'"
    Set objRS = objConn.Execute(strSQL)
    Se il campo Progetto_Inizio č numerico, non servono gli apici.

    codice:
    strSQL = "SELECT * FROM table WHERE Progetto_Inizio >= " & start
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nč quando nč da dove,
    t'amo direttamente senza problemi nč orgoglio:
    cosė ti amo perchč non so amare altrimenti

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Ho visto che all' inizio il campo "Progetto_Inizio" era di testo,

    adesso rimettendolo la query torna a funzionare pero' non funziona la condizione di confronto:

    rimettendo il campo del database come testo non riesco a filtrare i records >= 2007 ad esempio,

    come fare ??

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Grazie MMarzia e Optime per i preziosissimi aiuti,
    ho fatto come mi avete detto e ora funziona bene

    L' unica cosa e' che ho imposto nel database che il campo "Progetto_Inizio" sia numerico altrimenti se e' definito come testo ottengo come errore nella query SQL:

    Tipo di dati non corrispondenti nell' espressione criterio ...

    Nell' ipotesi che "Progetto_Inizio" fosse definito come testo,
    ho provato a mettere:

    strSQL = "SELECT * FROM table WHERE Cint(Progetto_Inizio) >= " & start
    Set objRS = objConn.Execute(strSQL)

    senza pero' nessun risultato...
    deduco che allora questo tipo di confronto presuppone che il campo deve assolutamente essere numerico...

    Grazie infinite !!!


  6. #6
    allora, torniamo ai fondamentali

    se č NUMERICO

    bla bla bla >= numero

    se č TEXT

    bla bla bla >= 'text'


  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Optime,
    visto che mi hai dato una speranza nell' usare il campo testo...

    Ho rimesso il campo "Progetto_Inizio" come testo,
    ho rifatto la query:

    strSQL = "SELECT * FROM table WHERE Progetto_Inizio >= " & start

    cercando di mettere gli apicetti singoli sulla variabile ma mi da' errore di sintassi...

    strSQL = "SELECT * FROM table WHERE Progetto_Inizio >= ' " & start & "' "


  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    OK, quello postato prima funziona,
    avevo inserito una riga di commento che faceva confusione ...

    Optime, Grazie di tutto !!! Sei grande !!!


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