Försöker lära mig databaskopplingar och på ett ställe i asp-filen står det: > Rad 4: Trim(Request.QueryString("KatID")) & " "Vad betyder koderna?
Set Connect = Server.CreateObject("ADODB.Connection") ' rad 1
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\asp\data\db.mdb" ' rad 2
Set RecSet = Server.CreateObject("ADODB.Recordset") ' rad 3
Visa = "SELECT * FROM Kat WHERE KatID = " & Trim(Request.QueryString("KatID")) & " " ' rad 4
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic ' rad 5
På ett annat ställe:
Set Connection = Server.CreateObject("ADODB.Connection") ' rad 6
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\asp\data\db.mdb" ' rad 7
SQLStmt = "SELECT Kat.Kategori, Prod.ProdId, Prod.Produkt, Kat.KatId FROM Kat, Prod WHERE Kat.KatId = Prod.KatId AND (Kat.KatId = " & Request("KatId") & ")" ' rad 8
SET RS = Connection.Execute(SQLStmt) ' rad 9
Nån som kan svara på vad följande betyder?
Rad 4: Trim(Request.QueryString("KatID")) & " "
Rad 5: RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
Rad 8: Hela raden
Rad 3 och rad 9, har det samma betydelse?
Många frågor, tack på förhand för ett svar!Sv: Vad betyder koderna?
Att trimma innebär att man kapar av sådant man inte vill ha. I det här fallet är det eventuella mellanslag man vill ha bort. Säg t.ex. att du har en sträng som ser ut så här: " hej! ". Efter att du har kört trim på den får du: "hej!".
Request.QueryString är sånt som användaren har skickat till sidan, vanligtvis genom ett formulär. Men man kan också skriva det direkt i adressen, så här: http://www.dinserver.com/dinsida.asp?KatID=24. Om man öppnar den sidan kommer Request.QueryString("KatID") att vara "24".
& betyder strängaddition. Man lägger alltså till ett mellanslag på slutet.
Observera skillnaden mellan numerisk (vanlig) addition och strängdito:
"34" + "42" blir 76.
"34" & "42" blir 3442.
> Rad 5: RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
Den här raden skickar en förfrågan till databasen. "Visa" är den variabel som innehåller själva frågan. "Connect" representerar anslutningen till databasen. AdOpenStatic betyder att den ska ta en bild av databasen och då påverkas ju inte bilden av vad som händer med databasen efter den blev tagen. AdLockOptimistic har med låsning av databasen att göra. Det blir inte bra om två personer samtidigt försöker ändra ett värde, så därför blir det med adLockOptimistic så att när man vill ändra ett värde så kontrollerar databasen att det inte är låst. Är det olåst så låser databasen och ger en tillåtelse att ändra och låser sedan upp när man ändrat. Är det låst får man vänta tills det blir ledigt.
> SQLStmt = "SELECT Kat.Kategori, Prod.ProdId, Prod.Produkt,
> Kat.KatId FROM Kat, Prod WHERE Kat.KatId = Prod.KatId AND
> (Kat.KatId = " & Request("KatId") & ")"
Det här är en fråga till databasen. Den är skriven i SQL. SELECT skriver man när man vill hämta ett urval ur databasen. Det som sedan räknas upp med kommatecken emellan är ur vilka kolumner man vill hämta data. Efter FROM talar man om för vilka tabeller frågan gäller. Efter WHERE talar man om vad man vill ha för data. I det här fallet vill man alltså ha ut de rader där KatID-kolumnen har samma värde i Kat-tabellen och Prod-tabellen och där KatID har ett visst värde, nämligen det som användaren har angett för KatID.
> Rad 3 och rad 9, har det samma betydelse?
Nej, rad 3 skapar ett "recordset", ett objekt som man kan fylla med data ur databasen, medan rad 9 fyller det med data ur databasen utifrån SQL-frågan på rad 8.