Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    errore utilizzando il like

    Non capisco dove sia l'errore...:

    <%
    cerca = request.form("textfield")
    arrCerca = split(cerca," ")


    Dim conn1
    Dim rs1
    Dim sSql1

    'Imposto la connessione
    Set conn1 = Server.CreateObject("ADODB.Connection")
    conn1.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/mdb-database/post.mdb")

    'Imposto la stringa SQL di selezione dati


    sSql1 ="SELECT * from tabpost WHERE "
    for i=0 to ubound(arrcerca)

    sSql1 = sSql1 & "parolachiave LIKE '%"& arrCerca(i) &"%'"
    if not i=ubound(arrcerca) then
    sSql1 = sSql1 & " and "
    end if

    next


    'Creo e apro il Set di Record
    Set rs1 = Server.CreateObject("ADODB.Recordset")
    rs1.Open sSql1, conn1, 3, 3
    %>
    .
    .
    .

    Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

    [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

    /dd/cerca.asp, line 158

  2. #2
    fatti stampare la query prima di eseguirla

    response.write sSql1
    response.end
    rs1.Open sSql1, conn1, 3, 3


    Al massimo prova questa modifica

    codice:
     sSql1 ="SELECT * from tabpost WHERE 1=1"
    for i=0 to ubound(arrcerca)
       sSql1 = sSql1 & "or parolachiave LIKE '%" & arrCerca(i) & "%'"
    next
    se devi controllare sempre lo stesso campo mi sembra che sia più corretto mettere le condizioni in "or" piuttosto che in "and"

  3. #3
    non mi stampa niente...cmq il codice di sopra io l'ho già utilizzato in un altro mio lavoro e funziona...non capisco perché ora non funziona...

  4. #4
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Controlla che la variabile arrcerca sia piena.

  5. #5
    Se non ti stampa niente allora non passa per quella porzioni di codice o c'è qualche errore prima

    prova ad aggiugere le parti in grassetto

    codice:
    <%
    on error resume next
    
    cerca = request.form("textfield")
    arrCerca = split(cerca," ")
    
    
    Dim conn1
    Dim rs1
    Dim sSql1
    
    'Imposto la connessione
    Set conn1 = Server.CreateObject("ADODB.Connection")
    conn1.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/mdb-database/post.mdb")
    
    if err.number<>0 then 
     response.write "errore connessione:" & err.description
     response.end
    end if
    
    
    'Imposto la stringa SQL di selezione dati
    
    response.write "Query :"
    sSql1 ="SELECT * from tabpost WHERE "
    for i=0 to ubound(arrcerca)
    
    sSql1 = sSql1 & "parolachiave LIKE '%"& arrCerca(i) &"%'"
    if not i=ubound(arrcerca) then
    sSql1 = sSql1 & " and "
    end if
    
    next
    
    if err.number<>0 then 
     response.write "errore query:" & err.description
     response.end
    end if
    
    
    
    
    response.write sSql1
    response.end
    
    
    
    'Creo e apro il Set di Record
    Set rs1 = Server.CreateObject("ADODB.Recordset")
    rs1.Open sSql1, conn1, 3, 3
    %>

  6. #6
    si è piena..mi restituisce il valore che sto cercando. Ma no è un problema di tipo di varibile che non si aspettava?

  7. #7
    ho fatto questa ricerca:"ggg hhg"

    Query :SELECT * from tabpost WHERE parolachiave LIKE '%ggg%' and parolachiave LIKE '%hhg%'


    grazie per la mano che mi state dando!

  8. #8
    ma la variabile della query è sSql1 oppure sSqll?

    -Controlla che i nomi delle variabili siano corretti.
    -prova ad eseguire la query su DB (non sarebbe meglio concatenare in or ?)
    - se la quesry funziona prova a togliere il blocco e metti anche il controllo dell'errore dopo l'esecuizione della query.


    edit: se la variabile di ricerca dovesse essere vuota la query andrà in errore.
    o metti un controllo che variabile sia valorizzata o modifichi la query come avevo postato nella prima risposta

  9. #9
    la variabile è con il numero 1...ho provato come mi hai detto ma mi compare questo errore:

    [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'or parolachiave LIKE '%ggg%'or parolachiave LIKE '%hhg%''.

  10. #10
    sembra manchi uno spazio prima dell'or

    Puoi postare il codice così come è adesso?

    domande banali ma non lasciamole al caso
    il campo parolachiave è di tipo testo/memo?

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.