4 messaggi dal 05 ottobre 2001
ho implementato un sistema di registrazione/login in asp, che funziona bene in locale, ma non in remoto.
se provo ad effettuare la registrazione o il login in rete, mi restituisce questo errore:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

/registrati.asp, line 27

nel caso di login, mi dà ovviamente un riferimento di file/riga diverso; in entrambe i casi, comunque, sono le righe in cui viene
richiamata la variabile definita nel file di connessione.

questo è il codice asp della pagina di registrazione:

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/panconn.asp" -->
<%
' *** Edit Operations: declare variables

MM_editAction = CStr(Request("URL"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Request.QueryString
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Redirect if username exists
MM_flag="MM_insert"
If (CStr(Request(MM_flag)) <> "") Then
MM_dupKeyRedirect="duplicatedID.asp"
MM_rsKeyConnection=MM_pandaconn_STRING
MM_dupKeyUsernameValue = CStr(Request.Form("U_ID"))
MM_dupKeySQL="SELECT U_ID FROM USERS WHERE U_ID='" & MM_dupKeyUsernameValue & "'"
MM_adodbRecordset="ADODB.Recordset"
set MM_rsKey=Server.CreateObject(MM_adodbRecordset)
MM_rsKey.ActiveConnection=MM_rsKeyConnection //QUESTA E' LA RIGA 27!!!
MM_rsKey.Source=MM_dupKeySQL
MM_rsKey.CursorType=0
MM_rsKey.CursorLocation=2
MM_rsKey.LockType=3
MM_rsKey.Open
If Not MM_rsKey.EOF Or Not MM_rsKey.BOF Then
' the username was found - can not add the requested username
MM_qsChar = "?"
If (InStr(1,MM_dupKeyRedirect,"?") >= 1) Then MM_qsChar = "&"
MM_dupKeyRedirect = MM_dupKeyRedirect & MM_qsChar & "requsername=" & MM_dupKeyUsernameValue
Response.Redirect(MM_dupKeyRedirect)
End If
MM_rsKey.Close
End If
%>
<%
' *** Insert Record: set variables

If (CStr(Request("MM_insert")) <> "") Then

MM_editConnection = MM_panconn_STRING
MM_editTable = "USERS"
MM_editRedirectUrl = "login.asp"
MM_fieldsStr = " U_ID|value|U_PASSWORD|value|U_NOME|value
|U_COGNOME|value|U_DITTA|value|U_IVA|val
ue|U_INDIRIZZO|value|U_CAP|value|U_CITTA
|value|U_EMAIL|value"
MM_columnsStr = " U_ID|',none,''|U_PASSWORD|',none,''|U_NO
ME|',none,''|U_COGNOME|',none,''|U_DITTA
|',none,''|U_IVA|',none,''|U_INDIRIZZO|'
,none,''|U_CAP|none,none,NULL|U_CITTA|',
none,''|U_EMAIL|',none,''"

' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")

' set the form values
For i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(i+1) = CStr(Request.Form(MM_fields(i)))
Next

' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If

End If
%>

e questo è il codice della pagina di connessione (panconn.asp):

<%
' FileName="Connection_odbc_conn_dsn.htm"
' Type="ADO"
' HTTP="false"
' Catalog=""
' Schema=""
MM_panconn_STRING = "dsn=panusers;uid=pan;pwd=pan2002;"
%>

ulteriore nota (se può servire): il file di connessione si trova nel folder "Connections", mentre il db si trova nel folder "database".
a naso, mi rendo conto che potrebbe essere un problema di path, ma perchè invece in locale tutto funziona?
grazie in anticipo per l'aiuto!...


metatad

metatad
725 messaggi dal 31 agosto 2001
Leggi qui: http://www.15seconds.com/faq/ODBC/479.htm

Luca Web developer
<b>Community Manager</b> di www.aspitalia.com
11.886 messaggi dal 09 febbraio 2002
Contributi
beh... ti connetti al database con un dsn di sistema... se in locale ti funziona è perche sei andato su:
pannello di controllo -&gt; ODBC Source e via di seguito (oppure il programma che hai usato per generare il codice l'ha fatto per te).
Usi dreamweaver vero?

Allora... i rimedi sono 2:
- o chiedi al gestore del server di registrare il tuo database come dsn di sistema col nome di "panusers" (non sempre te lo consentono)
- oppure ti connetti usando una connessione dsn-less.

In realtà nel tuo codice, il path non è sbagliato: infatti non esiste un path, ma solo un riferimento (il dsn appunto) alla fonte di dati.

Il consiglio è sempre quello di usare blocco note, guarda com'è incasinato quel codice, un groviglio di variabili che non ti fa capire niente.
Comunque... prova a risolvere in questo modo:
sostituisci la stringa:

MM_panconn_STRING = "dsn=panusers;uid=pan;pwd=pan2002;"

con questa:
MM_panconn_STRING = "Provider = Microsoft.Jet.OLEDB.4.0; User ID = pan; Password=pan2002; Data Source = " & server.MapPath("/database/nomedatabase.mdb")

fai un tentativo...


-----------------------
Da una perla dal saggio:
Quando non hai capito, devi dire "non ho capito", no che dici che hai capito e invece non hai capito un cavolo. Hai capito?
-----------------------

Enjoy learning and just keep making
4 messaggi dal 05 ottobre 2001
grazie, adesso funziona! non con la stringa che mi avete suggerito, ma con una simile (suggerimento altro forum), e cioè:

"DRIVER={Microsoft Access Driver (*.mdb)};uid=pan;pwd=pan2002;DBQ="& Server.MapPath("/database/nomedatabase.mdb")

grazie comunque!

metatad

metatad

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.