25. maj 2004 - 01:17Der er
24 kommentarer og 2 løsninger
Opret databaseforbindelse fra function eller sub
Hej eksperter. Er det muligt at oprette en databaseforbindelse fra en function eller sub?
f.eks: Function aabendatabaseforbindelse() Set db_noget = Server.CreateObject("ADODB.Connection") db_noget.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & databasemappe & "database.mdb" End function
funtion opendb() Set Conn = Server.CreateObject("ADODB.Connection") ' Husk at angive den rigtige sti til din database DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/cgi-bin/database.mdb") ' Åben databaseforbindelsen Conn.Open DSN end function
function closedb() ' Luk databaseforbindelse Conn.Close Set Conn = Nothing end function
Function aabendatabaseforbindelse() Set db_fjordnet = Server.CreateObject("ADODB.Connection") db_fjordnet.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & databasemappe & "database.mdb" End Function
Function lukdatabaseforbindelse() On Error Resume Next db_fjordnet.close set db_fjordnet = Nothing if Err.Number > 0 then lukdatabaseforbindelse = "fejl: " & Err.Description else lukdatabaseforbindelse = "ok" end if Err.Clear End Function %>
---kalender.asp <!--#include file="allesider.asp"--> <% aabendatabaseforbindelse() db_fjordnet.close '<<<DENNE LINIE GIVER FEJLEN response.write lukdatabaseforbindelse() %>
1. Bemærk "Set db_fjordnet" ikke "Set db_noget" længere 2. Det er for at vise at der opstår en fejl så snart jeg prøver at gøre noget med objektet db_fjordnet
Det er ikke til at se det når det er mørkt og man er træt ;-)
jeg er sikker på at dine allesider.asp bruger databaseforbindelsen og derfor får du fejlen med objektet der mangler.
Du skal åbne dbforbindelse før du inkluderer alle sider. Desuden ser det ud som om du lukker db_fjordnet 2 gange. Anden gang er dog en response.write så ok
Function aabendatabaseforbindelse() Set db_fjordnet = Server.CreateObject("ADODB.Connection") db_fjordnet.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & databasemappe & "database.mdb" End Function
Function lukdatabaseforbindelse() On Error Resume Next db_fjordnet.close set db_fjordnet = Nothing if Err.Number > 0 then lukdatabaseforbindelse = "fejl: " & Err.Description else lukdatabaseforbindelse = "ok" end if Err.Clear End Function %>
Jeg fik det til at virke ved at bruge "Option Explicit": ---allesider.asp <% Option Explicit Dim databasemappe, db_fjordnet Databasemappe = "ER RIGTIG!!!"
Function aabendatabaseforbindelse() Set db_fjordnet = Server.CreateObject("ADODB.Connection") db_fjordnet.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & databasemappe & "database.mdb" End Function
Function lukdatabaseforbindelse() On Error Resume Next db_fjordnet.close set db_fjordnet = Nothing if Err.Number > 0 then lukdatabaseforbindelse = "fejl: " & Err.Description else lukdatabaseforbindelse = "ok" end if Err.Clear End Function %>
Altså jeg fik først scriptet til at virke da jeg brugte Option Explicit og (dimmede)? db_fjordnet. Om det så kan have noget at gøre med at jeg brugte Server.Createobject("MSXML2.ServerXMLHTTP") til at fremkalde siden ved jeg ikke.
Da jeg selv fandt løsningen, snupper jeg selv pointene.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.