Vi ska skapa en komponent som ska användas i asp-dokument. Hej... Det enklaste och mest smidiga borde väl vara att läggaDatabas-koppling genom VB och ASP
Komponenten ska göra databaskopplingen där själva databasnamnet kommer som en variabel (typ) från asp-sidan.
Allt för att det ska vara så dynamiskt som möjlig och för att man ska slippa ändra i själva komponenten...
Dvs. oavsett företag så ska komponenten fungera eftersom databasnamnet ligger externt.
Själva kopplingen i komponenten kan vara både av typen ODBC och Native...
Hur gör man detta????Sv: Databas-koppling genom VB och ASP
databas, tabell osv i en connection-sträng i global.asa på följande sätt:
Sub Application_OnStart
Application("ConnectionString") = "Provider=SQLOLEDB.1;User Id=sa;Server=DIN_SERVER;Initial Catalog=DIN_DATABAS;"
End Sub
Detta för att sedan hämta Connection strängen innefrån komponenten.
I komponenten sätter du sedan upp referenser till:
Microsoft Transaction Server type library,
Microsoft Active Server pages object library,
och Microsoft ActiveX Data Objects om du nu tänker använda dig av ADO.
I komponenten :
Option Explicit
Private objCtx As ObjectContext
Implements MTxAS.ObjectControl
Public Sub DoStuff()
Dim rs As Recordset
Dim sSQL As String
Dim Application As Application
Dim Response As Response
Dim sConn As String
On Error GoTo ErrHnd
' Här hämtas connection-strängen
Set Application = GetObjectContext("Application")
' Du vill väl skriva lite grejer till din sida, och då
använder vi oss av Response...
Set Response = GetObjectContext("Response")
Set rs = CreateObject("ADODB.Recordset")
rs.CursorLocation = adUseClient
sConn = Application("ConnectionString")
sSQL = "select ... from ... where ..."
rs.Open sSQL, sConn, adOpenForwardOnly, adLockReadOnly
' Gör grejer med ditt resultatset..
' Kanske skriva ut innehållet? --> response.write rs(index)
rs.Close
ErrHnd:
Set rs = Nothing
Set Application = Nothing
Set Response = Nothing
If Err Then
' Om något gick fel måste vi göra följande..
objCtx.SetAbort
Else
' Om allt däremot gick bra gör vi SetComplete.
objCtx.SetComplete
End If
End Sub
Private Sub ObjectControl_Activate()
Set objCtx = GetObjectContext
End Sub
Private Function ObjectControl_CanBePooled() As Boolean
End Function
Private Sub ObjectControl_Deactivate()
Set objCtx = Nothing
End Sub
I din asp-fil anropar vi komponenten på följande sätt:
<%
Dim objKomponent
Set objKomponent = Server.CreateObject("Komponentnamn.Klassnamn")
objKomponent.DoStuff
Set objKomponent = Nothing
%>
Hoppas detta kan hjälpa dig att komma igång.
/Sanny