David Trasbo skrev:
> Jamen det er meget svært for mig når jeg ikke ved hvad SQL-sætningen er.
Nej, men det ved asp-parseren når du har opbygget din sql-sætning. Og
hvis du udskriver den, så ved du det også.
> Og hvis jeg sætter noget efter SQL, så sker der ikke noget ved det, fordi at
> serveren læser scriptet igennem, når til linje 36 og indlæser ikke resten af
> siden.
Derfor skal du lave udskriften *før* du kører sql-sætningen.
> Nogle der trin for trin vil forklare mighvad i mener. Jeg har ærlig
> talt aldrig nogensinde prøvet dette før.
Fair nok - jeg prøver gerne.
En normal asp-side med en sql-sætning kan se ud som følger. Jeg sætter
lidt kommentarer ind for at beskrive hvad der foregår:
<%
Dim strSQL, user, pwd
user = Request.Querystring("user")
pwd = Request.Querystring("pwd")
' Variablerne user og pwd indeholder nu et eller andet hentet fra
' querystring. Det er ikke umiddelbart til at sige hvad det er, men
' vi kan kontrollere det ved at udskrive værdien på skærmen:
Reponse.write "User: " & user & "<br>"
Reponse.write "Pwd: " & pwd & "<br>"
strSQL = "SELECT * FROM brugere WHERE user = '" & user & _
"' AND pwd = '" & pwd & "'"
' strSQL indeholder nu en sql-sætning. Vi ved ikke præcis hvordan den
' ser ud, da den afhænger af variablerne user og pwd, men vi kan tjekke
' det ved at udskrive den:
Response.Write "strSQL = " & strSQL & "<br>"
' Her når vi så til at køre sql-sætningen. Hvis der er noget galt med
' sætningen, vil kørslen ofte stoppe når man når hertil - og i nogle
' tilfælde vil fejlmeddelelsen måske skjule det man forsøger at udskrive
' til skærmen. Det kan vi undgå ved at bede asp-parseren om helt at
' stoppe arbejdet før den udfører sql-sætningen:
Response.End
%>
Metoden herover er helt den samme der er gennemgået på
<
http://asp-faq.dk/article/?id=41>. Prøv evt. også at nærlæse
eksemplerne der - og læg specielt mærke til hvilken rækkefølge linjerne
kommer i. Det afgørende trick er at man udskriver sql-koden når den er
helt færdigopbygget, men før den udføres. Altså *efter* alle linjer med
strSQL = XXX, men *før* linjen med Conn.Execute eller rs.Open.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html