Dreamweaver: problemi con pagine asp.

Di: Tagor | 26/09/2020 18:18:06
Salve a tutti, sto usando Dreamweaver per la creazione di pagine dinamiche per il mio sito e sono settimane che sbatto continuamente la testa sullo stesso problema: non riesco a visualizzare i dati di un mio database Access.
Premetto che in odbc ho creato la connessione tra i DSN di sistema.
Per farvi capire più facilmente il problema vi posto direttamente l'errore e i sorgenti dei files.
Ringrazio anticipatamente tutti coloro che mi daranno una mano.
----- Errore -----
HTTP 500.100 - Errore interno del server - errore ASP
Internet Information Services
--------------------------------------------------------------------------------
Informazioni tecniche (per il personale del supporto tecnico)
Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Driver ODBC Microsoft Access] Il modulo di gestione di database Microsoft Jet non è in grado di aprire il file '(sconosciuto)'. Il file è già aperto con accesso esclusivo da un altro utente o è necessario disporre dell'autorizzazione per visualizzare i dati.
/msacconi/Connections/prova.asp, line 8
----- Errore -----
----Pagine dinamica----
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Archivio.asp" -->
<%
Dim Recordset1
Dim Recordset1_numRows
Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_Archivio_STRING
Recordset1.Source = "SELECT * FROM Cliente"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()
Recordset1_numRows = 0
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>
<body>
<%=(Recordset1.Fields.Item("Nome").Value)%>
<%=(Recordset1.Fields.Item("Cognome").Value)%>
</body>
</html>
<%
Recordset1.Close()
Set Recordset1 = Nothing
%>
----Pagine dinamica----
----Connessione al Db----
<%
' FileName="Connection_odbc_conn_dsn.htm"
' Type="ADO"
' DesigntimeType="ADO"
' HTTP="false"
' Catalog=""
' Schema=""
Dim MM_Archivio_STRING
MM_Archivio_STRING = "dsn=Web;"
%>
----Connessione al Db----

Risposte



Molto sinteticamente ti dico che la stringa è <!--#include file="Connections/Archivio.asp" --> e non <!--#include file="Archivio.asp" --> e ha un nome diverso dalla connessione "dsn=Web;"
Hai pasticciato sicuramente qualcosa... Il nome del file "Archivio.asp" deve corrispondere al nome della stringa "dsn=Web;" quindi dovrebbe essere "dsn=Archivio;"
Ho visto nel codice che hai una tabella cliente e i campi nomi e cognome.
Smantella tutto e rifai daccapo.
Comunque complimenti per la descrizione dettagliata del problema, così dovrebbero fare tutti.
Ecco la tua pagina corretta: (puoi provare anche con copia e incolla)
Pagina dinamica:
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/Archivio.asp" -->
<%
Dim Recordset1
Dim Recordset1_numRows
Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_Archivio_STRING
Recordset1.Source = "SELECT * FROM Cliente"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()
Recordset1_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index
Repeat1__numRows = 10
Repeat1__index = 0
Recordset1_numRows = Recordset1_numRows + Repeat1__numRows
%>
<html>
<head>
<title>Pagina di prova</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table border="1" align="center">
<tr>
<td>Nome</td>
<td>Cognome</td>
</tr>
<% While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF)) %>
<tr>
<td><%=(Recordset1.Fields.Item("Nome").Value)%></td>
<td><%=(Recordset1.Fields.Item("Cognome").Value)%></td>
</tr>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
Recordset1.MoveNext()
Wend
%>
</table>
</body>
</html>
<%
Recordset1.Close()
Set Recordset1 = Nothing
%>
Stringa di connessione:
<%
' FileName="Connection_odbc_conn_dsn.htm"
' Type="ADO"
' DesigntimeType="ADO"
' HTTP="false"
' Catalog=""
' Schema=""
Dim MM_Archivio_STRING
MM_Archivio_STRING = "dsn=Archivio;"
%>

Di: Gian Paolo | 26/09/2020 18:18:06


Innanzitutto ti ringrazio per l'interessamento.
Volevo segnalare che ho risolto il problema in un'altra maniera e cioè impostando i permessi del database Access che avevo creato, per essere visto anche dall'utente che viene usato dall'IIS e il cui nome sarebbe:
IUSR_<nome della macchina>. La protezione si imposta cliccando di destro sull'elemento interessato e poi proprietà. Dal menù "Protezione" si imposta gli utenti abilitati e le autorizzazioni per ogni utente.
Per chi non sapesse come fare per visualizzare il menù "Protezione" cliccando su proprietà, basta andare in Strumenti > Opzioni Cartella > Visualizzazione e poi TOGLIERE il segno di spunta dalla voce "Utilizza condivisione file semplice (scelta consigliata)". A me così ha preso a funzionare.
Ciao e grazie di nuovo.

Di: Tagor | 26/09/2020 18:18:06