Har ett antal metoder för datahantering, det som ger ett problem är ett som skapar ett recordset.
När jag kör LoginUser så verkar den klippa av strSQL efter som SQL:en återger ett felmeddelande:
SQL skrev:
Microsoft OLE DB Provider for SQL Server error '80040e14'
Line 1: Incorrect syntax near 'Vide'.
Kör jag utan att gå via metoderna (i ASP) så fungerar det prima.
Koden för relevanta metoder:
Public Function LoginUser(ByVal strUserName As String, ByVal strPassword As String) As Boolean
Dim rsLogin As ADODB.Recordset
oDB.CreateRecordSet "Login", "PK", "select * from members where UserName = '" & strUserName & "' AND Password = '" & strPassword & "'"
Set rsLogin = oDB.GetRecordSet("Login")
If Not rsLogin.EOF Then
LetUserID = rsLogin("ID")
BindUser
LoginUser = True
Else
LoginUser = False
End If
Set rsLogin = Nothing
End Function
Public Sub CreateRecordSet(ByVal strRecordSetName As String, ByVal strConnectionStringName As String, ByVal strSQL As String)
Dim oRecordSet As ADODB.Recordset
Set oRecordSet = New ADODB.Recordset
Set oRecordSet = GetConnectionObject(strConnectionStringName).Execute(DBSecure(strSQL))
oRecordSets.Add strRecordSetName, oRecordSet
Set oRecordSet = Nothing
End Sub
Så min tanke är att strängen på något sätt trunkeras.
Du kör funktionen DBSecure på hela din SQL-fråga. Jag antar att den escapear apostrofer. Det bör du inte göra. eftersom du då gör så att frågan blir felaktig. Frågan som kommer fram till SQL-servern ser förmodligen ut något sånt här (och då förstår du nog varför det blir fel):
select * from members where UserName = ''Vide'' AND Password = ''baha''
Hehe... man blir alltid lika förvånad när man tittar ner på golvet och upptäcker att man förlagt huvudet vid papperskorgen. Skumt. Tur det finns folk som påpekar dessa saker åt ens kropp. :)
268 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25