Newsgroup: it.comp.www.asp
Titolo: Due errori : Errore HTTP 405 , ODBC errore "80040e14"

Ciao a tutti,
troppi errori per iniziare.
Ho deciso di cominciare ad interessarmi alle pagine ASP pubblicando (in
locale) in ASP un piccolo database
fatto con Access 97 e scrivendo una query e gestendola con un file ASP.
Dopo aver installato PersonalWebServer4 dal CD-rom di Win98, ho creato
un database minumo con Access "dbprimo.mdb" contenente una
"Tabellaprimo" ed una "query1" ambedue salvate in file esterni con
estensioni ASP.
Nel PWS4 che ha come home directory :
C:\Inetpub\wwwroot
ho inserito una directory con alias /Tutorial e posizione fisica
C:\Tutorial.
Ho provveduto a inserire nel ODBC di sistema il mio database seguendo la
procedura da piu' parti  consigliata, attribuendogli il  nome
_fonte_dati "primo" ed aggiungendolo al DSN si sistema:
dall'icona
pannello_di_Controllo->ODBC->DSN_di_sistema->aggiungi->Fine->Nome_fonte_dati
"primo" , database->Seleziona->C:\temp\dbprimo.mdb->ok.
I file Tabellaprimo.ASP e query1.ASP li ho salvati nella directory
C:\Tutorial, con alias /Tutorial.
Da Internet Explorer ( o Netscape) con  PWS attivo specificando la URL:
http://localhost/Tutorial/Tabellaprimo.asp
vedo la tabella "Tabellaprimo" di dbprimo.mdb. E fin qui , tutto bene.
Quando specifico la URL:
http://localhost/Tutorial/query1.htm
viene visualizzata la form query1, ma poi cliccando il bottone di
submit,
a cui e' associato  query1.ASP, ottengo l'errore:
-----------------------------------------------------------------------------
Microsoft OLE DB Provider for ODBC Drivers errore "80040e14"
[Microsoft][Driver ODBC Microsoft Access 97] Parentesi chiusa in
eccesso: ) nell'espressione della query '(((Tabellaprimo.[codice
progressivo])=))'.
/tutorial/Query1.ASP, riga 26
-----------------------------------------------------------------------------
I file query1.htm e query1.ASP, ambedue generati da Access, sono i
seguenti:
-----------------------------------------------------------------------------
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type"
CONTENT="text/html;charset=windows-1252">
<TITLE>Query1</TITLE>
<BODY>
<FORM METHOD="GET" ACTION="Query1.ASP">
[da controllare] <INPUT TYPE="Text" NAME="[da controllare]"><P>
<INPUT TYPE="Submit" VALUE="Query in esecuzione">
</FORM>
</BODY>
</HTML>
-----------------------------------------------------------------
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type"
CONTENT="text/html;charset=windows-1252">
<TITLE>Query1</TITLE>
</HEAD>
<BODY>
<%
Param = Request.QueryString("Param")
Data = Request.QueryString("Data")
%>
<%
If IsObject(Session("primo_conn")) Then
    Set conn = Session("primo_conn")
Else
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.open "primo","",""
    Set Session("primo_conn") = conn
End If
%>
<%
    sql = "SELECT Tabellaprimo.[codice progressivo],
Tabellaprimo.titolo, Tabellaprimo.autore  FROM Tabellaprimo  WHERE
(((Tabellaprimo.[codice progressivo])=" & Request.QueryString("[da
controllare]") & "))   "
    If cstr(Param) <> "" And cstr(Data) <> "" Then
        sql = sql & " And [" & cstr(Param) & "] = " & cstr(Data)
    End If
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn, 3, 3
%>
<TABLE BORDER=1 BGCOLOR=#ffffff CELLSPACING=0><FONT FACE="Arial"
COLOR=#000000><CAPTION><B>Query1</B></CAPTION>
<THEAD>
<TR>
<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 ><FONT SIZE=2 FACE="Arial"
COLOR=#000000>codice progressivo</FONT></TH>
<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 ><FONT SIZE=2 FACE="Arial"
COLOR=#000000>titolo</FONT></TH>
<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 ><FONT SIZE=2 FACE="Arial"
COLOR=#000000>autore</FONT></TH>
</TR>
</THEAD>
<TBODY>
<%
On Error Resume Next
rs.MoveFirst
do while Not rs.eof
 %>
<TR VALIGN=TOP>
<TD BORDERCOLOR=#c0c0c0  ALIGN=RIGHT><FONT SIZE=2 FACE="Arial"
COLOR=#000000><%=Server.HTMLEncode(rs.Fields("codice
progressivo").Value)%><BR></FONT></TD>
<TD BORDERCOLOR=#c0c0c0 ><FONT SIZE=2 FACE="Arial"
COLOR=#000000><%=Server.HTMLEncode(rs.Fields("titolo").Value)%><BR></FONT></TD>
<TD BORDERCOLOR=#c0c0c0 ><FONT SIZE=2 FACE="Arial"
COLOR=#000000><%=Server.HTMLEncode(rs.Fields("autore").Value)%><BR></FONT></TD>
</TR>
<%
rs.MoveNext
loop%>
</TBODY>
<TFOOT></TFOOT>
</TABLE>
</BODY>
</HTML>
-----------------------------------------------------------------
dove la riga 26 di errore e':
rs.Open sql, conn, 3, 3
Qual e' la causa dell'errore ?
Di seguito riporto il codice generato da Access di Tabellaprimo.ASP:
---------------------------------------------------------------------
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type"
CONTENT="text/html;charset=windows-1252">
<TITLE>Tabellaprimo</TITLE>
</HEAD>
<BODY>
<%
Param = Request.QueryString("Param")
Data = Request.QueryString("Data")
%>
<%
If IsObject(Session("primo_conn")) Then
    Set conn = Session("primo_conn")
