webForumDet fria alternativet

Funktion som returnerar ett objekt

ASP

9 svar · 234 visningar · startad av toha

Medlem sedan dec. 1999707 inlägg
Frågan#1

Tjoho!

Har lite funderingar kring funktioner som returnerar objekt. Jag har skrivit en funktion som returnerar ett Recordset:

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">

Function ExecSql(ByVal sSql, ByVal sConnString)

	Dim oConn, oRec
	
	Set oRec = Server.CreateObject("ADODB.Recordset")
	oRec.CursorLocation = 3				' adUseClient
	oRec.Open sSql, sConnString
	Set oRec.ActiveConnection = Nothing
	Set ExecSql = oRec
	Set oRec = Nothing

End Function

</font>

Och funktionsanropet:

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">

Set oRec = ExecSql("select * from artiklar_1", "DSN=skiva")

</font>

Men jag är lite osäker på att jag gör allt korrekt. Jag vill att den skall i princip fungera som Execute-metoden till ADODB.Recordset-objektet. (Min funktion returnerar ett disconnected recordset). Den metoden returnerar ett recordset.

Hjälp tack!

------------------
/ Torbjörn Hansson, webbutvecklare
Endero Sverige

[Redigerat av toha den 07 okt 2000]

Medlem sedan dec. 19995 874 inlägg
#2

Hej!

Det ser ut att fungera, när jag tittar på det lite snabbt, men eftersom du postar det här antar jag att det inte fungerar?

Får du något fel?

Vad händer?

Ha det bra!

------------------
Mvh
Patrik
aka Brimba

Medlem sedan dec. 19995 874 inlägg
#3

Det råkar inte vara att du stänger den?

Function ExecSql(ByVal sSql, ByVal sConnString)
      Dim oConn, oRec
      Set oRec = Server.CreateObject("ADODB.Recordset")
      oRec.CursorLocation = 3				' adUseClient	
      oRec.Open sSql, sConnString	
      Set oRec.ActiveConnection = Nothing	
      Set ExecSql = oRec	
End Function

Kanske fungerar bättre?

------------------
Mvh
Patrik
aka Brimba

[Redigerat av Brimba den 07 okt 2000]

Medlem sedan maj 2000269 inlägg
#4

varför har du gjort en funktion för att få ur data ur en databas?. ASP scriptet körs bara 1 gång, så funktioner behövs egentligen inte, ev. kanske vid RegExp i så fall.

Medlem sedan dec. 19996 721 inlägg
#5

Vad menar du Danmagnus? Varför skulle man inte skriva en funktion?

Jag tycker att det ser rätt ut. Vad går snett?

------------------
-------------------
What a waste it is to lose one's mind. Or not to have a mind is being very wasteful. How true that is.
Dan Quayle

Medlem sedan juni 200032 967 inlägg
#6

jag tycker också det ser helt rätt ut, och jag tycker att det är en bra idé att använda en funktion...

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
where do you want to go to die?</A>

Medlem sedan maj 2000269 inlägg
#7

Det är ju så att sidan körs bara 1 gång, och sen dör den, kvar blir bara den döda statiska HTML sidan. det är ju inte så att sidan är "igång" hela tiden. Vi säger i Java-script och vanliga program är det ju lite annorlunda eftersom de är "igång" hela tiden, därför behövs funktioner där. Därför tycker jag funktioner i ASP är helt onödiga.

Medlem sedan dec. 19996 721 inlägg
#8

ASP-sidor är också i gång hela tiden, det är bara det att den tiden oftast är väldigt kort. ;) Funktioner använder man för att kapsla in ofta återkommande funktioner. Mindre kod att underhålla, lättare att felsöka.

Medlem sedan dec. 1999707 inlägg
#9

Ojdå, satte visst igång en riktig diskussion här... :)

Jodå, funktionen fungerar finfint men jag var inte säker på att jag jag gjorde allt rätt. Vad som händer vid "Set" och så vidare.

Anledningen till att jag har gjort en sådan funktion är att jag har skiktat upp webbapplikationen i klasser för att underlätta att stoppa in det i VB om jag skulle göra det till nån komponent framöver. Men det är ju ganska förnämligt att sköta all databastrafik genom en funktion eftersom det då krävs mycket små ändringar om något ändras med kopplingen till databasen, precis som Emission framförde. Ok, det är lätt att koppla upp sig via ADO:n men just i det här fallet ville jag returnera datan i ett disconnected recordset.

------------------
/ Torbjörn Hansson, webbutvecklare
Endero Sverige

Medlem sedan dec. 19996 721 inlägg
#10

I så fall ser det alldeles lysande ut.

------------------
-------------------
What a waste it is to lose one's mind. Or not to have a mind is being very wasteful. How true that is.
Dan Quayle

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)