Jag tänkte skriva en lite tunnare artikel om Connection objektet, det objekt som används för att skapa databas-kopplingar, hur viktigt det är att hantera detta på rätt sätt...
jag har märkt att flera gånger har denna fråga kommit upp i forumet. Denna artikel är riktad mot nybörjare!
iaf, för att öppna en databas så krävs det att servern har installerat IIS, ADO (Microsoft ActiveX Data Objects), samt en databas som har stöd för detta, vanligast är MS-Access, mySQL, MS-SQL server, Oracle osv... de flesta databaser kostar pengar utom mySQL. ADO följer troligen med alla databaser som har stöd för det, men nyare versioner finns att hitta på MS-Update.
Först måste vi öppna ett objekt som tar hand om databasens information, och hjälper till att visa informationen för användaren, i korta drag alltså. För att skapa ett objekt på servern används följande: Set objConn = server.createObject("ADODB.Connection")
Översatt till svenska blir detta: Skapa ett objekt av typen ADODB.Connection som heter objConn. När vi skapar ett objekt så placeras det i serverns minne, och ligger där tills det stängs eller timas ut automatiskt, här skapar vi ett "Connection-objekt" som heter objConn, jag döper det till objConn pga. att jag alltid använder prefix, och döper saker till självförklarande namn, objConn är förkortning på ObjectConnection.
Nu är ett objekt öppnat mot minnet och asp-filen, vi måste öppna databasen för att få tillgång till dess information, med hjälp utav objektet objConn, så skall vi öppna en databas med metoden .Open(). När du använder .open() så anger du värden som skall behandlas, och öppna en vald databas med viss information om hur osv...
Syntax för .open är i vårt fall: objConn.open(ConnectionString, UserID, Password) I "Connectionstring" så anger du vilken drivrutin, sökväg till databasen som skall användas, alternativt är userID och password, har man satt ett lösenord på databasen måste man ange dessa för att få öppna och ha tillgång till databasen
Ett exempel på hur man öppnar en databas är: Kod:
Set objConn = server.createObject("ADODB.Connection") objConn.open("Driver={Microsoft Access Driver (*.mdb)}; DBQ="& server.mappath ("databas.mdb") &";")
Vi öppnar nu en vanlig Access databas utan någon DNS-koppling och utan lösenord, vi anger vilken drivrutin som skall användas i Driver, i detta fall Access egna drivrutiner. Vi anger även sökvägen till databasen i DBQ, men lämnar userID och password. Databasen är nu öppen för användning, men för att plocka ut information måste man använda recordsets, det kommer jag inte gå in på nu, utan du får läsa vidare om detta i andra kurser
Det viktigaste inom databas-hantering är att stänga det man öppnat. allt som har en början, måste ha ett slut, på gott eller ont, samma sak är det inom databas-hantering... man kan välja att gå på grusväg, eller sidenmatta...
Sidenmattan i detta fall är att stänga databasen och frigöra det från minnet manuellt efter man är klar med alla operationer som databasens motor har utfört, och grusvägen är att låta databasen och servern automatiskt timas ut, och frigöra objektet och databasen själv efter en viss tidspertiod.
För att frigöra ett specielt objektet från minnet så används (notera objConn): Kod:
Set objConn = Nothing Och för att stänga databasen, så används en relativt lik händelse: objConn.Close
Ett heltäckande exempel är detta: Kod:
Set objConn = server.createObject("ADODB.Connection") objConn.open("Driver={Microsoft Access Driver (*.mdb)}; DBQ="& server.mappath ("databas.mdb") &";")
'diverse databas-operationer
objConn.close Set objConn = Nothing
Vissa fel kan uppkomma vid databas-hantering som igentligen är väldigt simpla att åtgärda.
Databasen måste vara skrivbar för att du ska kunna behandla dess information, läs Guffas artikel om detta här i artikelarkivet.
Databasen får i vissa fall inte vara öppnad av användaren, då den försöker skriva till databasen medans du som användare redigerar den för hand utanför, blir det felmedelande.
Använd alltid nyaste drivrutinerna till databasen, helst MS-Jet 4 motorn.
Bättre drivrutiner till Access tillåter runt 50 användare samtidigt, om du inte stänger ner och frigör databasen från minnet efter varje gång du använt databasen, så kommer du lätt upp till 50 uppkopplingar, och databasen säger upp sig för ett tag. Hoppas att du har blivit lite klokare och nu förstår en del av innebörden med att använda databaser till dina applikationer, för min del hoppas jag på mindre frågor i forumet angående detta ämne.
Om du anser att artikeln bör utökas, ge då förslag på vad som saknas
/ Anders Wickman |