PDA

Visualizza la versione completa : HELP!!! Query SQL da web page ad Access


d.testa
28-06-2001, 09:57
Ho un problema con una query che dovrebbe gestire un passaggio di dati da una pagina .asp ad un database Access 2000.
Questa la query che utilizzo:

strSql="SELECT * From Documento WHERE (IDAzione=" & rqAzioni & " AND IDSettore=" & rqCategorie & ") OR Keyword LIKE '" & rqKey & "*'"

Le variabili

rqAzioni, rqCategorie e rqKey

ricevono dei valori con il metodo Request all'inizio della pagina e vengono confrontati con i valori dei campi

IDAzione, IDSettore e Keyword

della tabella documento.
Il problema sorge con la condizione OR.
Praticamente, se la query riceve i primi due valori validi, nella pagina successiva a questa vengono visualizzati dei record prelevati dal database; se al contrario e valida solo la condizione OR, viene generato un errore di questo tipo:

Error Type:
ADODB.Recordset (0x800A0BCD)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

Premetto che la stessa query, provata direttamente sul database, funziona perfettamente.
Grazie a chi sia in grado di aiutarmi.
Ciao

giudilla
28-06-2001, 10:31
Dovresti mandare anche il pezzo di codice che utilizzi
per visualizzare i risultati della query, perche'
l'errore e' li'.
Giudilla.

d.testa
28-06-2001, 10:40
Ciao, questa la porzione di codice HTML/ASP che utilizzo per visualizzare i risultati della query.


<table border="1" width="611" cellspacing="0" cellpadding="2">
<%
RsTit.MoveFirst
If RsTit.EOF Then
Response.Write "nessun record trovato"
Else
Do While Not RsTit.EOF
Response.Write "<tr><td valign='middle' align='left' width='250' bgcolor='#fffff0'>"
Response.Write RsTit("Titolo")
Response.Write "</td>"
Response.Write "<td valign='middle' align='left' width='250' bgcolor='#fffff0'>"
Response.Write RsTit("Descrizione")
Response.Write "</td>"
Response.Write "<td valign='middle' align='right' width='111' bgcolor='#fffff0'>" & RsTit("IDDocumento")
Response.Write "</td></tr>"
RsTit.MoveNext
Loop
End If
%>

</table>

P.S.(problema aggiuntivo) Ho provato a utilizzare pi parole all'interno dell'operatore LIKE, racchiudendole tra due asterischi, ma ritornano solo i record che corrispondono esattamente a quelle parole(compreso l'ordine di sequenza) e non i record dove sono presenti una o tutte le parole indipendentemente dall'ordine.
Ciao

giudilla
28-06-2001, 10:58
Invece del nome della colonna, passagli il progressivo
che indica la posizione della colonna nel recordset
ad esempio
RsTit("Titolo")
diventa
RsTit(0)

Giudilla

Loading