PDA

View Full Version : asp inserimento dati in un dbase *.mdb


SteR9
31-03-2003, 16:49
a scuola mi hanno dato una piccola guida di asp e stavo provando qualche esempio...l'unico esempio che non sono riuscito a fare andare è l'inserimento dei dati dentro a una tabella...

il codice è questo:

<HTML>
<HEAD>
<TITLE>Inserimento dati nel database</TITLE>
</HEAD>
<BODY>
<%
dim strcognome
strcognome = request.form("cognome")
dim strnome
strnome = request.form("nome")
dim strtelefono
strtelefono = request.form("telefono")
dim strConn

Set Conn=Server.CreateObject("ADODB.Connection")
strConn="driver={Microsoft Access Driver (*.mdb)};"
strConn=strConn &"DBQ="&Server.MapPath("tel.mdb")
Conn.Open strConn
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "elenco",conn,3,3
rs.addnew
rs(0) = strcognome
rs(1) = strnome
rs(2) = strtelefono
rs.update
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
response.redirect("messaggiofinale1.html")
%>



</form>
</BODY>
</HTML>
ho creato un database chiamato tel.mdb contenente una tabella che ho chiamato elenco e con i campi nome,cognome,elenco

quando tento di aprire la pagina mi da il seguente errore:

Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Driver ODBC Microsoft Access]Errore generale. Impossibile aprire la chiave 'Temporary (volatile) Jet DSN for process 0xca0 Thread 0xc38 DBC 0x2430064 Jet' del Registro di sistema.
/inserisci.asp, line 18

dove è il problema?a me sembra giusto :rolleyes:
grazie
ciao

gabriweb
31-03-2003, 17:04
Se lo provi in locale con IIS5.1 e windowsxp devi scaricare un aggiornamento per iis dal sito windowsupdate.microsoft.com ....è per i database JET ...è grosso come una casa non ti puoi sbagliare :)

SteR9
31-03-2003, 19:50
ok....ora mi da il seguente errore

Tipo di errore:
Provider (0x80020005)
Incompatibilità tra tipi.
/Inserisci.asp, line 22

la linea 22 è questa rs(0) = strcognome
cosa c'è che non va??
grazie!

matpez
01-04-2003, 01:02
Probabilemente l'ID 0 del tuo vettore recordes è un indice...e nn vuole che yi gli inserisca un testo!!

Prova a controllare se il tuo primo campo nn è un contatore nella tabella :p

SteR9
01-04-2003, 14:29
Originally posted by "matpez"

Probabilemente l'ID 0 del tuo vettore recordes è un indice...e nn vuole che yi gli inserisca un testo!!

Prova a controllare se il tuo primo campo nn è un contatore nella tabella :p
l'errore era quello :D ma ora me ne da un altro


Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Driver ODBC Microsoft Access] Impossibile aggiornare. Database o oggetto di sola lettura.
/Inserisci.asp, line 25

la linea 25 è questa rs.update
cosa vuol dire??il file *.mdb non è in sola lettura...

matpez
01-04-2003, 18:53
il dtabase deve stare nella cartella mdb-database che di default ha proprietà in scrittura!!

Se lo vuoi mettere in un altra cartella devi impastare da IIS la flag si scrittura!! :p

PS: come al solito a scuola nn insegnano mai un c...o :mad:

ciaooooooooooooooooooooooo :)

SteR9
01-04-2003, 19:20
Originally posted by "matpez"

il dtabase deve stare nella cartella mdb-database che di default ha proprietà in scrittura!!

Se lo vuoi mettere in un altra cartella devi impastare da IIS la flag si scrittura!! :p

PS: come al solito a scuola nn insegnano mai un c...o :mad:

ciaooooooooooooooooooooooo :)
io l'ho messo nella wwwroot ma nella wwwroot non c'è la cartella mdb-database devo crearla io??

matpez
01-04-2003, 23:25
Si creala e metteci dentro il tuo database

cionci
02-04-2003, 00:34
Originally posted by "matpez"

Si creala e metteci dentro il tuo database
Mmmmhhh... Se l'ha aperto così: strConn &"DBQ="&Server.MapPath("tel.mdb")...il DB deve stare nella stessa cartella del file ASP...

matpez
02-04-2003, 02:25
Originally posted by "cionci"


Mmmmhhh... Se l'ha aperto così: strConn &"DBQ="&Server.MapPath("tel.mdb")...il DB deve stare nella stessa cartella del file ASP...

Si infatti...mi sono dimenticato di dirtelo...poi la stringa va modificata cosi:

Server.MapPath("/mdb-database/tel.mdb")

SteR9
02-04-2003, 06:45
l'ho fatto ma mi da semrpe lo stesso errore :(

cionci
02-04-2003, 11:10
Prova a scaricare dalla M$ il pacchetto di aggiornamento MDAC...

SteR9
02-04-2003, 14:38
niente da fare...ma il codice è giusto ?

SteR9
02-04-2003, 15:43
allora...ho visto che la cartella dove c'è il database rimane sempre in sola lettura e se tolgo "sola lettura" si reimposta automaticamente in "sola lettura"...ho letto che è per colpa di ntfs ma ci sarà un modo per poter abilitare una cartella in scrittura???

cionci
02-04-2003, 15:47
Ad occhio mi sembra di sì...

Prova ad usare questa stringa di connessione:

strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("tel.mdb")

SteR9
02-04-2003, 15:54
Originally posted by "cionci"

Ad occhio mi sembra di sì...

Prova ad usare questa stringa di connessione:

strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("tel.mdb")
mi da lo stesso errore...credo che sia proprio un problema di permessi su quella cartella :cry:

cionci
02-04-2003, 16:01
Originally posted by "SteR9"

allora...ho visto che la cartella dove c'è il database rimane sempre in sola lettura e se tolgo "sola lettura" si reimposta automaticamente in "sola lettura"...ho letto che è per colpa di ntfs ma ci sarà un modo per poter abilitare una cartella in scrittura???
Come ti si reimposta in sola lettura ?!?!!?
Ma non la devi settare da IIS... La devi settare con il sistema operativo... Aggiungi l'utente Everyone e gli dai l'accesso Full Control... Inoltre vai su Avanzate e selezioni "Consenti di propagare...."

SteR9
02-04-2003, 16:04
Originally posted by "cionci"


Come ti si reimposta in sola lettura ?!?!!?
Ma non la devi settare da IIS... La devi settare con il sistema operativo... Aggiungi l'utente Everyone e gli dai l'accesso Full Control... Inoltre vai su Avanzate e selezioni "Consenti di propagare...."
ho windows xp e non trovo le voci che mi dici,cmq ho letto che è proprio ntfs che imposta le cartelle in sola lettura...boh :rolleyes:

SteR9
02-04-2003, 16:17
ok ce l'ho fatta!!dovevo andare nelle opzioni di visualizzazione per attivare il menu protezione poi ho aggiunto IUSR_nomepc e gli ho dato i permessi di modifica :)
grazie