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

    Query SQL con costrutto LIKE

    Salve a tutti!!
    Ho il seguente problema: con una determinata riga di codice SQL eseguita su Access, tutto va bene; se la eseguo tramite il codice ASP Javascript scritto qui sotto, c'è qualcosa che non va.
    Premetto che il codice qui sotto, se nell'istruzione SQL non metto il costrutto LIKE funziona e stampa tutto correttamente.
    Se invece nell'istruzione SQL metto,appunto, il costrutto LIKE, mi viene restituita una tabella vuota. Cosa posso fare?
    In pratica vorrei stampare tutti i libri che hanno nella colonna title una o più parole tra quelle inserite in un campo di testo (quello presente nella variabile titolo nel codice postato qui sotto).
    Un esempio è questo: SELECT * FROM books WHERE title LIKE '*zoo*'
    Aggiungo anche che ho fatto delle stampe di prova per vedere che istruzione SQL genera il codice, e sembra che la generi giusta (quella scritta qui sopra è generata dal codice e funziona (solo) su access..)

    Codice PHP:
    var conString "Provider = Microsoft.Jet.OLEDB.4.0; " "Data Source = " Server.MapPath("bookstore.mdb");
    var 
    sSQLString;
    var 
    rs Server.CreateObject("ADODB.Recordset");
    var 
    con Server.CreateObject("ADODB.Connection");
    con.Open(conString);
    var 
    temp titolo.split(" "); 
    var 
    0;
    var 
    0;
    var 
    sql "";
    for(
    str in temp){     k=k+1; } 

    for(
    str in temp) {
       
    sql sql "title LIKE '*"temp[str] +"*' ";
       
    j+1;
       if(
    j<ksql sql " OR ";
    }                         

    sSQLString "SELECT * FROM books WHERE "+sql;
    Response.Write(sSQLString); 
    rs con.Execute(sSQLString);
    var 
    1;
    Response.Write("<table align= center>"); 
    Response.Write("<tr><td>Autore</td><td>Titolo</td><td>Costo unitario</td><td>Quantit&agrave; disponibile</td><td>Quantit&agrave; da ordinare</td></tr>"); 

    while (
    rs.EOF==false){
          
    Response.Write"<tr><td>"rs("authors").Value"</td>" +
                                 
    "<td>"rs("title").Value"</td>" +
                                 
    "<td>"rs("cost").Value"</td>" +
                                 
    "<td>"rs("qty").Value"</td>" +
                                 
    "<td> <input type=\"text\" maxlength=\"3\" name=\"quanti"+  +" \" value=\"0\" size=\"10\"></td></tr>"       
                                
    );
    rs.MoveNext();
    i+1;
    }                         
    Response.Write("</table>");
    rs.Close();
    con.Close(); 
    Piero

  2. #2
    perché l'animale (Access) usa "*" invece dello standard "%".

  3. #3
    Originariamente inviato da optime
    perché l'animale (Access) usa "*" invece dello standard "%".
    Quindi? c'è un modo per aggirare il problema?
    Ti prego dimmi di si!!!
    Piero

  4. #4
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755

    alla "disperata" proverei a cambiare da
    like '*zoo*'
    a
    like "*zoo*"

    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  5. #5
    ehm... optime mi ha dato un'idea e ho provato... allora:

    così funziona su access e non restituisce niente con asp:
    SELECT * FROM books WHERE title LIKE '*zoo*'

    invece così è l'esatto contrario... asp tutto bene, la inserisco su access e da vuoto:
    SELECT * FROM books WHERE title LIKE '%zoo%'

    insomma, ora sono contento, funziona... ma vi chiedo... tutto ciò ha senso??
    Piero

  6. #6
    che vuol dire "tutto ciò ha senso?" ? ti ho già spiegato...

  7. #7
    Originariamente inviato da optime
    che vuol dire "tutto ciò ha senso?" ? ti ho già spiegato...
    sisi... hai ragione!!!
    è che mi sono un po' stupito e inoltre avevo fatto un pensiero sbagliato!! ihih... meglio nn dirlo, altrimenti passo per scemo!! :P

    grazie mille!!!!
    Piero

  8. #8
    altra domanda: come posso passare il valore delle variabile i, creata nella porzione di codice che ho postato qui, a un'altra pagina?
    Piero

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.