Använd MySQL databas med ASP
Förord
En av dom vanligaste metoderna för att komma åt databaser är att göra dom till ODBC-källor under Kontrollpanelen -> ODBC (32-bit). Detta fungerar med dom vanligaste databaserna, med undantag för bland annat MySQL. För att MySQL ska fungera korrekt, måste programvaran MyODBC (~1.6MB) installeras och konfigureras. När den väl är igång, fungerar den suveränt bra och dessutom agerar den som en helt vanlig ODBC-källa. Obs! För att följa med i dom exempel som finns nedan, förutsätter jag att du redan har MySQL installerad och har grundläggande SQL-kunskaper.
Förberedelser i MySQL
Logga in på din MySQL-server men någon trevlig klient och skapa en databas som heter t ex dbCommunity (det namnet kommer att användas senare i exemplena, men om du föredrar något bättre så varsågod! ;)).
mysql> CREATE DATABASE dbCommunity;
Query OK, 1 row affected (0.00 sec)
mysql>
Öppna databasen dbCommunity och skapa tabellen tblUsers:
mysql> use dbCommunity
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> CREATE TABLE tblUsers (cId INT NOT NULL AUTO_INCREMENT, sFirstname VARCHAR(30), sLastname VARCHAR(30), PRIMARY KEY(cId));
Query OK, 1 row affected (0.00 sec)
mysql>
Dags att mata in lite poster i tabellen:
mysql> INSERT INTO tblUsers(sFirstname, sLastname) VALUES("Tom", "Svensson");
Query OK, 1 row affected (0.00 sec)
mysql>
Repetera gärna momentet ovan, så att du senare får poster att leka med. För att vi ska kunna komma åt posterna senare måste vi se till så att datasens rättigheter är korrekt konfigurerade, och det gör vi med hjälp av GRANT:
mysql> GRANT ALL PRIVILEGES ON dbCommunity.* TO toms@"%" IDENTIFIED BY "lösenord" WITH GRANT OPTION;
Query OK, 0 rows affected (0.08 sec)
mysql>
Ovanstående betyder ungefär något i stil med "Ge användaren 'toms' på vilken dator som helst, möjligheten att pyssla med vad som helst på databasen dbCommunity och dess tabeller". "lösenord" byts förslagsvis ut mot något vettigt. ;)
Dags att sätta igång ordentligt!
En snabbgenomgång av installationsprogrammet: Kör igång setup.exe och klicka på [Continue], markera MySQL och klicka på [OK]. Efter filkopieringen klickar du på [Close], programmet gratulerar dig eftersom du numera är en lycklig MyODBC-användare, eller hur? ;)Gå nu in i [Kontrollpanelen], [ODBC(32-bit)] och välj fliken [System DSN]. Klicka på [Add...]. Markera MySQL och klicka på Slutför.
För att konfigurera våran ODBC-källa för att den ska fungera korrekt, behöver vi fylla i lite parametrar som används anslutningen till MySQL-servern.
De fält som minst måste fyllas i är Windows DSN name, MySQL host (name or IP), MySQL database name, User, och Password. Här är förklaringar av dessa:
-> Windows DSN name:
Namnet som du använer när du anropar ODBC-källan, i exemplet är detta dsnCommunity.
-> MySQL host (name or IP):
Adressen till datorn där MySQL-server finns.
-> MySQL database name:
Namnet på databasen du skapade tidigare.
-> User:
Användaren som vi tidigare gav rättigheter till att ansluta till databasen.
-> Password:
Lösenordet vi gav till användaren.
Dags för kodexempel
Vi börjar med att skriva ett exempel i ASP så får du se hur det kan se ut:
Demonstration av MySQL och ASP
<%
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open "dsnCommunity"
Set objGetData=objCon.Execute("SELECT * FROM tblUsers")
If objGetData.EOF Then
Response.Write "Finns inget"
Else
Do Until objGetData.EOF
Response.Write objGetData("cId") & " " & objGetData("sFirstname") & " " & objGetData("sLastname") & "
"
objGetData.MoveNext
Loop
End if
objGetData.Close
Set objGetData = Nothing
Set objCon = Nothing
%>
Ser inte så jättesvårt ut, eller hur? Ungefär på samma sätt gör du i Visual Basic, fast då får du skriva ut resultatet i en lista eller dylikt (vad som nu passar dina behov). Exemplet innefattar en fråga mot MySQL-databasen där svaret listas i en ListView-kontroll.
Om du istället för att använda System/User DSN (t ex så kanske du använder dig av något webbhotell) vill använda DSN-less, så byter du ut raden
objCon.Open "DSN=dsnCommunity"
Till följande:
objCon.Open "DRIVER={MySQL};DATABASE=dbCommunity;UID=toms;PWD=bap;SERVER=192.168.4.115"
Så där! Nu var det klart! Tänk på att connectionsträngen är känslig för mellanslag. Funderingar och förslag kan skickas till min iMail här på PelleSoft, eller till info@tomsvensson.com.
Avslutningsvis
För att jag skall veta om kursen är bra eller om den måste skrivas om så rösta gärna här uppe till höger. Skicka gärna ett iMail om du vill kommentera något som är felaktigt eller du tycker borde förtydligas.Lycka till och lev väl.
/Tom Svensson
Erik Eloff
Tack för en utmärkt artikel. Jag är helt ny inom asp och databaser och har inte lyckats få något att funka. Nu äntligen fungerar min databas.