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

Discussione: problema sql e rs.open

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    155

    problema sql e rs.open

    ciao a tutti ho un problema sulla pagina riportata qui sotto...
    allora quello che vorre ifacesse è: in una pagina ho un form, nel form scrivo ad esempio pippo e voglio che la pagina successiva (riportata qui sotto) mi filtri i risultati secondo il criterio di ricerca "pippo"
    la sql l'ho ottenuta facnedo una query in access



    <%@LANGUAGE="VBSCRIPT"%>
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>
    <%
    SR= trim(request.form("SR")) 'trim pulisce la stinga da spazi all'interno e alla fine
    Set conn=server.CreateObject("adodb.connection")
    conn.open "provider=microsoft.jet.oledb.4.0; data source="&server.MapPath("mdb-database/trunkstock.mdb")
    sql="SELECT T_RICERCA.part_number, T_RICERCA.SR FROM T_RICERCA WHERE (((T_RICERCA.SR)=))"&SR
    set rs =server.CreateObject("adodb.recordset")
    rs.open sql,conn
    %>
    <table width="755" align="center" border="0">
    <tr>
    <td align="center" colspan="2">[img]logo.jpg[/img]</td>
    </tr>
    <tr>
    <td width="755" colspan="2" bgcolor="E4E4E4" align="right">
    <a href="trunkstock.asp">
    <font color="#006633" size="+1">
    .:torna all'elenco:.
    </font>
    </a>

    <a href="AreaRiservata.asp">
    <font color="#006633" size="+1">
    .:area riservata:.
    </font>
    </a>
    </td>
    </tr>
    <tr>
    <td align="center"> <font color="#006633" size="+1"> risultati ricerca
    trunkstock
    </font> </td>
    </tr>
    <tr>
    <td>
    <table border="0" width="755">
    <tr>
    <td height="20">SR</td>
    <td height="20">Part number</td>
    <%
    i=1
    do until (rs.eof)
    If i Mod 2=0 Then
    bg="#EAEAEA" 'colore sfondo
    ft="#000000" 'colore carattere
    Else
    bg="#FFFFFF"
    ft="#000000"
    end if
    %>
    <tr bgcolor="<%= bg %>">
    <td height="20"><font color="<%= ft %>"><%= rs("SR") %></font></td>
    <td height="20"><font color="<%= ft %>"><%= rs("part_number") %></font></td>
    </tr>
    <%
    i=i+1
    rs.movenext
    loop
    %>
    </table>
    <%
    rs.close
    set rs=nothing
    conn.close
    set conn=nothing
    %>


    </td>

    </tr>
    <tr>
    <td>1</td>
    </tr>
    </table>

    </body>
    </html>
    mi da il seguente errore:

    Microsoft JET Database Engine error '80040e14'

    Extra ) in query expression '(((T_RICERCA.SR)=))pippo'.

    /ricerca_attuati.asp, line 15


    ora premetto che ho provato a bloccagli il codice asp dalla riga "rs.open sql,conn" compresa in giù e provare a fagli stampare la variabile SR e me la stampa senza problemi e senza errori nemmeno sulla sql...

    non so che errore possa essere..qualcuno riesce a darmi una mano?
    grazie


    D.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    SR= trim(request.form("SR")) 'trim pulisce la stinga da spazi all'interno e alla fine
    SR = replace(SR, "'","''")
    sql="SELECT T_RICERCA.part_number, T_RICERCA.SR FROM T_RICERCA WHERE T_RICERCA.SR='"& SR &"'"
    Così però fa un ricerca esatta! Forse ti occorre una LIKE?

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    155
    no mi serve la ricerca esatta...ora provo e poi ti dico...x ora grazie


    D.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    155
    xfetto funziona... mi spieghi un attimo il replace x favore?


    e già che ci siamo se volessi fare una ricerca LIKE? come si fa? così magari me lo segno che può sempre tornare utile...

    grazie mille!!

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Togli la replace ed invece di cercare pippo prova a cercare l'albero, ti risponderai da solo...
    Con la LIKE:

    codice:
    ... WHERE T_RICERCA.SR LIKE '%"& SR &"%'"
    Roby

  6. #6

    Problema con inner join

    Ho seguito il dibattito e volevo aggiungere una complicazione: posto il codice


    <%@LANGUAGE="VBSCRIPT"%>
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="format.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    <%
    SR=request.form("IdMacroArea")
    SR = replace(SR, "'","''")
    Set conn=server.CreateObject("adodb.connection")
    conn.open "provider=microsoft.jet.oledb.4.0; data source="&server.MapPath("mdb-database/risorsario_dati.mdb")
    sql= "SELECT t_MacroArea.IdMacroArea, t_Area.IdArea, t_Bisogni.IdBisogni, t_Servizi.IdServizio, t_MacroArea.DescrizioneMacroArea, t_Area.DescrizioneArea, t_Bisogni.DescrizioneBisogno, t_Servizi.DenominazioneServizio FROM ((t_Servizi INNER JOIN (t_MacroArea INNER JOIN t_Ambiti ON t_MacroArea.IdMacroArea = t_Ambiti.IdMacroArea) ON t_Servizi.IdServizio = t_Ambiti.IdServizio) INNER JOIN t_Area ON t_Ambiti.IdArea = t_Area.IdArea) INNER JOIN t_Bisogni ON t_Ambiti.IdBisogno = t_Bisogni.IdBisogni WHERE t_MacroArea.IdMacroArea='"& SR &"'"
    set rs =server.CreateObject("adodb.recordset")
    rs.open sql,conn
    response.Write(sr)
    %>
    <table width="350" class="testo" border="0">
    <tr>
    <td class="cella">IdServizio</td>
    <td class="cella">Denominazione</td>
    <td class="cella">Macro Area</td>
    <td class="cella">Bisogno</td>
    </tr>
    <%
    i=1
    do until (rs.eof)
    If i Mod 2=0 Then
    bg="#EAEAEA" 'colore sfondo
    ft="#000000" 'colore carattere
    Else
    bg="#FFFFFF" 'colore sfondo
    ft="#000000" 'colore carattere'
    end if
    %>
    <tr bgcolor="<%= bg %>">
    <td><font color="<%= ft %>"><span class="testoInizioMaiu"><%= rs("IdServizio") %></span></font></td>
    <td><font color="<%= ft %>"><span class="testoInizioMaiu"><%= rs("DenominazioneServizio") %></span></font></td>
    <td><font color="<%= ft %>"><span class="testoInizioMaiu"><%= rs("DescrizioneMacroArea") %></span></font></td>
    <td><font color="<%= ft %>"><span class="testoInizioMaiu"><%= rs("DescrizioneBisogno") %></span></font></td>
    </tr>

    <%
    i=i+1
    rs.movenext
    loop
    %>
    </table>
    <%
    rs.close
    set rs=nothing
    conn.close
    set conn=nothing
    %>
    </body>
    </html>

    Come vedi ho aggiunto degli inner join: ho creato la sql a partire da una query di access e l'ho adattata ma mi da questo problema

    Informazioni tecniche (per il personale del supporto tecnico)

    Tipo di errore:
    Microsoft JET Database Engine (0x80040E07)
    Tipi di dati non corrispondenti nell'espressione criterio.
    /servizisocialimonza/ElencoServiziProva.asp, line 18


    Tipo di browser:
    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; Embedded Web Browser from: http://bsalsa.com/)

    Pagina:
    POST 34 bytes to /servizisocialimonza/ElencoServiziProva.asp

    POST Data:
    IdMacroArea=2&IdArea=1&IdBisogno=1

    Ora:
    venerdì 6 giugno 2008, 11.21.28


    Informazioni aggiuntive:
    Supporto Microsoft

    Grazie per la soluzione
    :bhò

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    La replace ma soprattutto l'apice singolo serve nella query solo per i campi di tipo testo altrimenti andava bene come prima...

    codice:
    ... WHERE t_MacroArea.IdMacroArea="& SR
    Roby

  8. #8

    GRAZIE

    Grazie se stato fantastico!!

    :bhò

  9. #9

    Ancora un aiutino

    Vorrei mettere un altro problema di una selezione multipla e posto il codice

    <%@LANGUAGE="VBSCRIPT"%>
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="format.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    <%
    IdMA=request.form("IdMacroArea")
    IdMA = replace(IdMA, "'","''")
    IdA=request.Form("IdArea")
    IdA = replace(IdA, "'","''")
    IdB=request.Form("IdBisogni")
    IdB = replace(IdB, "'","''")
    Set conn=server.CreateObject("adodb.connection")
    conn.open "provider=microsoft.jet.oledb.4.0; data source="&server.MapPath("mdb-database/risorsario_dati.mdb")
    'sql= "SELECT t_MacroArea.IdMacroArea, t_Area.IdArea, t_Bisogni.IdBisogni, t_Servizi.IdServizio, t_MacroArea.DescrizioneMacroArea, t_Area.DescrizioneArea, t_Bisogni.DescrizioneBisogno, t_Servizi.DenominazioneServizio FROM ((t_Servizi INNER JOIN (t_MacroArea INNER JOIN t_Ambiti ON t_MacroArea.IdMacroArea = t_Ambiti.IdMacroArea) ON t_Servizi.IdServizio = t_Ambiti.IdServizio) INNER JOIN t_Area ON t_Ambiti.IdArea = t_Area.IdArea) INNER JOIN t_Bisogni ON t_Ambiti.IdBisogno = t_Bisogni.IdBisogni WHERE t_MacroArea.IdMacroArea="& IdMA
    sql= "SELECT t_MacroArea.IdMacroArea, t_Area.IdArea, t_Bisogni.IdBisogni, t_Servizi.IdServizio, t_MacroArea.DescrizioneMacroArea, t_Area.DescrizioneArea, t_Bisogni.DescrizioneBisogno, t_Servizi.DenominazioneServizio FROM ((t_Servizi INNER JOIN (t_MacroArea INNER JOIN t_Ambiti ON t_MacroArea.IdMacroArea = t_Ambiti.IdMacroArea) ON t_Servizi.IdServizio = t_Ambiti.IdServizio) INNER JOIN t_Area ON t_Ambiti.IdArea = t_Area.IdArea) INNER JOIN t_Bisogni ON t_Ambiti.IdBisogno = t_Bisogni.IdBisogni WHERE (((t_MacroArea.IdMacroArea)='"& IdMA &"') AND ((t_Area.IdArea)='"& IdA &"') AND ((t_Bisogni.IdBisogni)='"& IdB &"'))"
    set rs =server.CreateObject("adodb.recordset")
    rs.open sql,conn
    response.Write(sr)
    %>
    <table width="350" class="testo" border="0">
    <tr>
    <td class="cella">IdServizio</td>
    <td class="cella">Denominazione</td>
    <td class="cella">Macro Area</td>
    <td class="cella">Bisogno</td>
    </tr>
    <%
    i=1
    do until (rs.eof)
    If i Mod 2=0 Then
    bg="#EAEAEA" 'colore sfondo
    ft="#000000" 'colore carattere
    Else
    bg="#FFFFFF" 'colore sfondo
    ft="#000000" 'colore carattere'
    end if
    %>
    <tr bgcolor="<%= bg %>">
    <td><font color="<%= ft %>"><span class="testoInizioMaiu"><%= rs("IdServizio") %></span></font></td>
    <td><font color="<%= ft %>"><span class="testoInizioMaiu"><%= rs("DenominazioneServizio") %></span></font></td>
    <td><font color="<%= ft %>"><span class="testoInizioMaiu"><%= rs("DescrizioneMacroArea") %></span></font></td>
    <td><font color="<%= ft %>"><span class="testoInizioMaiu"><%= rs("DescrizioneBisogno") %></span></font></td>
    </tr>

    <%
    i=i+1
    rs.movenext
    loop
    %>
    </table>
    <%
    rs.close
    set rs=nothing
    conn.close
    set conn=nothing
    %>
    </body>
    </html>

    Ho aggiunto un filtro multiplo anzichè uno: si può fare? Ho provato con del codice che ho utilizzato in altre pagine ma ...

    Grazie per la disponibilità!!! Damiano
    :bhò

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    E l'errore sarebbe??
    Stampati al query a video e vediamola...

    Roby

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.