Funderingar på hur saker och ting sitter ihop.. Fråga: Varför sätter du dbpath till Session-objektet? Japp, som sagt bara ett test. Har ändrat till följande: Om du ska hämta saker flera gånger ur samma databas kan du göra det med samma koppling. Kan jag få ett kodexempel, tack..: <code>Koda rätt?
Vi tänker oss en sida med tex aspsidans webvoter som sitter i en includefil. Den öppnar en databas.
Mer på sidan finns ett nyhetsscript med tillhörande databas.
Sidan öppnar alltså två databaser.
Funderade lite på detta och testade att göra en sida med flera db-öppningar.
Ex:
<code>
<%
Session("dbpath") = "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("nyheter/news.mdb")
set conn = Server.CreateObject ("ADODB.Connection")
conn.Open Session("dbpath")
Set RS=Server.CreateObject("ADODB.Recordset")
SQL = "SELECT TOP 3 * from nyheter ORDER BY Ndatum DESC"
RS.Open SQL, conn, 1, 2
%>
html ----
-----
Session("dbpath") = "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("nyheter/statistik.mdb")
set conn = Server.CreateObject ("ADODB.Connection")
conn.Open Session("dbpath")
Set RS=Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * from statistik ORDER BY Sdatum DESC"
RS.Open SQL, conn, 1, 2
%>
html----
---
osv
</code>
Det fungerar bra men nånting säger mig att det inte är riktigt rätt ...
Hur gör man ovan på bästa sätt?
Hur fungerar det med en öppning i en includefil + på sidan?
TackSv: Koda rätt?
Är det så att du använder dig av det session någon annan stans?
I så fall kan du ju få fel om du har satt fel dbpath i ditt session, sätt din dbpath till en vanlig variabel istället.
Se till att stänga dina conn och rs variabler direkt när du använt dom klart.
Annars är det inga fel som jag kan seSv: Koda rätt?
<code>
Set con = Server.CreateObject("ADODB.Connection")
Path = Server.MapPath("nyheter/news.mdb")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Path
Set RS=Server.CreateObject("ADODB.Recordset")
SQL = "SELECT TOP 3 * from nyheter ORDER BY Ndatum DESC"
RS.Open SQL, con, 1, 2
..osv
</code>
Men vad jag var ute efter är om det är ok att öppna och stänga flera gånger på samma sida..och det verkar ju vara det.
Om vi tänker följande: I news.mdb finns det fler tabeller och jag vill ställa en sql-fråga till på samma sida ex:
<code>
SQL = "SELECT * from tblNamn "
</code>
Det fungerar att använda join i en fråga, men om man vill ha en så att säga fristående fråga men använda sig av samma koppling?Sv: Koda rätt?
con.open...
rs1.open... , con, ....
rs1.close
rs2.open... , con, ...
rs2.close
con.close
/JohanSv: Koda rätt?
<code>
<%
Set con = Server.CreateObject("ADODB.Connection")
Path = Server.MapPath("mdb/nyheter.mdb")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Path
Set RS=Server.CreateObject("ADODB.Recordset")
SQL = "Select * FROM nyheter"
RS.Open SQL, con, 1, 2
%>
</code>
plus en tabell som heter statistik
Tack!Sv: Koda rätt?
Set con = Server.CreateObject("ADODB.Connection")
Path = Server.MapPath("mdb/nyheter.mdb")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Path
Set RS=Server.CreateObject("ADODB.Recordset")
SQL = "Select * FROM nyheter"
RS.Open SQL, con, 1, 2
'gör vad du ska göra med rs:et
RS.Close
SQL = "Select * FROM statistik"
RS.Open SQL, con, 1, 2
'gör vad du ska göra med rs:et
RS.Close
con.Close
set RS=Nothing
set con=Nothing
</code>
Om du vill kan du givetvis öppna flera olika recordset som du har öppet samtidigt, men som jag tolkar det så ska du bara skriva ut saker från olika tabeller efter varandra, då kan du göra såhär.
/Johan