38 messaggi dal 19 giugno 2002
Sto cercando di costruire una pagina in asp che si colleghi a un db access.
Mi dice che la connessione è sbagliata, come faccio a sapere perchè?
Ciao

Lisa

Lisa
113 messaggi dal 23 aprile 2002
Ciao Lisa, dovresti postare lo script e tutto l'errore!
quello che ci hai scritto è un po pochino per capire..
;-)

38 messaggi dal 19 giugno 2002
Hai ragione!
"Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Nome origine dati non trovato e driver predefinito non specificato.
/lisit/web/asp/select.asp, line 18"

e il codice che ho scritto per la connessione al db:
"
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=db1.mdb;Mode=ReadWrite;Initial Catalog=C:/db/db1.mdb"
Set Session("db1_conn") = conn
%>
"

Ciao e grazie

Lisa

Lisa
11.886 messaggi dal 09 febbraio 2002
Contributi
Guarda, usa questo codice...

<code>
Dim rs
Dim cn

set rs = Server.CreateObject("ADODB.Recordset")
set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & server.MapPath("../cartella/tuodb.mdb")
rs.ActiveConnection = cn
rs.Open "SELECT * FROM tabella", cn, 0, 1

'codice...

rs.Close
cn.Close
set rs=nothing
set cn=nothing
</code>

Ovviamente dovrai adattare il percorso del file alle tue esigenze: io ho messo ../cartella/tuodb.mdb ma potrebbe essere semplicemente tuodb.mdb se la pagina asp si trova nella stessa cartella del database.
ciaoo

-----------------------
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
38 messaggi dal 19 giugno 2002
Ci provo subito e ti faccio sapere.
Grazie mille

Lisa

Lisa
38 messaggi dal 19 giugno 2002
Ora mi da questo errore:
"
Tipo di errore:
Errore di compilazione di Microsoft VBScript (0x800A0401)
Prevista fine istruzione
/lisit/web/asp/select.asp, line 13, column 83
cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =db1.mdb; server.MapPath("C:/db/db1.mdb")"
----------------------------------------------------------------------------------^
"
Lo so che sono un po' impedita, ma sto cercando di imparare da sola!
Ciao e grazie

Lisa

Lisa
38 messaggi dal 19 giugno 2002
Vi scrivo l'intero codice:
&lt;%
Dim rs
Dim cn

set rs = Server.CreateObject("ADODB.Recordset")
set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=db1.mdb;Mode=ReadWrite;Initial Catalog=C:/db/db1.mdb"
rs.ActiveConnection = cn

If Request.QueryString("[nome]") &lt;&gt; "" then
rs.Open "SELECT * FROM rubrica WHERE cognome ='" & Request.QueryString("[nome]") & "' ", cn, 0, 1
Else
rs.Open "SELECT * rubrica", cn, 0, 1

'Chiude la connessione
rs.Close
cn.Close
Set rs = Nothing
set cn=nothing
End If

%&gt;


Uso Access 2000.
Ciao

Lisa

Lisa
11.886 messaggi dal 09 febbraio 2002
Contributi
Guarda... il codice che t'avevo scritto era giusto. Il punto focale è questo:

cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & server.MapPath("../cartella/tuodb.mdb")

Tu hai scritto:
cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =db1.mdb; server.MapPath("C:/db/db1.mdb")"

e ci sono 3 errori.
Tranquilla ^__^ più errori fai meglio è, si impara più in fretta.
Prima di tutto devi comprendere cosa voglia dire questa stringa. E' l'apertura di una connessione ad un database. PROVIDER è il nome del driver che permette al db e alla pagina asp di comunicare. Abbiamo usato Oledb, e questo va bene, non lo devi cambiare e non ci sono errori. L'altra cosa è DATA SOURCE, che è il percorso del database.
Data source accetta solo percorsi fisici e assoluti. Una cosa del tipo:
C:\db\db1.mdb
Tu l'hai specificato 2 volte e in modo sbagliato. La riga giusta è questa:
<code>
cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =c:\db\db1.mdb"
</code>

sostituiscila quella sbagliata e vedrai che funziona.

Passiamo agli errori che avevi commesso:
1. Hai scritto due volte il nome del database:
Data Source =db1.mdb; server.MapPath("C:/db/db1.mdb")"
e non andava bene...

2. Hai usato Server.MapPath su un percorso assoluto.
server.MapPath("C:/db/db1.mdb")
questo non è valido. Server.MapPath non fa altro che restituire il percorso assoluto di un percorso virtuale. Ad esempio:
Server.MapPath("db1.mdb") ti restituisce c:\db\db1.mdb che è il percorso assoluto, l'unico accettato da Data source. Questi due modi sono entrambi corretti:

cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & server.MapPath("db1.mdb")

cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = c:\db\db1.mdb"

3. Il terzo errore (che è quello che ti dava la pagina: prevista fine istruzione) deriva dal fatto che hai fatto confusione con le virgolette.
Esempi:

Dim nome, stringa
nome="Pippo"
stringa = "Ciao " & nome & " benvenuto nel sito"

le virgolette devono essere sempre aperte e chiuse, come le parentesi altrimenti ricevi un errore. Questa roba qui sopra prende la stringa ciao, la unisce alla variabile nome (che vale pippo) e la unisce ad un'altra stringa, benvenuto nel sito.
Il risultato finale sarà
ciao pippo benvenuto nel sito.
Le virgolette praticamente servono a distinguere cosa deve essere trattato letteralmente e cosa invece deve essere valutato.


-----------------------
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

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.