/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Acces db, flere connections?
Fra : Kasper Kyndsberg


Dato : 30-01-02 07:04

Hej i gruppen

Jeg forsøger at lave min side om, således alt er basseret på Content
management, men har et lille problem. Jeg har en del includefiler på min
side af vedligeholdelsesmæssige årsager, som har en db connection. Problemet
opstår i det øjeblik jeg har en includefil med en db connection inden den
andne db connection er afsluttet

Eks.:

Set objConn = Server.CreateObject("ADODB.Connection")
strSQL = "Select * From Indhold Where Sidenavn = 'Forside'"
set rs = objConn.execute(strSQL)

Response.Write "[Indhold af database]"

[...]

Set objConn = Server.CreateObject("ADODB.Connection")
strSQL = "select top 5 * from Nyheder ORDER BY id DESC"
set rs = objConn.execute(strSQL)

Do Until rs.EOF

Response.Write "[Indholdet af nyhedstabel]"
rs.MoveNext
Loop

'Luk forbindelse til Nyheder
objConn.Close
Set objConn = Nothing

[Mere indhold fra Indholdstabellen]

'Luk Indholdstabellen
objConn.Close
Set objConn = Nothing

Problemet er endvidere, at jeg i min praktiske kode, bliver nødt til at
afslutte asp kodeblokken når jeg skal åbne forbindelsen til min nyhedstabel,
idet den lægger i en inkluceret fil.

Kan man på nogen måde køre en forbindelse inden en anden er færdigafviklet?

--
/Kasper
http://www.kyndsberg.dk


 
 
Tony Lorentzen (30-01-2002)
Kommentar
Fra : Tony Lorentzen


Dato : 30-01-02 08:48

Hej Kasper,

Først og fremmest får du en fejl når du laver et database (ADO) objekt med
samme navn to gange i træk. For det andet er det dumt at lave flere
databaseobjekter. På sider hvor jeg skal bruge et databaseobject laver jeg
en include i toppen af dokumentet som laver et DB-objekt. Dette objekt
bruger jeg så alle steder på siden (også i include filer). Du kan jo sagtens
bruge et databaseobjekt i include-filer som optræder senere i samme fil.
Betragt nedenstående eksempel, hvor filen "db_open.asp" fra biblioteket
"includes" bliver åbnet i starten af dokumentet. I denne fil laves et
databaseobjekt med navnet dbConn. Det vi gerne vil er f.eks. at hente
bynavnet i en anden tabel - udfra det postnummer der står i "medarbejdere"
tabellen:

<!-- #INCLUDE FILE="includes/db_open.asp" -->

<%
' Vi henter medarbejderne ud
SQL = "SELECT postnummer, navn FROM medarbejdere"
set RS = dbConn.Execute(SQL)
Do While not RS.eof
Response.Write RS("navn") & " bor i "
' Vi finder bynavnet udfra postnummeret
SQL = "SELECT bynavn FROM byer WHERE postnummer=" & RS("postnummer")
set postnummerRS = dbConn.Execute(SQL)
If not postnummerRS.eof then
Response.Write postnummerRS("bynavn")
End if
set postnummerRS = Nothing

Response.Write "<br>" & vbcrlf
RS.MoveNext
Loop
set RS = Nothing
%>

<!-- #INCLUDE FILE="includes/db_open.asp" -->

Selve SQL søgningen kan godt laves smartere med en INNER JOIN men
ovenstående er bare for at skitsere at du godt kan bruge samme
databaseobjekt til forskellige søgninger.

Ovennævnte kode er ikke testet - men et "skud" fra hoften... Hvis du har
flere spørgsmål er du velkommen til at skrive.

Mvh,

Tony Lorentzen
tony@lorentzen.com

"Kasper Kyndsberg" <nospam@kyndsberg.dk> wrote in message
news:a3825p$rki$1@sunsite.dk...
> Hej i gruppen
>
> Jeg forsøger at lave min side om, således alt er basseret på Content
> management, men har et lille problem. Jeg har en del includefiler på min
> side af vedligeholdelsesmæssige årsager, som har en db connection.
Problemet
> opstår i det øjeblik jeg har en includefil med en db connection inden den
> andne db connection er afsluttet
>
> Eks.:
>
> Set objConn = Server.CreateObject("ADODB.Connection")
> strSQL = "Select * From Indhold Where Sidenavn = 'Forside'"
> set rs = objConn.execute(strSQL)
>
> Response.Write "[Indhold af database]"
>
> [...]
>
> Set objConn = Server.CreateObject("ADODB.Connection")
> strSQL = "select top 5 * from Nyheder ORDER BY id DESC"
> set rs = objConn.execute(strSQL)
>
> Do Until rs.EOF
>
> Response.Write "[Indholdet af nyhedstabel]"
> rs.MoveNext
> Loop
>
> 'Luk forbindelse til Nyheder
> objConn.Close
> Set objConn = Nothing
>
> [Mere indhold fra Indholdstabellen]
>
> 'Luk Indholdstabellen
> objConn.Close
> Set objConn = Nothing
>
> Problemet er endvidere, at jeg i min praktiske kode, bliver nødt til at
> afslutte asp kodeblokken når jeg skal åbne forbindelsen til min
nyhedstabel,
> idet den lægger i en inkluceret fil.
>
> Kan man på nogen måde køre en forbindelse inden en anden er
færdigafviklet?
>
> --
> /Kasper
> http://www.kyndsberg.dk
>



Kasper Kyndsberg (31-01-2002)
Kommentar
Fra : Kasper Kyndsberg


Dato : 31-01-02 18:14

"Tony Lorentzen" <tony@lorentzen.com> skrev i en meddelelse
news:a388ev$19vq$1@news.cybercity.dk...
> Hej Kasper,

Hej Tony

> Først og fremmest får du en fejl når du laver et database (ADO) objekt med
[SNIP: Svar]

Mange tak for dit fyldetsgørende svar. Det var lige hvad jeg skulle bruge :)

--
/Kasper
http://www.kyndsberg.dk


Søg
Reklame
Statistik
Spørgsmål : 177551
Tips : 31968
Nyheder : 719565
Indlæg : 6408843
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste