mozillaMedlem sedan juli 20011 084 inlägg Jag bygger en sida och har lite funderingar om vilken metod som är bäst/snabbast/mins krävande osv. De är en sida, låt oss säga ett forum för enkelhetens skull? Där de då finns undersidor, valda med case satser för tex. läsa/skriva/spara osv. Hur är det bäst att ha db kopplingen. Har 3 alternativ under som ni ska få välja mellan?
[b]1.[/b]
Set Conn = ...
Conn.Open ...
Case "index"
Här hittar du alla inlägg....
rs.Open
'skriver ut allt
Case "annat"
rs.Open
'skriver ut de andra
'osv
End Select
Conn.Close
[b]2.[/b]
Set Conn = ...
Conn.Open ...
Case "index"
Här hittar du alla inlägg....
rs.Open
'skriver ut allt
Conn.Close
Case "annat"
rs.Open
'skriver ut de andra
Conn.Close
'osv
End Select
[b]3.[/b]
Case "index"
Set Conn = ...
Conn.Open ...
Här hittar du alla inlägg....
rs.Open
'skriver ut allt
Conn.Close
Case "annat"
Set Conn = ...
Conn.Open ...
rs.Open
'skriver ut de andra
Conn.Close
'osv
End Select
Det som skiljer är när man öppnar och stänger databaskopplingen? Är det bättre att stänga den så fort man använt de man behöver? Och göra det en gång i varje case. Eller kan den vara öppen genom hela case satsen och stängs bara en gång i slutet bara. Eller ska man bara öppnar precis där man behöver och stänger direkt efter man är klar. dvs öppna och stänga en gång i varje case sats.
PaceMedlem sedan juni 20019 024 inlägg Öppna databasen för när du behöver den, och stäng den så fort som möjligt. Hämta gärna med .Getrows() metoden på ditt recordset, alternativ frånkopplade recordset.
mozillaMedlem sedan juli 20011 084 inlägg okej, men om man nu behöver den på nästan alla sidor. fast de kanske bara är väldigt lite? Vilket av alternativen menar du på då? För om man öppnar och stänger i varje case sats så blir ju filen ganska stor om man har många undersidor?
PaceMedlem sedan juni 20019 024 inlägg
mozilla skrev:
okej, men om man nu behöver den på nästan alla sidor. fast de kanske bara är väldigt lite? Vilket av alternativen menar du på då? För om man öppnar och stänger i varje case sats så blir ju filen ganska stor om man har många undersidor?
Inget av alternativet. Av den anledningen ska du dela upp din kod i moduler, så blir det inte så mycket kod som du tror. Exempel:
Sub Main()
Select Case LCase(strAction)
Case "index"
arrIndex = GetRecords("SELECT field FROM table")
Case "profile"
arrProfile = GetRecords("SELECT other_field FROM table")
Case "some_other_thingie"
arrFoo = GetRecords("SELECT thingie FROM table")
Case Else
arrError = GetRecords("SELECT error FROM table")
Response.Write arrError(0, 0)
End Select
End Sub
Function GetRecords(SQL)
Set Connection = CreateDBconn("DSN=greger")
Set rs = Connection.Execute(SQL)
If Not rs.BOF Or Not rs.EOF Then
arrRecords = rs.Getrows()
End If
rs.Close
Set rs = nothing
Connection.Close
Set Connection = nothing
GetRecords = arrRecords
End Function
Givetvis ska du också deklarera variablerna, vilket jag inte gjort här.