PDA

View Full Version : Moduli di regstrazione in ASP


shadow76it
27-08-2003, 12:02
Salve a tutti sto incominciando a programmare in ASP usando Dreamwaver MX e usando un database MS Acces.
Quando realizzo le pagine ASP con moduli di inserimeto record e moduli Login quando vado nella pagina di registrazione con l'apposito form quando clicco sul pulsante inserisci record dopo aver inserito tutti i dati e poi andare nella pagina login mi da questo errore:
Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Driver ODBC Microsoft Access] Impossibile usare "(sconosciuto)". File già in uso.
/prova/registrati.asp, line 113


Che cosa può essere? il file access si trova nella directori wwwroot di inetpub. Ho anche creato la connessione in OBDC in strumeti di amministrazione.
Uso WinXP

asdalo
27-08-2003, 12:52
Di solito capita quando ( o almeno a me è successo in questi casi ) :

1) sono impostate in maniera errata le permissioni sul file MDB o sulla cartella. Se non hai il permesso di scrittura nella cartella dove risiede il database, non riesce a creare il file LDB e quindi va nel panico, idem se non puoi scrivere sul file, sola lettura o permesso negato

2) hai installata una versione dei mdac non aggiornata. Una vecchia versione degli mdac, non ricordo quale purtroppo :rolleyes:, ha questo problema

Cmq ti consiglio di creare una sottocartella dove mettere il database, così da non fare confusione con le permissioni dell'intera wwwroot. ;)

ciau

shadow76it
27-08-2003, 14:58
Originariamente inviato da asdalo
Di solito capita quando ( o almeno a me è successo in questi casi ) :

1) sono impostate in maniera errata le permissioni sul file MDB o sulla cartella. Se non hai il permesso di scrittura nella cartella dove risiede il database, non riesce a creare il file LDB e quindi va nel panico, idem se non puoi scrivere sul file, sola lettura o permesso negato

2) hai installata una versione dei mdac non aggiornata. Una vecchia versione degli mdac, non ricordo quale purtroppo :rolleyes:, ha questo problema

Cmq ti consiglio di creare una sottocartella dove mettere il database, così da non fare confusione con le permissioni dell'intera wwwroot. ;)

ciau

Allora Ho scaricato ed installato dal sito della microsoft la versione Aggiornata MDAC, ho anche visto che il file con estenzione .LDB viene creata e ho messo il file di Access sotto una cartella in C: levando la spunta in solo lettura ed archiviazione, ma purtroppo nulla da fare sempre lo stesso errore.Sto andando al manicomio aiuto.... :muro: :muro: :muro:

Ecco L'errore:
Informazioni tecniche (per il personale del supporto tecnico)

Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Driver ODBC Microsoft Access] Impossibile usare "(sconosciuto)". File già in uso.
/tonino/registrati.asp, line 113


Tipo di browser:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Pagina:
POST 98 bytes to /tonino/registrati.asp

POST Data:
Nome=antonio&Cognome=klj&nomeutente=tonino&password=mariotti&email=mariotti@tin.it&MM_insert=form1

asdalo
27-08-2003, 15:12
Controlla anche che l'utente Internet Guest User di IIS abbia i permessi di scirttura in quella cartella e su quel file, devi usare la linguetta protezione (nelle proprietà della cartella) se stai lavorando su una partizione NTFS.
Se negli utenti non c'è aggiungilo e dagli controllo completo, scegli la spunta di applicare le impostazioni anche agli oggetti figlio.. ecc ecc e premi applica.

Un'altra soluzione che mi venne data, ma non ho mai provato è di usare un DSN per la connessione al db e creare un utente nel db, poi connettersi usando nome utente e pass, magari prova ma non so se funzia

shadow76it
27-08-2003, 15:29
Originariamente inviato da asdalo
Controlla anche che l'utente Internet Guest User di IIS abbia i permessi di scirttura in quella cartella e su quel file, devi usare la linguetta protezione (nelle proprietà della cartella) se stai lavorando su una partizione NTFS.
Se negli utenti non c'è aggiungilo e dagli controllo completo, scegli la spunta di applicare le impostazioni anche agli oggetti figlio.. ecc ecc e premi applica.

