Allora ho fatto attivare dal provider l'opzione per vedere il dettaglio degli errori.
L'errore è:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[MySQL][ODBC 5.1 Driver][mysqld-5.5.13-enterprise-commercial-advanced-log]MySQL server has gone away
E la linea incriminata è quella dove c'è scritto:
set rsFam = OggettoDB.execute(sql)
Il mio file global.asa è:
<OBJECT RUNAT=Server SCOPE=Session ID=OggettoDB PROGID="ADODB.Connection"></OBJECT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
sub Session_OnStart
OggettoDB.Open "driver={MySQL ODBC 5.1 Driver};server=XXX;User=XXX;PWD=XXX;database=xxx;o ption=3"
Application.lock
Application ("inlinea") = Application ("inlinea") + 1
Application.unlock
end sub
sub Session_OnEnd
Application.lock
Application ("inlinea") = Application ("inlinea") - 1
Application.unlock
session("utente") = ""
session("password") = ""
OggettoDB.close
end sub
</SCRIPT>
Se provo questa pagina:
<html>
<%
Dim sConnection, objConn , objRS
sConnection = "driver={MySQL ODBC 5.1 Driver};server=XXX;User=XXX;PWD=XXX;database=xxx;o ption=3"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open(sConnection)
Set objRS = objConn.Execute("SELECT * FROM pro")
While Not objRS.EOF
Response.Write objRS.Fields("Nome") & ", " & objRS.Fields("Id_pro") & "
"
objRS.MoveNext
Wend
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
</html>
Il problema non si verifica, quindi il problema è nel codice non nel server.
Ma non capisco quale sia la differenza.

Rispondi quotando