Else
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.open "primo","",""
    Set Session("primo_conn") = conn
End If
%>
<%
    sql = "SELECT * FROM [Tabellaprimo]"
    If cstr(Param) <> "" And cstr(Data) <> "" Then
        sql = sql & " WHERE [" & cstr(Param) & "] = " & cstr(Data)
    End If
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn, 3, 3
%>
<TABLE BORDER=1 BGCOLOR=#ffffff CELLSPACING=0><FONT FACE="Arial"
COLOR=#000000><CAPTION><B>Tabellaprimo</B></CAPTION>
<THEAD>
<TR>
<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 ><FONT SIZE=2 FACE="Arial"
COLOR=#000000>codice progressivo</FONT></TH>
<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 ><FONT SIZE=2 FACE="Arial"
COLOR=#000000>codice ISBN</FONT></TH>
<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 ><FONT SIZE=2 FACE="Arial"
COLOR=#000000>titolo</FONT></TH>
<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 ><FONT SIZE=2 FACE="Arial"
COLOR=#000000>autore</FONT></TH>
<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 ><FONT SIZE=2 FACE="Arial"
COLOR=#000000>casa editrice</FONT></TH>
<TH BGCOLOR=#c0c0c0 BORDERCOLOR=#000000 ><FONT SIZE=2 FACE="Arial"
COLOR=#000000>anno edizione</FONT></TH>
</TR>
</THEAD>
<TBODY>
<%
On Error Resume Next
rs.MoveFirst
do while Not rs.eof
 %>
<TR VALIGN=TOP>
<TD BORDERCOLOR=#c0c0c0  ALIGN=RIGHT><FONT SIZE=2 FACE="Arial"
COLOR=#000000><%=Server.HTMLEncode(rs.Fields("codice
progressivo").Value)%><BR></FONT></TD>
<TD BORDERCOLOR=#c0c0c0 ><FONT SIZE=2 FACE="Arial"
COLOR=#000000><%=Server.HTMLEncode(rs.Fields("codice
ISBN").Value)%><BR></FONT></TD>
<TD BORDERCOLOR=#c0c0c0 ><FONT SIZE=2 FACE="Arial"
COLOR=#000000><%=Server.HTMLEncode(rs.Fields("titolo").Value)%><BR></FONT></TD>
<TD BORDERCOLOR=#c0c0c0 ><FONT SIZE=2 FACE="Arial"
COLOR=#000000><%=Server.HTMLEncode(rs.Fields("autore").Value)%><BR></FONT></TD>
<TD BORDERCOLOR=#c0c0c0 ><FONT SIZE=2 FACE="Arial"
COLOR=#000000><%=Server.HTMLEncode(rs.Fields("casa
editrice").Value)%><BR></FONT></TD>
<TD BORDERCOLOR=#c0c0c0  ALIGN=RIGHT><FONT SIZE=2 FACE="Arial"
COLOR=#000000><%=Server.HTMLEncode(rs.Fields("anno
edizione").Value)%><BR></FONT></TD>
</TR>
<%
rs.MoveNext
loop%>
</TBODY>
<TFOOT></TFOOT>
</TABLE>
</BODY>
</HTML>
---------------------------------------------------------------
dove la riga 26 e' :     rs.Open sql, conn, 3, 3
ma qui non genera alcun errore.
Per risolvere questo problema ho trovato un Tutorial  al sito Microsoft:
http://msdn.microsoft.com/workshop/server/asp/asptutorial.asp
dal quale ho estratto l' esempio Button.htm che genera un bottone a cui
e' associata una Action che richiama Button.htm stesso. Di seguito
riporto 
il listato e l'errore generato al clic del bottone:
-------------------------------------------------------------------------
<html>
  <head>
  <title>Button Form</title>
  </head>
  <body>
  <FORM NAME="Button Example" METHOD="POST"
ACTION="tutorial/button.htm">
  Computer Programming Experience:
  <P>
  <INPUT TYPE="button" NAME="choice" VALUE="Less than 1">Less than
1year.<BR>
  <INPUT TYPE="button" NAME="choice" VALUE="1 to 5">1-5 years.<BR>
  <INPUT TYPE="button" NAME="choice" VALUE="More than 5">More than
5years.
  </P>
  <P><INPUT TYPE="reset" VALUE="Clear Form">
  <INPUT TYPE="submit" VALUE="Submit">
  </P>
  </form>
  </body>
  </html>
--------------------------------------------------------------------------
HTTP Errore 405
405 Metodo non consentito.
Non è possibile utilizzare il metodo specificato nella riga di richiesta
per la risorsa indicata. Controllare che sia installato il tipo
MIME corretto per la risorsa desiderata.
Se il problema persiste, contattare l'amministratore del server.
---------------------------------------------------------------------------
Il file Button.htm l'ho posto nella directory con alias /Tutorial e
quando per raggiungerlo do '   l'URL:
http://localhost/Tutorial/button.htm
ottengo l'errore gia' riportato e l'URL che mi appare e' con un doppio
Tutorial:
http://localhost/Tutorial/Tutorial/button.htm
Perche' si verificano i due errori ?
Grazie in anticipo

 seguenti:
Cerca di capire cosa fanno e riscrivili a mano, rimuovi tutto il
codice inutile, cosi' capisci come funziona il congegno.
Davide