Hi everyone!
I have a log in page and I want to increment a counter in my DB for each
time a userID logs in. I can connect and retrieve information from the DB
just fine, but my attemps to update cause an "Internal Server Error" Talked
to a friend and he thought that it might have something to do with the table
being locked from a
previous Select statement. So I tried just doing the Update statement and
nothing else - that didn't work. I tried hard coding the statement to rule
out a missing ' or "" or something - that didn't work. Tried running the
statement direct against the DB - and that did work. I just don't
understand what the heck I'm doing wrong. I'm pulling my hair out and any
ideas/suggestions would be greatly appreciated. I had orginally posted this
question on the FrontPage board but thought maybe it would be more
appropriate here. Here is the EmpLogOn.inc in its entirety.
<%
' Do not cache this page.
Response.CacheControl = "no-cache"
' Define the name of the users table.
Const USERS_TABLE = "tblUsers"
' Define the path to the logon page.
Const LOGON_PAGE = "/EmpLogOn.asp"
' Define the path to the logon database.
Const MDB_URL = "/_private/EmpLogOn.mdb"
' Check to see whether you have a current user name.
If Len(Session("UID")) = 0 Then
' Are you currently on the logon page?
If LCase(LOGON_PAGE) <> LCase(Request.ServerVariables("URL")) Then
' If not, set a session variable for the page that made the request...
Session("REFERRER") = Request.ServerVariables("URL")
' ...and redirect to the logon page.
Response.Redirect LOGON_PAGE
End If
End If
' This function checks for a username/password combination.
Function ComparePassword(UID,PWD)
' Define your variables.
Dim strSQL, objCN, objRS
' Set up your SQL string.
strSQL = "SELECT * FROM " & USERS_TABLE & _
" WHERE (UID='" & ParseText(UID) & _
"' AND PWD='" & ParseText(PWD) & "');"
' Create a database connection object.
Set objCN = Server.CreateObject("ADODB.Connection")
' Open the database connection object.
' Open the database connection object.
objCN.Open "driver={Microsoft Access Driver (*.mdb)}; dbq=" & _
Server.MapPath(MDB_URL) & "; uid=admin; pwd="
' Run the database query.
Set objRS = objCN.Execute(strSQL)
'incrememt the counter if login worked
If objRS.EOF = false then
Dim CompanyCounter1
CompanyCounter1 = objRS("CompanyCounter") + 1
strSQL = "UPDATE " & USERS_TABLE & _
" SET CompanyCounter = '" & CompanyCounter1 & _
"' WHERE (UID='" & ParseText(UID) & _
"' AND PWD='" & ParseText(PWD) & "');"
******THIS IS THE LINE THAT FAILS IF NOT COMMENTED OUT****
'objCN.Execute (strSQL)
end if
' Set the status to true/false for the database lookup.
ComparePassword = Not(objRS.EOF)
' Close your database objects.
Set objRS = Nothing
Set objCN = Nothing
End Function
' This function checks for a username/password combination.
Function GetName()
' Define your variables.
Dim strSQL, objCN, objRS
' Set up your SQL string.
strSQL = "SELECT * FROM " & USERS_TABLE &" WHERE (UID='" &
ParseText(Session("UID")) & "');"
' Create a database connection object.
Set objCN = Server.CreateObject("ADODB.Connection")
' Open the database connection object.
objCN.Open "driver={Microsoft Access Driver (*.mdb)}; dbq=" & _
Server.MapPath(MDB_URL) & "; uid=admin; pwd="
' Run the database query.
Set objRS = objCN.Execute(strSQL)
GetName = objRS("CompanyName")
' Close your database objects.
Set objRS = Nothing
Set objCN = Nothing
End Function
' This function checks for a username/password combination.
Function GetImage()
' Define your variables.
Dim strSQL, objCN, objRS
' Set up your SQL string.
strSQL = "SELECT * FROM " & USERS_TABLE &" WHERE (UID='" &
ParseText(Session("UID")) & "');"
' Create a database connection object.
Set objCN = Server.CreateObject("ADODB.Connection")
' Open the database connection object.
objCN.Open "driver={Microsoft Access Driver (*.mdb)}; dbq=" & _
Server.MapPath(MDB_URL) & "; uid=admin; pwd="
' Run the database query.
Set objRS = objCN.Execute(strSQL)
GetImage = objRS("CompanyImage")
' Close your database objects.
Set objRS = Nothing
Set objCN = Nothing
End Function
' This function restricts text to alpha-numeric data only.
Function ParseText(TXT)
Dim intPos, strText, intText
For intPos = 1 TO Len(TXT)
intText = Asc(Mid(TXT,intPos,1))
If (intText > 47 And intText < 58) Or _
(intText > 64 And intText < 91) Or _
(intText > 96 And intText < 123) Then
strText = strText & Mid(TXT,intPos,1)
End if
Next
ParseText = strText
End Function
%>
Thank you!!!!!