webForumDet fria alternativet

ASP, OOP och VB Script Classer???

2 svar · 190 visningar · startad av PatrikB

PatrikBMedlem sedan mars 20002 713 inlägg
#1

Sitter och labbar med VB Script Classer och undrar hur man på ett effektivt sätt ska koda klasserna så att man slipper initiera adodb.connection, adodb.recordset osv. flera ggr på en sida om man har tex en nyhetsklass, visa senaste inlägg i ett forumklassetc på en sida.

Är det dåligt att först initiera databas classen sedan skicka in de metoder man vill använda från den, tex hämtning av recsets m.m, i de andra klasserna som behöver info från databasen.

Tex:

Dim objDatabase  ' As clsDataClass
Dim objRS  ' As clsDataClass.GetRS
Dim objNews  ' As clsNewsClass
Dim objForum  ' As clsForumClass
Dim strSQLn  ' As String
Dim strSQLf  ' As String

Set objDatabase = New clsDataClass
 objDatabase.ConnectionString(strDBQ)

Set objNews = New clsNewsClass

    strSQLn = "SELECT * FROM TBL_NEWS"
    Set objRSn = objDatabase.GetRS(strSQLn)
              objNews.ShowLast(3, objRSn)

    strSQLf = "SELECT * FROM TBL_MESSAGES"

    Set objRSf = objDatabase.GetRS(strSQLf)
              objForum.ShowLast(5, objRSf)

    Set objNews = Nothing
    Set objForum = Nothing
    Set objRS = Nothing

Set objDatabase = Nothing

Eller ska man "baka" in all databas hantering i varje enskild klass vilket skulle sänka prestanda rejält eftersom initieringarna för databas objektet(öppna dtabas och stänga), skulle ske fler ggr, eller e jag helt ute och cyklar eller ska man ta den prestanda förlusten?

cya

------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function

[Redigerat av PatrikB den 26 jan 2001]

ToonsterMedlem sedan feb. 20001 546 inlägg
#2

med tanke på urvalet 3 + 5 poster tror jag inte det kommer att vara någon större skillnad, med det sättet du har.

Undrar dock om adodb.recordset inte är den största bromsklossen.

Först hämtar du alla poster från tabellen och sen sållar ut de 3 posterna.
(hela tabellen finns i recordsetet)

Mot att bara hämta de tre posterna.
(bara tre poster finns i recordsetet)

Här finns prestanda att hämta, du behöver inte lagra hela tabellen i onödan.

Inte funderat på att försöka köra ett enda SQL uttryck?

/T

------------------
------------------->8 klipp här!!

[Redigerat av Toonster den 26 jan 2001]

PatrikBMedlem sedan mars 20002 713 inlägg
#3

ok ... sql utrycken stämmer inte ......

allt var bara ett exempel skrivet från tomma intet så att säga .... det som var intressant e om man ska baka in all databas hantering inne i varje respektive class eller om man ska ha en databas class som hanterar all databashantering och sedan anger man vilken tex connection som ska användas i varje annan class, sen hur man hämtar recsetet e inte intressant i detta läge ...

fast nu lät det än snurrigare än tidigare men hoppas att ni förstår vad jag menar =O

cya,

------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function

[Redigerat av PatrikB den 26 jan 2001]

Genererad på 374 ms · cache AV · v20260730165559-full.f96bc7eb