Jag håller på att utforska Macromedia Dreamweaver och tänkte höra lite om ett problem som uppstod. Det är ingen bra ide att ha konton för varje användare. Detta innebär att servern inte kan använda connection pooling. Utan är tvungen att minst skapa en anslutning för varje användare. Tack, det fungerade!Kolla om en inloggning lyckades
Jag vill kunna sätta användare i sessionen och använda det när jag loggar in. Detta fungerar bra, men när man loggar in med en ickefungerande får man ett asp-fel (kopplingen till databasen misslyckades)
Finns det något sätt att få ut en svarskod eller testa om det går att logga in på något vis?
Enligt felmeddelandet är det här den hänger sig:
<b>Recordset1.ActiveConnection = MM_conn_STRING</b>
<code>
MM_conn_STRING = "dsn=DEVELOP;uid=" & session("username") & ";pwd=" & session("password")
Dim Recordset1__MMColParam
Recordset1__MMColParam = "1"
if (Request.QueryString("para") <> "") then Recordset1__MMColParam = Request.QueryString("para")
set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_conn_STRING
' Response.Redirect("nologon.asp")
Recordset1.Source = "SELECT * FROM TABELL WHERE ID = " + Replace(Recordset1__MMColParam, "'", "''")"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 3
Recordset1.Open()
Recordset1_numRows = 0
</code>Sv: Kolla om en inloggning lyckades
För att frigöra anslutningen bör du skapa ett connection objekt. Annars skapar recordsetet en egen anslutning.
Du kan ju testa anslutningen så här:
<code>
Dim Recordset1__MMColParam
Dim Connection
Const adStateOpen = 1
MM_conn_STRING = "dsn=DEVELOP;uid=" & session("username") & ";pwd=" & session("password")
Set Connection = Server.CreateObject("ADODB.Connection")
On Error Resume Next
Connection.Open MM_conn_STRING
On Error Goto 0
If Connection.State = adStateOpen Then
If Request.QueryString("para") <> "" then
Recordset1__MMColParam = Request.QueryString("para")
Else
Recordset1__MMColParam = "1"
End If
set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.CursorLocation = 2
Recordset1.Open "SELECT * FROM TABELL WHERE ID = " + Replace(Recordset1__MMColParam, "'", "''")", Connection, 0, 3
Recordset1_numRows = 0
Do Until Recordset1.EOF
Recordset1.MoveNext
Loop
Recordset1.Close
Set Recordset1 = Nothing
Connection.Close
Else
Response.Redirect "nologon.asp"
End If
Set Connection = Nothing
</code>Sv: Kolla om en inloggning lyckades
Grejjen är att det är ett gränssnitt mot en databas där användarnamnet styr väldigt mycket. Det är inget publikt så belasningen kommer inte vara så hård på servern. Därför måste jag använda "unika" user/pass för varje användare.. men jag förstår vad du menade med att det är dumt.