12 messaggi dal 09 maggio 2001
Scusate la mia insistenza ma non riesco a trovare la soluzione.
Voglio mettere in un file "funzioni.asp", per comodità, la connessione ad un db cosicché se devo ad esempio cambiare il nome del db lo cambio una sola volta all'interno di questo file e sarà valido per tutti i file che fanno riferimento a tale db.

La funzione che ho creato è:
<%
function apridb()
Set conn=Server.CreateObject("ADODB.Connection")
strconn="driver={Microsoft Access Driver (*.mdb) };dbq="
&Server.MapPath("/database/miodb.mdb")
conn.Open strconn
apridb=conn
end function
%>

A questo punto se io all'interno del file principale metto:
<!--#include file="funzioni.asp"-->
<%
call apridb()
%>

La pagina che si visualizza mi da questo messaggio:

ADODB.Recordset error '800a0bb9'
Arguments are of the wrong type, are out of the acceptable range, or are in
conflict with one another.
/home.asp, line xx

La cosa assurda (solo perché non riesco a trovare la soluzione) è che se metto:
Set conn=Server.CreateObject("ADODB.Connection")
strconn="driver={Microsoft Access Driver (*.mdb) };dbq="
&Server.MapPath("/database/miodb.mdb")
conn.Open strconn
direttamente nel file principale, la connessione al db non mi da alcun errore e funziona tutto correttamente.
Vi prego di aiutarmi a risolvere il problema.

Grazie
Adriano

Adriano Fabri
2.907 messaggi dal 15 maggio 2001
Contributi
La direttiva "call" serve per richiamare una subroutine :o) !!!

Prova così..

<%
Sub apridb()
Set conn=Server.CreateObject("ADODB.Connection")
strconn="driver={Microsoft Access Driver (*.mdb) };dbq="
&Server.MapPath("/database/miodb.mdb")
conn.Open strconn
apridb=conn
end Sub
%>
<!--#include file="funzioni.asp"-->
<%
Call apridb()
%>


Mi sono dimenticato di aggiungere una cosa,xchè devi crearti una soubroutine o una funzione quando basta fare

<%

Set conn=Server.CreateObject("ADODB.Connection")
strconn="driver={Microsoft Access Driver (*.mdb) };dbq="
&Server.MapPath("/database/miodb.mdb")
conn.Open strconn
apridb=conn
%>

e poi includere la pagina ???????
Così facendo <!--#include file="funzioni.asp"--> è come se la connessione l'avessi scritta nella pagina !!!!!!Senza bisogno di crearsi nulla !!!!!



Rome Webmaster






Modificato - rome - 04 Set 2001 11:15:34
12 messaggi dal 09 maggio 2001
Innanzitutto ti ringrazio per la tua risposta celere.
Comunque ho provato a fare quello che mi hai detto ma il messaggio che ora mi riporta la pagina visualizzata è:

Microsoft VBScript runtime error '800a01f5'
Illegal assignment: 'apridb'
/funzioni.asp, line 13

Dove la linea 13 corrisponde a apridb=conn

Ciao
Adriano

P.S. fra poco SBROCCO (ma ti posso assicurare che manca proprio poco)!!!

Adriano Fabri
2.907 messaggi dal 15 maggio 2001
Contributi
Elimina quella linea

<%
Sub apridb()
Set conn=Server.CreateObject("ADODB.Connection")
strconn="driver={Microsoft Access Driver (*.mdb) };dbq="
&Server.MapPath("/database/miodb.mdb")
conn.Open strconn
end Sub
%>


Rome Webmaster :o)

265 messaggi dal 28 aprile 2001
<b>afabri ha scritto:</b>
<BLOCKQUOTE id=quote><font size=1 face="Arial" id=quote>quote:<hr height=1 noshade id=quote>

La funzione che ho creato è:
&lt;%
function apridb()
Set conn=Server.CreateObject("ADODB.Connection")
strconn="driver={Microsoft Access Driver (*.mdb) };dbq="
&Server.MapPath("/database/miodb.mdb")
conn.Open strconn
apridb=conn
end function
%&gt;

A questo punto se io all'interno del file principale metto:
&lt;!--#include file="funzioni.asp"--&gt;
&lt;%
call apridb()
%&gt;

Grazie
Adriano
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Arial" size=2 id=quote>

Ciao,
se vuoi risolvere il problema nel file funzioni.asp non devi creare alcuna function o Sub, devi solo mettere il tuo codice:
<b>
&lt;%
Set conn=Server.CreateObject("ADODB.Connection")
strconn="driver={Microsoft Access Driver (*.mdb) };dbq="
&Server.MapPath("/database/miodb.mdb")
conn.Open strconn
%&gt;
E DEVI ELIMINARE
apridb=conn
</b>
Questo perche' quando includi un file, questo diventa parte integrante. Percio' quando in un qualsiasi punto del file principale esegui il Set <b>Conn</b>, questo e' gia' attivo in quanto viene eseguito dal file incluso.

Ciao
Filippo

Non dir di me' se di me' non sai, pensa di te ... e poi di me' dirai.

Autore (sottoscritto)

Non dir di me' se di me' non sai, pensa di te ... e poi di me' dirai.

Autore (sottoscritto)
12 messaggi dal 09 maggio 2001
Grazie a tutti problema risolto.
So che non si dovrebbero fare ringraziamenti ma mi avete salvato da una crisi di nervi!!!

Ciao
Adriano

Adriano Fabri
3 messaggi dal 12 giugno 2001
Comunque per fare in modo che il tio codice sia "pulito",e quindi chiamare funzioni piuttosto che solo pagine,prova con questo codice:
&lt;%
' Connessione a DB Oracle
public function ConnectToDB(conn)
Dim strConn
strConn="driver={Microsoft Access Driver (*.mdb) };dbq="
&Server.MapPath("/database/miodb.mdb")

conn.Open strConn
'Stampa l'errore in un file di log
if err.number&lt;&gt;0 then
WriteLog("DBConnection.asp - Errore nella connessione:")
WriteLog( err.description)
WriteLog("----")
ConnectToDB = false
end if
ConnectToDB = true
end function

public function DisconnectToDB(conn)
conn.Close
end function
%&gt;
Nelle pagine in cui vuoi fare la connessione devi istanziare l'oggetto Connection e il riferimento ad esso lo devi passare alla funzione,per disconnetterti puoi utilizzare la funzione DisconnectToDB(RIFERIMENTO)


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.