Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Variabili in query SQL

  1. #1
    Dovrei estrarre da un database solo i records che iniziano con una lettera selezionata da un form (Request.Form ("lettera"). Se nella query metto per esempio:

    strsql = "SELECT * FROM contatti WHERE societa LIKE 'A%' ORDER BY societa"

    funziona tutto perfettamente, mentre se utilizzo la variabile "selectlettera" non va e mi dice che l'applicazione ha bisogno di un record corrente (?).

    Qualcuno può aiutarmi per favore?

    Vi posto il codice:

    <%@ Language = "VBScript" @ ENABLESESSIONSTATE=False %>

    <%
    dim conn
    dim rs
    dim strsql
    dim strconn
    dim selectlettera

    strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath ("contatti.mdb")
    set conn = server.createobject ("adodb.connection")
    conn.open strconn

    set rs = server.createobject ("adodb.recordset")

    strsql = "SELECT * FROM contatti ORDER BY societa"
    rs.open strsql, conn

    useraction = request("action")
    select case useraction
    case "login"
    strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath ("contatti.mdb")
    set conn = server.createobject ("adodb.connection")
    conn.open strconn
    set rs = server.createobject ("adodb.recordset")
    selectlettera = Request.Form("lettera")
    strsql = "SELECT * FROM contatti WHERE societa LIKE 'selectlettera' & %' ORDER BY societa"
    rs.open strsql, conn
    end select
    %>

    Sono alle prime armi....pietà!
    Grazie a tutti!

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    77
    stai componendo male la stringa sql. Controlla
    il concatenamento.

    Suggerimento: prima di effettuare la query,
    manda in output la stinga che componi.

    strsql = "SELECT * FROM contatti WHERE societa LIKE 'selectlettera' & %' ORDER BY

  3. #3
    Grazie giudilla per il consiglio

    Ho fatto come mi hai detto però, nonostante la stringa sia corretta in output, lo script mi da ancora un errore, te lo posto:

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

    [Microsoft][ODBC Microsoft Access 97 Driver] Syntax error (missing operator) in query expression 'societa alike'.

    Questa e la query corretta:

    strsql = "SELECT * FROM contatti WHERE societa LIKE "'" & selectlettera & "%" & "'" ORDER BY societa"

    Grazie ancora!

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2000
    Messaggi
    77
    Sicuro di aver controllato bene?
    nel tuo errore

    [Microsoft][ODBC Microsoft Access 97 Driver] Syntax error (missing operator) in query expression 'societa alike'.

    compare l'espressione 'societa alike'

    da dove salta fuori la a di 'alike'???

    Ciao, Giudilla.

  5. #5
    Vorrei sapere anch'io da dove arriva! Ho provato a usare Response.Write "'" & selectlettera & "%" & "'" e la stringa che mi ritorna è giusta (es. 'A%').

    Grazie comunque per avermi risposto.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    43

    Prova così

    in questo modo non dovrebbero esserci problemi....

    strsql = "SELECT * FROM contatti WHERE societa LIKE '[" & selectlettera & "]%' ORDER BY societa"

    ciao...


  7. #7
    Proverò il tuo suggerimento lunedì mattina (al lavoro...)
    Grazie per l'aiuto
    Ciao

  8. #8
    Ragazzi funziona!
    Questa è la stringa giusta:

    strsql = "SELECT * FROM contatti WHERE societa LIKE '"& selectlettera & "%" &"' ORDER BY societa"

    Grazie a tutti per l'aiuto!

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.