Newsgroup: it.comp.www.asp
Titolo: Cannot open database '(unknown)'.

Salve a tutti,
ho fatto una semplice paginetta asp che si collega ad un db access e
visualizza il risultato della query.
La cosa strana e' che a volte funziona correttamente, mentre altre volte mi
scrive questo messaggio di errore:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine
cannot open the file '(unknown)'. It is already opened exclusively by
another user, or you need permission to view its data.
/folcloremdb/default.asp, line 13
Per comodita' vostra posto anche il codice che ho scritto (la pagina .asp
tanto per intenderci):
===============================================================
<% Response.Buffer = True %>
<HTML>
<HEAD>
</HEAD>
<%
dim Conn
dim Rs
Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open "DSN=
mamsoft.com
"
SQL = "SELECT * FROM Gruppi"
Set Rs = Conn.Execute(SQL)
  Do While Not Rs.Eof
 NomeGruppo=Rs("NomeGruppo")
 Descrizione=Rs("Descrizione")
 Localita=Rs("Localita")
 Provincia=Rs("Provincia")
 Data=Rs("LoggedDt")
 URL=Rs("Url")
 Mail=Rs("MailAddress")
%>
<div align="center"><center>
<table border="0" cellpadding="2" width="600">
<tr>
<td bgcolor="#000000" colspan="2"><div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="60%"><font color="#EA7500" face="Arial"
size="2"><strong><%=NomeGruppo%></strong></font></td>
<td align="right" width="40%">
 <font color="#FFFFFF" size="2" face="Arial"><strong>
 <%
 If URL <> "" Then
 %>
  <a href="http://<%=URL%>" target="_blank">Sito Internet</a> &#149;
 <%
 End If
 %>
 <a href="mailto:<%=Mail%>">E-Mail</a></strong></font>
</td>
</tr>
</table>
</center></div></td>
</tr>
<tr>
    <td colspan="2"><small><font
face="Arial"><%=Descrizione%></font></small></td>
</tr>
<tr>
    <td align="left" width="40%"><font color="#800000" size="1"
face="Arial">Data di iscrizione: <%=Data%></font></td>
    <td align="right" width="60%"><font color="#800000" size="1"
face="Arial"><%=Localita%> - <%=Provincia%></font></td>
</tr>
</table>
</center></div>
<%
 Rs.MoveNext
 Loop
Rs.Close
Set Rs = Nothing
Conn.Close
Set Conn = Nothing
%>
</BODY>
</HTML>
==================================================================
Premetto che per accedere al db con bisogna inserire nessuna password e, lo
ripeto, a volte funziona a volte no! Da cosa puo' dipendere? Qualcuno puo'
essermi di aiuto? ... spero proprio di si'.
Grazie a tutti,
Pierpaolo Villano
dur...@freemail.it
p.vi...@mamsoft.com

Salve a tutti,


Può essere una banalità... ma controlla che mentre accedi al db tramite la
pagina asp, il database non abbia qualche tabella aperta in "struttura":
questo la rende inaccessibile!!
Ciao,
Francesco




mumble ... mumble ...
mi sono ricordato che la directory su cui risiede il db e' protetta da nome
e password perche' il db stesso e' accessibile via web (il file
fisicamente!) ed inoltre esiste un nome utente ed una password anche per il
DSN ... come faccio a passargli questi parametri in asp?
Infatti riguardando l'errore ho notato la seguente specifica:
, or you need permission to view its data.
forse forse ci sono ... qualcuno mi aiuta?
Pierpaolo

>


...





another user, or you need permission to view its data.
Se inserisci sul sito della Ms come parola chiave il messaggio di errore,
trovi un puntatore alla risposta. 
Ti rimando a quella per un aspiegazione più esauriente (anche se non
convincente).
Comunque è un problema di permessi (se dai a IUSR_ANONYMOUS le permission rwx
sulla dir in cui risiede il database il problema sparisce).
L'errore si verifica a singhiozzo perchè il db via web - in questo caso - è
accessibile a un solo utente per volta.
1. Accedi alla pagina
2. Fai un restart di IIS (kill inetinfo o net stop w3svc, net start
w3svc) [*]
3. Riaccedi alla pagina
4. Vedrai che funziona
5. Apri un altro browser e prova a riaccedere alla pagina
6. Dovrebbe ridarti l'errore
[*] O forse è sufficente chiudere e riaprire il browser...
-- 
Rhodion
"I will show you fear in a handful of dust"

Set Rs = Conn.Execute(SQL)
usa:
Set Rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM Gruppi"
Conn.Open SQL,"DSN=
mamsoft.com
",3,3
e tutto il resto uguale (ricordati di canellare: "Conn.Close" "Set Conn =
Nothing").
E' un prova, tanto vale...
Ciao!
Andrew

e proprio come pensavo!
Siccome sfrutto un servizio di hosting che mi consente di pubblicare un db,
ma e' comunque raggiungibile via web (proprio il file fisicamente) avevo
protetto la directory su cui risiede l'mdb dall'accesso e "boom!" di tanto
in tanto restituisce questo errore. Togliendo la protezione tutto funziona
tranquillamente, ma allora ... come faccio a proteggere il mio db?
Grazie a tutti,
Pierpaolo