<code> Eller så kan man använda ett Command objekt med en parametriserad fråga. Ett komplett exempel ser ut såhär:Sv: or 1=1
Function SQLText(Value)
If Len(Value) > 0 Then
SQLText = "'" & Replace(Value, "'", "''") & "'"
Else
SQLText = "Null"
End If
End Function
Dim strSQL
Dim strName
Dim strPassword
strName = Request.Form("Name")
strPassword = Request.Form("Password")
strSQL = "SELECT Users.* FROM Users WHERE UserName=" & SQLText(strName) & " AND UserPassword=" & SQLText(strPassword)
</code>Sv: or 1=1
Den har dessutom en mycket stor fördel i SQL Server då frågan då kan cachas på servern till skillnad från strängkonkatenering av SQL-anropet där servern ej har några varibler i anropet att byta ut mot värden.
Man får skriva lite mer kod men får ett snabbare anrop och mer lättläst kod.
strSQL = "SELECT Users.* FROM Users WHERE UserName=" & SQLText(strName) & " AND UserPassword=" & SQLText(strPassword)
Set myCommand = CreateObject("ADODB.Command")
myCommand.CommandText = strSQL
myCommand.Parameters(0).value = strName
myCommand.Parameters(1).value = strPassword
Set rs.Source = myCommand
rs.Open
set cmd = nothingSv: or 1=1
<code>
Dim rs As ADODB.Recordset
Dim cmd As ADODB.Command
Dim con As ADODB.Connection
Dim strSQL
Dim strName
Dim strPassword
Const adCmdText = 1
Const adVarChar = 200
Const adParamInput = 1
strSQL = "SELECT Users.* FROM Users WHERE UserName=? AND UserPassword=?"
strName = "Nisse"
strPassword = "MittLösenord"
Set con = CreateObject("ADODB.Connection")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;" & _
"Data Source=c:\UserDB.mdb"
Set cmd = CreateObject("ADODB.Command")
Set cmd.ActiveConnection = con
cmd.CommandText = strSQL
cmd.CommandType = adCmdText
cmd.Parameters.Append cmd.CreateParameter("Name", adVarChar, adParamInput, 20, strName)
cmd.Parameters.Append cmd.CreateParameter("Password", adVarChar, adParamInput, 20, strPassword)
Set rs = CreateObject("ADODB.Recordset")
rs.Open cmd
If rs.EOF Then
Response.Write "Inloggning misslyckades!"
Else
Session("UserID") = rs("UserID")
Session("UserName") = rs("UserName")
Session("UserFirstName") = rs("UserFirstName")
Session("UserLastName") = rs("UserLastName")
End If
rs.Close
Set rs = Nothing
Set cmd = Nothing
con.Close
Set con = Nothing
</code>
Om man använder Command kan man i access spara en parameterfråga istället eller i SQL server en Stored Procedure.