Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    AIUTO!!!! ESEGUIRE UNA QUERY DA ASP SU DB ACCESS

    CIAO,
    ho il seguente problema e ve ne sarei molto grato per l'aiuto:
    ho un db access denominato archivio.mdb con tabella ETICHETTE
    ho fatto una pagina asp per la ricerca tramite form che si trova sulla pagina html index.html:
    codice:
    <%@ LANGUAGE = JScript %>
    <%
    var testo = String(Request.Form("keywords"));
    if (testo=="" || testo=="undefined") Response.Redirect("index.htm");
    
    var keywords = testo.split(" ");
    
    var stringaDiConnessione = "driver={Microsoft Access Driver (*.mdb)};dbq=";
    stringaDiConnessione += Server.MapPath("archivio.mdb");
    var conn = new ActiveXObject("ADODB.Connection");
    conn.Open(stringaDiConnessione);
    
    var sql = "SELECT * FROM ETICHETTE WHERE";
    for (i=0;i<keywords.length;i++) {
      if (i>0) sql += " AND";
      sql += " keywords LIKE '%" + keywords[i] + "%'";
    }
    
    var ris=conn.Execute(sql);
    
    if (ris.EOF) Response.Write("NESSUN DOCUMENTO TROVATO");
    else while (!ris.EOF) {
      Response.Write("
    
    <a href='" + ris("url") + "'>");
      Response.Write(ris("titolo"));
      Response.Write("</a>
    ");
      Response.Write(ris("descrizione"));
      Response.Write("</p>");
      ris.MoveNext();
    }
    
    conn.Close();
    %>
    Mi restituisce sempre lo stesso errore se provo a fare la ricerca:

    codice:
    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
    [Microsoft][Driver ODBC Microsoft Access] Parametri insufficienti. Previsto 1.
    /eti/connessione.asp, line 19

    SONO DISPERATO!!!! AIUTATEMI!!!! :dh: :dh: :dh:

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Fatti stampare la query pprima di eseguirla così vedi quale parametro manca.

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    concordo
    response.write(sql)
    response.end

    dopo la query


  4. #4

    eccomi...

    ciao e grazie per l'aiuto!

    ho immesso questo codice:
    response.whrite(sql);
    response.end;

    subito dopo la query:
    codice:
    <%@ LANGUAGE = JScript %>
    <%
    var testo = String(Request.Form("keywords"));
    if (testo=="" || testo=="undefined") Response.Redirect("index.htm");
    
    var keywords = testo.split(" ");
    
    var stringaDiConnessione = "driver={Microsoft Access Driver (*.mdb)};dbq=";
    stringaDiConnessione += Server.MapPath("archivio.mdb");
    var conn = new ActiveXObject("ADODB.Connection");
    conn.Open(stringaDiConnessione);
    
    var sql = "SELECT * FROM ETICHETTE WHERE";
    for (i=0;i<keywords.length;i++) {
      if (i>0) sql += " AND";
      sql += " keywords LIKE '%" + keywords[i] + "%'";
    }
    
    
    
    response.write(sql);
    response.end;
    
    
    conn.Close();
    %>
    Tipo di errore:
    Errore di run-time di Microsoft JScript (0x800A1391)
    'response' non è definito

  5. #5
    Bisogna usare l'equivalente di response, lato server in ASP/JS, mi sa.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  6. #6
    in JS, secondo sintassi
    codice:
    <%
    Response.Write("pippo");
    %>
    (QP, l'oggetto response sempre quello è, indipendentemente dalla sintassi del linguaggio in uso).

  7. #7

    questo quello che ottengo...

    con questo codice:

    codice:
    <%@ LANGUAGE = JScript %>
    <%
    var testo = String(Request.Form("keywords"));
    if (testo=="" || testo=="undefined") Response.Redirect("index.htm");
    
    var keywords = testo.split(" ");
    
    var stringaDiConnessione = "driver={Microsoft Access Driver (*.mdb)};dbq=";
    stringaDiConnessione += Server.MapPath("archivio.mdb");
    var conn = new ActiveXObject("ADODB.Connection");
    conn.Open(stringaDiConnessione);
    
    var sql = "SELECT * FROM ETICHETTE WHERE";
    for (i=0;i<keywords.length;i++) {
      if (i>0) sql += " AND";
      sql += " keywords LIKE '%" + keywords[i] + "%'";
    }
    
    Response.write(sql);
    Response.end;
    
    var ris=conn.Execute(sql);
    
    
    conn.Close();
    %>
    ottengo questo come risultato nella pagina web:
    codice:
    SELECT * FROM ETICHETTE WHERE keywords LIKE '%920CHCLADE%'
    non so come muovermi

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    La query è giusta.
    Prova a mettere keywords tra parentesi quadre.

    Roby

  9. #9

    finalmente ce l'ho fatta!!!


    si, non ci credo ma ce l'ho fatta!
    ecco il codice:

    codice:
    <%@ language=JSCRIPT %>
    <%
    var testo = String(Request.Form("keywords"));
    if (testo=="" || testo=="undefined") Response.Redirect("index.htm");
    
    var keywords = testo.split(" ");
    
    
    var stringaDiConnessione = "driver={Microsoft Access Driver (*.mdb)};dbq=";
    stringaDiConnessione += Server.MapPath("db_etichette.mdb ");
    var conn = new ActiveXObject("ADODB.Connection");
    conn.Open(stringaDiConnessione);
    
    
    
    var sql = "SELECT * FROM [ETICHETTE] WHERE [ETICHETTA] ";
    for (i=0;i<keywords.length;i++) {
      if (i>0) sql += " AND";
      sql += "= '" + keywords[i] + "'"; 
    }
    
    var ris=conn.Execute(sql);
    
    if (ris.EOF) Response.Write("NESSUN DOCUMENTO TROVATO");
    else while (!ris.EOF) {
      Response.Write("
    
    <center><font color=white>L'etichetta ricercata è: </font>");
      Response.Write("
    <font color=red>")
      Response.Write(ris("ETICHETTA"));
      Response.Write("</font>
    
    <font color=white>Questa si trova sulla seguente posizione:</font>")
      Response.Write("
    
    [b]<font size=10 color=red>");
      Response.Write(ris("DEPOSITO"));
      Response.Write("</font>
    
    <font size=1 color=white> M = Magazzino  -  S = Scaffale  -   A-H = Colonna Scaffale")
      ris.MoveNext();
    }
    
    conn.Close();
    %>
    Il codice in neretto è stato modificato.
    Il db access ho dovuto convertirlo da vers. 2003 a 2000

    Non badate alla formattazione del testo per i vari Response.Write
    che ho fatto!!!!

    GRAZIE A TUTTI PER L'AIUTO: SIETE GRANDI!!!!!!!!!!!

    CIAO

  10. #10
    ma se non metti keywords o ne metti più d'una funziona lo stesso?
    xxx

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.