Un'altra soluzione che mi venne data, ma non ho mai provato è di usare un DSN per la connessione al db e creare un utente nel db, poi connettersi usando nome utente e pass, magari prova ma non so se funzia

quelle informazioni che mi hai dato tu non riesco a trovarle,adesso quando lancio come prima la pagina da dreamwaver(F12) mi da questo altro messaggio :

Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Driver ODBC Microsoft Access] Per l'operazione è necessaria una query aggiornabile.
/tonino/registrati.asp, line 115
:muro: :muro: :muro:

asdalo
27-08-2003, 15:39
beh intanto se non ti da più l'errore sull'apertura del database significa che adesso lo apre e lo risce a lockare correttamente.

L'errore che hai ora invece è legato alla execute che non va a buon fine.

Di solito succede perchè o è stato aperto il database con un locktype errato, oppure stai cercando di eseguire una update (o una insert) con delle aggregazioni e access non le gestisce.

Magari se posti il pezzetto di codice che apre il database e le righe dove esegui la query è meglio ;)

asdalo
27-08-2003, 15:44
Ah dimenticavo che in winxp per poter utilizzare la condivisione avanzata devi andare in Strumenti, opzioni cartella e levare la spunta da "Utilizza condivisione file semplice".

Altrimenti come hai giustamente detto, non trovi la linguetta della protezione e non puoi controllare niente.

Sorry :P

shadow76it
27-08-2003, 15:49
Originariamente inviato da asdalo
beh intanto se non ti da più l'errore sull'apertura del database significa che adesso lo apre e lo risce a lockare correttamente.

L'errore che hai ora invece è legato alla execute che non va a buon fine.

Di solito succede perchè o è stato aperto il database con un locktype errato, oppure stai cercando di eseguire una update (o una insert) con delle aggregazioni e access non le gestisce.

Magari se posti il pezzetto di codice che apre il database e le righe dove esegui la query è meglio ;)

Ma in tutto questo mi conviene scendere e comprare un manuale di dreamwaver? Risolverò il problema?
sai stò cercando di imparare ad usare al massimo il dreamwaver per creare pagine in ASP per poter trovare un lavoro come creatore di pagine web visto che L'HTML lo conosco abbastanza bene e che non mi riesce difficile creare una semplice pagina web statica.
mi dici quale pezzo di codice ti devo postare?
io intanto ti posto quello che della riga dove mi da errore.

asdalo
27-08-2003, 15:55
c'è una istruzione di include

<!--#include file="Connections/clienti.asp" -->

mi serve anche clienti.asp

cmq da quanto vedo l'esecuzione mi sembra ok, secondo me se dai i permessi all Internet user guest va tutto a posto

cmq fammi avere anche l'altro file e così faccio girare lo script qui e vedo

shadow76it
27-08-2003, 16:27
Originariamente inviato da asdalo
c'è una istruzione di include

<!--#include file="Connections/clienti.asp" -->

mi serve anche clienti.asp

cmq da quanto vedo l'esecuzione mi sembra ok, secondo me se dai i permessi all Internet user guest va tutto a posto

cmq fammi avere anche l'altro file e così faccio girare lo script qui e vedo

Eccoti quello che mi chiedevi:

<%
' FileName="Connection_odbc_conn_dsn.htm"
' Type="ADO"
' DesigntimeType="ADO"
' HTTP="false"
' Catalog=""
' Schema=""
Dim MM_clienti_STRING
MM_clienti_STRING = "dsn=clienti;"
%>

asdalo
27-08-2003, 16:39
bene, nel file registrati.asp commenta tutta questa parte

If (Not MM_abortEdit) Then
' execute the insert
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close

If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If

inibiremo così l'esecuzione della query, quindi aggiungi una riga con:

Response.Write MM_editQuery

lanciando la pagina dovrebbe scriverti la query che deve eseguire, verifica che si corretta, in quanto probabilmente è proprio quella il problema

Purtroppo non posso provarla, in quanto la query viene costruita in run time è non avendo il db non ho modo di verificarla ne di costruirmela