Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > ASP > Generella frågor

Om fält = 1 redirect

poneks01
poneks01

Gradering

#20180

Hej, 

Jag har nu klurat väldigt länge på en grej! Jag har ett fält i min databas som innehåller värde 1-2. Jag vill att om värdet är lika med 1 så ska det bli response.redirect. 

Så här ser min kod ut! 

If "fält1=1" then response.Redirect(hej.html)

end if

Men det händer inget? Jag blir aldrig omredigerad! 

ID: #20180 | Skapades: 2010-09-27 13:13:57 | Tråden har 20 svar och har lästs 725 gånger.
Sida: 1 2

Roosweb
Roosweb

Gradering

#20181

Skriv ut fält1 och se så att den innehåller ett värde, sen kör den en enkel ifsats.

If Recset("falt1")="1" Then Response.Redirect("Hej.html")

Else

Response.Write("Inget händer")

End If

Med Vänliga Hälsningar - Robert Roos - Roosweb.se
ID: #20181 | Skapades: 2010-09-27 13:46:23

poneks01
poneks01

Gradering

#20182

Microsoft VBScript compilation error '800a03ea'

Syntax error

/kundplatsen/repost.asp, line 93

Else
^

Får en error! 
Hur skriver man ut värdet?

ID: #20182 | Skapades: 2010-09-27 14:40:28

voigtan
voigtan

Gradering

#20183

Du skall ha radbrytnningar i en if fråga om du skriver det på det sättet

If Recset("falt1")="1" Then
    Response.Redirect("Hej.html")
Else
    Response.Write("Inget händer, fältet innehöll:" & Recset("falt1"))
End If
Om ditt falt1 är nu bara ett tal från 1-2 så varför inte använda rätt datatyp? sätt det som ett tal och gemför det med ett tal, inte en sträng.

Eller så kör du redan rätt datatyp men gemför det mot en sträng.

If Recset("falt1")=1 Then
    Response.Redirect("Hej.html")
Else
    Response.Write("Inget händer, fältet innehöll:" & Recset("falt1"))
End If

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 27 september 2010. Läs tidigare inlägg.
Redigerades av voigtan den 27 september 2010. Läs tidigare inlägg.
ID: #20183 | Skapades: 2010-09-27 14:54:03

poneks01
poneks01

Gradering

#20184

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'Recset'

Vi pratar alltså om ett fält i en databas, så det inte blir något missförstånd

ID: #20184 | Skapades: 2010-09-27 16:07:45

voigtan
voigtan

Gradering

#20185

Vad heter ditt Recordset? Ge mer kod, jag tog det för givet att du har skapat ett recordset/namn på fältet i databasen?

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 27 september 2010. Läs tidigare inlägg.
ID: #20185 | Skapades: 2010-09-27 16:09:20

poneks01
poneks01

Gradering

#20186

<%

 

Dim conn

 

id = Request.QueryString("msgID")

set conn = Server.CreateObject("ADODB.connection")

sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 

"Data Source=" & Server.MapPath("\kundplatsen\db\betaboard.mdb") & ";" & _ 

"Persist Security Info=False" 

conn.Open(sConnection) 

 

 

 

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

rsget.Open "SELECT * FROM board WHERE ThreadID="&id&" AND Lock=0", conn

 

 

 

error = request.querystring("error")

select case cstr(error)

case "1"

Response.Write "<p align=center><font face=arial color=silver size=2><b>You have not fill out Topic, Name or Body.  Server cannot process unless these field(s) are fill.</b></font>"

case "2"

Response.Write "<p align=center><font face=arial color=silver size=2><b>Sorry, Scripting is not allow on this MessageBoard.  Please fix your Message.</b></font>"

case "3"

Response.Write "<p align=center><font face=arial color=silver size=2><b>Sorry, you have enter an invalid e-mail address.  Please fix your e-mail address.</b></font>"

case "4"

Response.Write "<p align=center><font face=arial color=silver size=2><b>Sorry, you have enter an invalid URL. Please fix your URL.</b></font>"

case Else

Response.Write ""

end select

 

 

 

%>

<%

If Recset("Lock")="2" Then

    Response.Redirect("Hej.html")

Else

    Response.Write("Inget händer, fältet innehöll:" & Recset("Lock"))

End If

%>

 


ID: #20186 | Skapades: 2010-09-27 16:43:39

voigtan
voigtan

Gradering

#20187

