Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258

    Query che richiama un valore con caratteri speciali

    il valore nel database è test.test

    accedo alla pagina con il seguente url: elenco.asp?Marchio=test.test

    nella pagina elenco.asp, l'sql per estrarre i record è:
    codice:
    SQL="SELECT Marchio FROM marchi"

    ovviamente mi viene restituito
    codice:
    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
    Non riesco a capire, a livello di logica, come fare; se faccio un replace da . a - avrò lo stesso problema perchè il valore non sarà lo stesso;

    forse devo fare 2 replace sia nella variabile che nell'sql?

    p.s.: il database è access.
    Ultima modifica di Luca1317; 30-07-2015 a 09:16

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    il punto (.) non è un carattere speciale
    potrebbe invece creare problemi quando di lavora coi numeri e il campo del db non è quello corretto per il formato numerico da utilizzare.

    eseguendo
    elenco.asp?Marchio=test.test
    SQL="SELECT Marchio FROM marchi where marchio = '"&request("marchio")&"' "
    ti deve dare il risultato.

    ovviamente devi prevedere BOF e EOF

    controlla che il valore richiesto sia corretto, tipo che potrebbe esserci uno spazio non voluto a fine valore

  3. #3
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    Perdonami ho dato il valore del campo non adatto;

    Non è "test.test" ma "test test" oppure "test'test""

    P.s. il campo marchio è di tipo testo.

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    dovresti controllare come sono registrati i dati, se hai inserito le entità al posto dei caratteri.
    ho appena controllato su un mio db e questo problema non si presenta (tutti i caratteri sono in chiaro)

    prova anche con URLEncode http://www.w3schools.com/asp/met_urlencode.asp

  5. #5
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    Il codice che uso è:

    codice:
    Dim SQLmarchio,RecMarchio   
    SQLmarchio="SELECT CategoriaMarchio FROM marchi WHERE Marchio = '"&Marchio&"' "                                                  
    Set RecMarchio = Server.CreateObject("ADODB.Recordset")
    Set RecMarchio=Conn.Execute(SQLmarchio)
    
    
    CategoriaMarchio=RecMarchio("CategoriaMarchio")
    
    
    RecMarchio.close
    Set RecMarchio = nothing
    in tutti i casi la select preleverà un solo risultato quindi non ho inserito do while not(rs.eof) ... rs.movenext ... loop...

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    anche se dai per scontato che il risultato esiste è sempre bene prevedere che questo non sia trovato.

    prova così:

    SELECT CategoriaMarchio, Marchio FROM marchi WHERE Marchio = '"&Marchio&"' "

  7. #7
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    niente, mi restituisce sempre:
    codice:
    ADODB.Field error '800a0bcd'
    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    bè... verifica: stampa sia la query che un po' di record prima e dopo, e vedi se sto dato esiste.

  9. #9
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    Ho appena capito qual'è l'errore e perché a te funziona e a me no.

    Prima ti dicevo che provavo con: sito.it/elenco.asp=marchio=key

    ma in realtà provavo con sito.it/Marchio-key perchè precedentemente avevo impostato il web.config per le url fiendly.


    Provando con sito.it/elenco.asp=marchio=key funziona tuitto.

    L'errore me lo da quando provo con sito.it/Marchio-key perchè la regola di rewrite nel web.config non tiene conto dei caratteri speciali (ho contrassegnato in grassetto il possibile errore):

    codice:
    <rule name="Rewrite-elenco-Marchi" stopProcessing="true">
              <match url="^Marchio-([_0-9a-z-]+)" />
              <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
              </conditions>
              <action type="Rewrite" url="elenco.asp?marchio={R:1}" />
            </rule>

  10. #10
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    quindi hai risolto?
    se si spiega come fare

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.