Newsgroup: it.comp.www.asp
Titolo: Accesso a dbAccess.. problemi.

Salve, ho un problema al quale non riesco a dare risposta...
Ho creato due pagine, registra.asp e registraGO.asp.
La prima richiede alcuni dati, e li invia alla seconda che li memorizza in
un DB Access.
Il problema è che in "locale", ovvero con WIN2000 Server e IIS 5 non ci sono
problemi, mentre quando invio in file su un server Internet (con il supporto
di ASP) ottengo l'errore "impossibile visualizzare la pagina".
Vi riporto i codici di "registraGO.asp":
<%@ Language=VBScript %>
<% Option Explicit%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>
  <%
'Apre la connessione ad database
dim dbPath
dbPath = Server.MapPath("./db/utenti.mdb")
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
'Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& dbPath
Conn.Provider="Microsoft.Jet.OLEDB.4.0"
Conn.Open(dbPath)
Dim Reco
Set Reco = Server.CreateObject("ADODB.Recordset")
 Reco.Open "utenti", Conn, , 3, 2
 Reco.AddNew
 Reco("nome")=Request.Form("txtNome")
 Reco("cognome")=Request.Form("txtCognome")
 Reco("ragione_sociale")=Request.Form("txtRagione_sociale")
 Reco("email")=Request.Form("txtEmail")
 Reco("telefono")=Request.Form("txtTelefono")
 Reco("professione")=Request.Form("txtProfessione")
 Reco("login")=Request.Form("txtLogin")
 Reco("password")=Request.Form("txtPassword")
 Reco("tipo")="utente"
 Reco.Update
 Reco.MoveLast
%>
</p>
<p>Utente registrato! Sei in posizione <%=Reco("ID") %></p>
<%
 Reco.Close
 Set Reco=nothing
 Conn.Close
 Set Conn=nothing
%>
</body>
</html>
Vi informo che altre pagine asp collegate a database funzionano (effettuano
solo query di selezione).
Grazie
Renzo

  Reco("nome")=Request.Form("txtNome")
Ma non dovrebbe essere Reco.Fields("nome") = ... etc. etc. ?
Davide

Oltre all'errore "impossibile visualizzare la pagina" ti dovrebbe anche dire
in quale riga lo script si blocca.
Potrebbe dipendere da tante cose.
Di sicuro è un rischio passare immediatamente i dati da un form ad un
record, specie se alcuni campi del form sono vuoti.
Dato che il valore restituito da un campo vuoto di un form è una stringa di
lunghezza 0, non un valore null accettabile.
Una bella routine di convalida o conversione dei dati è altamente
consigliata.

 consigliata.
Certamente hai ragione, ma questa č una prima prova. Piů avanti inserirň dei
controlli.
In ogni caso quando non inserisco valori in un campo testo della form Access
non mi da problemi, in quanto ho impostato il campo in modo che accetti
anche stringhe vuote.
Comunque, per eliminare ogni dubbio, il sito č:
www.radoarredi.com/iis3/registra.asp
Se ti puň essere utile...
Grazie
Renzo


In locale funziona tutto, quindi la sintassi non è errata (l'ho presa dal
manuale "Active Server Pages 3.0 - Guida completa" - Apogeo)
Ciao
Renzo

A me da errore in ogni caso.

Purtroppo il tuo server di produzione non da le informazioni aggiuntive
sull'errore, e quindi non si sa. Occorre fare un po' di debugging alla
cieca.
Comunque a me, se lascio vuoto alcuni campi, mi quest'errore (provato sul
codice da te inviato):
================================
HTTP 500.100 - Errore interno del server - errore ASP
Internet Information Services
Informazioni tecniche (per il personale del supporto tecnico)
Tipo di errore:
Microsoft JET Database Engine (0x80040E21)
Il campo "utenti.login" non può contenere una stringa di lunghezza zero.
/sviluppo/rado/test/registraGO.asp, line 41
=================================
Purtroppo quel codice di errore si ha in tante situazioni. Tipo posizione
sbagliata del db, ecc.
poi, usando il Driver Jet, non è necessario usare MoveLast per recuperare
l'ID, dato che usando update il record corrente è già quello aggiornato.
(Con ODBC non è così)

 ha scritto nel messaggio
news:3a9e5c12$1...@news.edisons.it...