Om du vill kontrollera om något är null så
If isNull(DB_QUERY_CHECK("col_Visible")) Then
------------------
essentitia preter non sans multiplicandum
3 svar · 226 visningar · startad av tlee
Tjena..
problem med ett villkor som inte uppfylls trots att det skall göra det :)
Den första delen av koden är inte så intressant utan det är när vi börjar
komma in på följande rad det blir intressant:
If ( strVisible > "" ) Then
Lite kort vad jag försöker ådstakomma.
Jag loopar igenom en produkttabell, jag kollar ifall produkten är markerad
som aktiv, jag har 2 räknare som räknar dels antalet produkter och den
andra räknar bara ifall produkten är markerad som "icke aktiv" dvs ifall col_Visible = "".
Sen gör jag en jämförelse mellan de båda räknarna, har dom då samma värde
så uppdateras alla produkter med samma värden, produkterna ärver priser från produktgruppens inställningar.
Nedan följer koden.
<!--#INCLUDE FILE="inc/dbConn.inc"-->
<%
Dim struser, strGroup, strVisible, strPrice_1, strPrice_2, strPrice_3, strPrice_4, strPrice_5, Connect, DB_QUERY, intCounter_A, intCounter__B
intCounter_A = cInt(0)
intCounter_B = cInt(0)
strUser = Request.Kookies("User")("Name")
strGroup = Trim(Request.QueryString("Group"))
strVisible = Trim(Request.Form("txtActive"))
If ( strVisible = "on" ) Then _
strVisible = "checked"
strPrice_1 = Request.Form("txtPrice1")
If ( strPrice_1 = "" & "" ) Then _
strPrice_1 = 0
strPrice_2 = Request.Form("txtPrice2")
If ( strPrice_2 = "" & "" ) Then _
strPrice_2 = 0
strPrice_3 = Request.Form("txtPrice3")
If ( strPrice_3 = "" & "" ) Then _
strPrice_3 = 0
strPrice_4 = Request.Form("txtPrice4")
If ( strPrice_4 = "" & "" ) Then _
strPrice_4 = 0
strPrice_5 = Request.Form("txtPrice5")
If ( strPrice_5 = "" & "" ) Then _
strPrice_5 = 0
If ( Trim(strUser) > "" & "" ) Then
Set DB_QUERY= Connect.Execute("UPDATE [tbl_"& strUser &"_Groups] SET [col_Visible] = '"& strVisible &"', [col_Price_1] = "& strPrice_1 &", [col_Price_2] = "& strPrice_2 &", [col_Price_3] = "& strPrice_3 &", [col_Price_4] = "& strPrice_4 &", [col_Price_5] = "& strPrice_5 &" WHERE [col_Name] = '"& strGroup &"'")
If ( strVisible > "" ) Then
'-- Kolla igenom produkt tabellen ifall det finns något i denna gruppen som är aktivt.
Set DB_QUERY_CHECK = Connect.Execute("SELECT col_Visible, col_ArticleNr FROM tbl_" & strUser & "_Products WHERE col_Group='"& strGroup &"';")
While Not DB_QUERY_CHECK.EOF
intCounter_A = intCounter_A + 1 '-- Öka första räknaren
strLen = Len(DB_QUERY_CHECK("col_Visible"))
Response.Write(strLen) '-- Här skrivs inte ut något så jag antar att den är NULL
Response.Write("Värdet i Visible cellen: " & DB_QUERY_CHECK("col_Visible") & "<br>") '-- Denna visar NULL
If Trim(DB_QUERY_CHECK("col_Visible")) = "" & "" Then '-- Räknaren ökas inte trots att villkoret uppfylls, den är ju NULL!!!
intCounter_B = intCounter_B + 1
End If
DB_QUERY_CHECK.MoveNext
Wend
'-- Är de båda räknarna lika så updatera alla produkter i denna produktgruppen.
Response.Write("Counter 1: " & intCounter_A & "<br>") '-- Denna skriver ut 7
Response.Write("Counter 2: " & intCounter_B & "<br>") '-- Denna skriver ut 0
If ( intCounter_A = intCounter_B ) Then
Set DB_QUERY_UPDATE = Connect.Execute("UPDATE tbl_" & strUser & "_Products SET col_Price_1="& strPrice_1&", col_Price_2=" & strPrice_2 &", col_Price_3=" & strPrice_3 & ", col_Price_4=" & strPrice_4 &", col_Price_5=" & strPrice_5 & ", col_Visible='checked' WHERE col_Group ='"& strGroup &"';")
End If
End If
'Response.Redirect("list_groups.asp")
Else
Response.Write("Något är fel här du..")
End If
%>
Har vi någon guru som kan se något direkt fel här?
cellen col_Visible är av typ char(7) och skall lagra antingen NULL eller "checked"
chop chop...
/t
[Redigerat av tlee den 27 aug 2001]
Om du vill kontrollera om något är null så
If isNull(DB_QUERY_CHECK("col_Visible")) Then
------------------
essentitia preter non sans multiplicandum
LarsG! du är en klippa!
If IsNull(DB_QUERY_CHECK("col_Visible")) OR Trim(DB_QUERY_CHECK("col_Visible")) = "" Then
intCounter_B = intCounter_B + 1
End If
Nu fungerar det kanon!
/t
------------------
the man with the golden bottle..