Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047

    connessione a DB attraverso subroutine

    mi spiegate una cosa?
    ho 2 file: il primo contiene la funzione di connessione al DB

    codice:
    Sub OpenConn(path)
    strCONN="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath(path)
    set CONN = server.createobject("ADODB.connection")		
    CONN.Open strCONN
    End Sub
    il secondo chiama la funzione e apre un recordset

    codice:
    Call OpenConn("database/db.mdb")	
    SQL = "SELECT * FROM Tabella"
    set RS = Server.CreateObject("ADODB.Recordset")			
    RS.Open SQL, CONN, 1, 3
    Se non uso la subroutine, cioè metto del codice ASP nel file e lo includo brutalmente funziona, se invece chiamo la funzione mi dà questo errore

    codice:
    Tipo di errore:
    ADODB.Recordset (0x800A0BB9)
    Gli argomenti non sono di tipo valido, non sono compresi nell'intervallo consentito o sono in conflitto.
    Eppure l'oggetto è lo stesso e si chiama CONN....
    Qualcuno sa illuminarmi?
    Grazie ciao
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  2. #2
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    up?
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  3. #3
    devi dichiarare l'oggetto CONN *fuori* dalla sub

  4. #4
    Ti da errore perchè tu richiami e basta la funzione e tutto ciò che crei lo fai all'interno della tua funzione quando esci tutto muore perchè perdi lo "scope" prova invece a fare così :

    codice:
    Function OpenConn(path)
    strCONN="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath(path)
    set CONN = server.createobject("ADODB.connection")		
    CONN.Open strCONN
    set OpenConn = CONN
    End Function

    codice:
    set CONN = OpenConn("database/db.mdb")	
    SQL = "SELECT * FROM Tabella"
    set RS = Server.CreateObject("ADODB.Recordset")			
    RS.Open SQL, CONN, 1, 3

  5. #5
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    sia se seguo il consiglio di optime che di deivnet mi dà come errore "Tipo non corrispondente: OpenConn"
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Forse volevi dire CONN.Open...

    Roby

  7. #7
    originariamente inviato da Roby_72
    Forse volevi dire CONN.Open...
    Voleva dire OpenConn, la funzione che chiama la connessione e che dovrebbe resitutire un oggetto adodb.connection e che invece sembra non farlo...

  8. #8
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    Originariamente inviato da deivnet
    Voleva dire OpenConn, la funzione che chiama la connessione e che dovrebbe resitutire un oggetto adodb.connection e che invece sembra non farlo...
    Esatto
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  9. #9
    Se usi il codice che ti ho passato su quale riga ti da l'errore ?

  10. #10
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    Originariamente inviato da deivnet
    Se usi il codice che ti ho passato su quale riga ti da l'errore ?
    la riga contente la chiamata: Set CONN = OpenConn blablabla
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.