webForumDet fria alternativet

Problem med min if sats...

9 svar · 325 visningar · startad av Thompa__85

Thompa__85Medlem sedan aug. 2002600 inlägg
#1

Kan jag inte göra så här?

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas/databas.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anv where anv = '"&session("id")&"'"
rs.Open Addera, Connect, 3, 3 
%>
<% IF session("id") = rs("anv") Then %>
<frameset rows="139,*" frameborder="No" border="0" framespacing="0"> 
<frame src="top.asp" name="top" noresize scrolling="no">
<frameset cols="140,660,*"> 
<frame src="meny.asp" name="meny" noresize>
<frame src="main.asp" name="main" scrolling="yes" noresize>
<frame src="right.asp" name="right" noresize>
</frameset>
</frameset>

<% else %>

Du måste logga in
<% end if %>

Den säger bara:
error '80020009'
/adde/star/2/dastar.asp, line 8

nån som vet?

mikulMedlem sedan aug. 20013 824 inlägg
#2

Testa detta :
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas/databas.mdb")
Set rs = Connect.execute("SELECT * FROM anv where anv = '"& session("id") &"';")

IF cStr(Trim(session("id"))) = cStr(Trim(rs("anv"))) Then
%>
<frameset rows="139,*" frameborder="No" border="0" framespacing="0">
<frame src="top.asp" name="top" noresize scrolling="no">
<frameset cols="140,660,*">
<frame src="meny.asp" name="meny" noresize>
<frame src="main.asp" name="main" scrolling="yes" noresize>
<frame src="right.asp" name="right" noresize>
</frameset>
</frameset>

<% else %>

Du måste logga in
<% end if %>

Damn, kan inte gora kod-tagar pa detta tangentbord

Thompa__85Medlem sedan aug. 2002600 inlägg
#3

Den klagar på detta:

IF cStr(Trim(session("id"))) = cStr(Trim(rs("anv"))) Then

JAreMANNENMedlem sedan aug. 20002 272 inlägg
#4

Thompa__85 skrev:

Den klagar på detta:

IF cStr(Trim(session("id"))) = cStr(Trim(rs("anv"))) Then

Nåt med cstr() skulle jag tro...
Felmess?

Thompa__85Medlem sedan aug. 2002600 inlägg
#5

samma som tidigare...

SebbeMedlem sedan jan. 20032 285 inlägg
#6

Kanske såhär (om tabellen anv är ett nummer och sessionen också är ett nummer)?

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas/databas.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anv where anv = '"&session("id")&"'"
rs.Open Addera, Connect, 3, 3 

If IsNumeric(rs("anv")) Then
  IF CInt(session("id")) = CInt(rs("anv")) Then
%>
<frameset rows="139,*" frameborder="No" border="0" framespacing="0"> 
<frame src="top.asp" name="top" noresize scrolling="no">
<frameset cols="140,660,*"> 
<frame src="meny.asp" name="meny" noresize>
<frame src="main.asp" name="main" scrolling="yes" noresize>
<frame src="right.asp" name="right" noresize>
</frameset>
</frameset>
<%
  else
    Response.Write("Du måste logga in")
  end if
Else
  Response.Write("Du måste logga in")
End If
%>
@ndersMedlem sedan juni 200032 969 inlägg
#7

Man skall ALLTID kontrollera att inte recordsetet är tomt innan man försöker göra saker med det.

Har verkligen Session("id") ett värde?

Engine^Medlem sedan dec. 20003 887 inlägg
#8

Om den inte hade det skulle det väl bli ett fel i frågan?

<%
If Not Session("id") = "" Then
  Set Connect = Server.CreateObject("ADODB.Connection")
  Connect.Provider = "Microsoft.Jet.OleDb.4.0"
  Connect.Open "Data Source=" & Server.MapPath("databas/databas.mdb")

  Set rs = Server.CreateObject("ADODB.Recordset")

  Addera = "SELECT * FROM anv where anv = '"&session("id")&"'"
  rs.Open Addera, Connect, 3, 3 

  If Not rs.EOF Then
    If IsNumeric(rs("anv")) Then
      If CInt(session("id")) = CInt(rs("anv")) Then
%>
<frameset rows="139,*" frameborder="No" border="0" framespacing="0"> 
  <frame src="top.asp" name="top" noresize scrolling="no">
  <frameset cols="140,660,*"> 
    <frame src="meny.asp" name="meny" noresize>
    <frame src="main.asp" name="main" scrolling="yes" noresize>
    <frame src="right.asp" name="right" noresize>
  </frameset>
</frameset>
<%
      else
        Response.Write("Du måste logga in")
      end if
    Else
      Response.Write("Du måste logga in")
    End If
  Else
    Response.Write ("Du måste logga in")
  End If

  rs.Close
  Set rs = Nothing

  Connect.Close
  Set Connect = Nothing
Else
  Response.Write ("Du måste logga in")
End If
%>
@ndersMedlem sedan juni 200032 969 inlägg
#9

Engine^ skrev:

Om den inte hade det skulle det väl bli ett fel i frågan?

Nej, eftersom anv är ett textfält i tabellen, så är det ju helt okej att jämföra med en tom sträng i WHERE-satsen. Är då sessionen tom, så får du ju bara ingen träff med SQL-frågan.

mvh

Engine^Medlem sedan dec. 20003 887 inlägg
#10

ah... jag tänkte inte på att det var en sträng, eftersom variablen var döpt till id.

135 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)