Jag har en funktion som kollar av om användarnamnet finns i db:n redan...och den ser ut så här: Problemet är att if-satsen gör skillnad på stora och små bokstäver, det gör inte databasmotorn... För att if-satsen inte ska bry sig om det får du konvertera alla tecken till små t.ex: Gör istället en koll genom en SQL fråga:stor liten bokstav...olika händelser..[LÖST]
<code>
Do Until rs.EOF
If rs("fltAnvandarnamn") = Request.Form ("txtAnvandarnamn") then
Response.Redirect("register_new_user.asp?login=Upptaget")
Else
rs.movenext
End If
Loop
</code>
Inga konstigheter.
Problemet är det om jag skriver "Webmaster" (som det står i db:n) så funkar koden o skickar tillbaka variabeln upptaget.
Men skriver jag "webmaster" (med litet w) så får jag följande felmeddelande:
ADODB.Recordset.1 error '80004005'
SQLState: 23000
Native Error Code: -1605
[INTERSOLV][ODBC SequeLink driver][ACCESS][Microsoft][ODBC Microsoft Access Driver] The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.
/ikeos/forum/add_new_user.asp, line 63
Rad 63 är följande:
rs.update
Någon som har en bra ide eller lösning på det hela?
Tack på förhand // LariSv: stor liten bokstav...olika händelser..
If LCase(rs("fltAnvandarnamn")) = LCase(Request.Form("txtAnvandarnamn")) then
/JohanSv: stor liten bokstav...olika händelser..[LÖST]
<code>
Set rs = con.Execute("SELECT Null FROM tblAnvändare WHERE fltAnvandarnamn = '" & Replace(Request.Form ("txtAnvandarnamn"), "'", "''") & "'")
If rs.EOF Then
'Infoga post
Else
Response.Write "Användarnamnet är upptaget!"
End If
</code>
Mycket mer effektivt.