webForumDet fria alternativet

Connection object

4 svar · 180 visningar · startad av Jörgen HP

Jörgen HPMedlem sedan feb. 20012 412 inlägg
#1

Hallå!

Så som jag har det nu har jag skapat 2 olika object som jag lagt i subbar.

Ett för SELECT och ett för Delete, Update, Insert.

När jag ska göra något med databasen kör jag subben och stänger sedan connection objektet direkt.

På vissa sidor blir det en massa öppnande och stängande av databasen.

Är det rent av bättre vid vissa tillfällen att öppna den 1 ggr och sedan stänga den i slutet på sidan?

Tack för svar, gärna med en motivering av varför det är si eller så.

Jörgen :e

------------------
"Ett väl utfört arbete ger en inre tillfredsställelse och är den grund varpå samhället vilar."

spangoMedlem sedan juni 20008 205 inlägg
#2

Ja, det är bättre att bara öppna en eftersom man behöver göra mindre då :)
Så skriv om dina subbar så att de tar emot connectionen som argument (använder du globala variabler kommer jag och stryper dig med taggtråd ;) ).

------------------
The mud can make you prisoner, the plains can make you dry,
the snow can burn your eye but only people make you cry...

[Redigerat av Joe Mama den 22 aug 2001]

jorgenMedlem sedan feb. 20012 412 inlägg
#3

Okey, fattar jag dig rätt:

Ex på Sub:


Sub InsertPost(SQLStmt)
Set Connection = Server.CreateObject("ADOdb.connection")
With Connection
    .Open "DSN"
    .Execute SQLStmt,,128
    .Close()
End With
Set Connection = Nothing
End Sub

Ska jag istället dela upp det i två?


Sub InsertPost(SQLStmt)
Set Connection = Server.CreateObject("ADOdb.connection")
With Connection
    .Open "DSN"
    .Execute SQLStmt,,128
End With
End Sub
Sub CloseDB()
Connection.Close()
Set Connection = Nothing
End Sub

Mvh Jörgen :e

------------------
"Ett väl utfört arbete ger en inre tillfredsställelse och är den grund varpå samhället vilar."

PatrikBMedlem sedan mars 20002 836 inlägg
#4

Gör hellre på detta vis:

Function GetDBConn
Dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DSN"
Set GetDBConn = objConn
End Function

När du vill skapa ett connection object:

Dim objDB
Set objDB = GetDBConn

Om du behöver använda en connection inne i en sub/function:

Function RunSQLGetRows(ByVal Connection, ByVal SQLQuery)
Dim objRS
Set objRS = Connection.Execute(SQLQuery)
IF Not objRS.EOF Then
'## -- return result --
RunSQLGetRows = objRS
End If
Set objRS = Nothing
End Function

[r]
Används så här:

Dim objDB, arrRecords, strSQL
strSQL = "SELECT * FROM TBL_TABLE"
Set objDB = GetDBConn
arrRecords = RunSQLGetRows(objDB, strSQL)
objDB.Close
Set objDB = Nothing

'## -- loopa igenom arrayen och visa resultatet --

[/r]

cya,
PatrikB

------------------
*ordning och reda!, pengar på fredag.*

[Redigerat av PatrikB den 29 aug 2001]

jorgenMedlem sedan feb. 20012 412 inlägg
#5

Hej och Tack Patrik!

Passar på att klistra in mitt senaste alster från Cafe webforum som jag tycker talar sitt tydliga språk. :e

Håll till godo:

En hundintresserad man från Sala
hör till wF:s trogna hjälpar-skara
för eminenta lösningar på problem
borde han få ett stort guld emblem
i statestiken lär han knappast dala

Till er som tycker detta svar är *trams*, tryck bakåt i webläsaren ;)

Mvh Jörgen :)

------------------
"Ett väl utfört arbete ger en inre tillfredsställelse och är den grund varpå samhället vilar."

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)