jag gissar på att du bara byter ut Recset till rsget, fast den kommer aldrig att kunna vara 2, och ja det skall vara 2 och inte "2" då det inte är en sträng du gemför med utan ett tal. sen bör du även kontrollera att Recordsetet inte är EOF, men if frågan och redirectern är helt onödig då din SQL fråga säger att hämta ut alla lock som har värdet 0

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #20187 | Skapades: 2010-09-27 17:47:08

poneks01
poneks01

Gradering

#20188

Tack för all hjälp!

Tyvärr fungerar det inte fortfarande.

Jag får error '80020009' .

 

Buhu :(

ID: #20188 | Skapades: 2010-09-27 22:18:54

voigtan
voigtan

Gradering

#20189

http://classicasp.aspfaq.com/genera...009-errors.html

Och jag gissar på följande fel:

Citat:
ADODB.Field error '80020009'  
Either BOF or EOF is True, or the current record has been deleted; the  
operation requested by the application requires a current record. 
 
or 
 
No current record.
Kontrollera att du verkligen ha ett Recordset innnan du försöker använda det.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #20189 | Skapades: 2010-09-28 06:35:27

poneks01
poneks01

Gradering

#20190

Finns det något exempel på hur man "sätter" ett Recordset? 

Jag har ju med i koden: Set rsget = Server.CreateObject("ADODB.Recordset")


rsget.Open "SELECT * FROM board WHERE ThreadID="&id&" AND Lock=0", conn

ID: #20190 | Skapades: 2010-09-28 12:50:37

voigtan
voigtan

Gradering

#20191

Det verkar som du inte förstå vad jag är ute efter, vill gärna inte ge koden rakt upp och ner då lär du dig aldrig.

Du sätter ju ditt Recordset på det sätt du beskriver, men du MÅSTE kontrollera innan du försöker hämta data ifrån det att det faktist finns data att hämta.

Men hela din kod med Recordsetet är helt onödigt då Lock alltid kommer vara 0 så Lock kan inte vara 2.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #20191 | Skapades: 2010-09-28 13:35:25

poneks01
poneks01

Gradering

#20192

Nej, jag tror inte jag förstår men jag försöker iaf :D

Jag testade sätta 2 st olika recordset, det gick dock inte. Sen testade jag byta ut lock=0 till lock=2. Då fungerade "Redirect" Men inte "Write". Så jag antar att det är som du säger att lock inte kan vara 0. För då kan inte lock vara 2 där nere, sjukt klurigt iaf. 

Vart inne på aspsidan och fråga men det går ju aldrig att regga sig där. 

Tack för alla svar! 

ID: #20192 | Skapades: 2010-09-28 15:57:38

voigtan
voigtan

Gradering

#20193

Nu få du ta ett steg tillbaka, du skall inte ha fler recordset än vad du behöver, varför skall du ha två recordset med samma data?

Om du ändra din SQL fråga till Lock=2 så är det ju självklart att din if fråga fungera:

rsget.Open "SELECT * FROM board WHERE ThreadID="&id&" AND Lock=0", conn
Om du nu skulle få en träff på detta då innebär det att du få ut en rad (eller fler(?) där Lock är 0 och ett threadId är det id du sätter.
Sen har du din if fråga:
If Recset("Lock")="2" Then
eftersom du har sagt att hämta ut poster där id är xx och lock är 0 så kommer denna fråga aldrig att träffas, simple as that.

Vaför din if fråga med lock=2 är med stor sannolikhet är att den hittar en träff i databasen med id xx och lock = 2, men inte id xx och lock = 0.

Ta ett steg tillbaka och berätta gärna vad EXAKT du kommer göra med din kod?

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #20193 | Skapades: 2010-09-28 16:03:37

poneks01
poneks01

Gradering

#20194

Jag byter ut min sqlfråga till "2"

Men när jag gör det så fungerar bara response.redirect och inte else response.write! 

Jag kommer till Hej.html, men när lock=2 får jag error '80020009'

/kundplatsen/repost3.asp, line 87. 

Samma som förut! 

ID: #20194 | Skapades: 2010-09-28 17:32:07

voigtan
voigtan

Gradering

#20195

Ja?

Läs vad jag skriver: Du MÅSTE kontrollera om ditt recordset är EOF eller BOF innan du försöker använda det, om du har gjort ett forum(eller vad det verkar vara som du håller på med) så förstå jag inte vad du inte förstå med EOF på ett recordset, det är en av de fösta saker man lär sig när det gäller Recordset:

If Not RecSet.EOF Then
'Recordsetet innehåller något
End If

Du skriver att det fungera på samma sätt som förut, vad för ändringar har du gjort?

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 28 september 2010. Läs tidigare inlägg.
ID: #20195 | Skapades: 2010-09-28 18:40:51
Sida: 1 2
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy