webForumDet fria alternativet

IF sat i sql-string

6 svar · 217 visningar · startad av Addeladde

AddeladdeMedlem sedan jan. 20013 406 inlägg
#1

Varför kan jag inte göra så här

sqlString = "INSERT INTO sidor " &_
  "( sida_titel, " &_
  "sida_forfattare, " &_
  "sida_publicering, " &_
IF IsDate(datumStart) AND IsDate(datumSlut) THEN
  "sida_datum_start, " &_
  "sida_datum_slut, " &_
END IF
  "sida_indexera, " &_
  "sida_nyckelord, " &_
  "sida_anteckningar, " &_
  "sida_visa ) VALUES ( " &_
  " '" & titel & "', " &_
  " '" & forfattare & "', " &_
  		  publicering & ", " &_
IF IsDate(datumStart) AND IsDate(datumSlut) THEN
  " #" & datumStart & "#, " &_
  " #" & datumSlut & "#, " &_
END IF
 		 indexera & ", " &_
  " '" & nyckelord & "', " &_
  " '" & anteckningar & "', " &_
  		 visaSida  & "  )"

Con.Execute sqlString

Får felmeddelandet:

Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03EA)
Syntaxfel
/cm/admin/sidor/hantera_sida.asp, line 38
IF IsDate(datumStart) AND IsDate(datumSlut) THEN

SPinckneyMedlem sedan juli 2002104 inlägg
#2

SQL stödjer väl inte IF satser?

LarsGMedlem sedan dec. 200012 464 inlägg
#3

En sträng är en sträng.

function iif (condition,value,elsepart)
if condition then iif = value else iif = elsepart
end function

sqlString = "INSERT INTO sidor " &_
  "( sida_titel, " &_
  "sida_forfattare, " &_
  "sida_publicering, " &_
IIF (IsDate(datumStart) AND IsDate(datumSlut), _ 
  "sida_datum_start, " &_
  "sida_datum_slut, " , "" ) &_
  "sida_indexera, " &_
  "sida_nyckelord, " &_
  "sida_anteckningar, " &_
  "sida_visa ) VALUES ( " &_
  " '" & titel & "', " &_
  " '" & forfattare & "', " &_
            publicering & ", " &_
IIF(IsDate(datumStart) AND IsDate(datumSlut), _
  " #" & datumStart & "#, " &_
  " #" & datumSlut & "#, " ,"") & _
          indexera & ", " &_
  " '" & nyckelord & "', " &_
  " '" & anteckningar & "', " &_
           visaSida  & "  )"

Jag vet inte om det blir tydligare, tror nästan att det blir bättre att skriva om den som

sqlString = "INSERT INTO sidor " &_
  "( sida_titel, " &_
  "sida_forfattare, " &_
  "sida_publicering, " 
IF IsDate(datumStart) AND IsDate(datumSlut) THEN
  sqlstring = sqlstring & "sida_datum_start, " &_
  "sida_datum_slut, " 
END IF
sqlstring = sqlstring & "...

Ot: Det finns if-satser i SQL.

UlfTMedlem sedan maj 20018 027 inlägg
#4

Varför kan jag inte göra så här

Därför att det inte är korrekt VB-kod. Gör istället så att du bygger upp din sträng i flera steg:

sqlString = "INSERT INTO sidor " &_

  "( sida_titel, " &_

  "sida_forfattare, " &_

  "sida_publicering, "

IF IsDate(datumStart) AND IsDate(datumSlut) THEN

  sqlString = sqlString & "sida_datum_start, " &_

  "sida_datum_slut, "

END IF
.
.
.
etc.
AddeladdeMedlem sedan jan. 20013 406 inlägg
#5

Den här kodbiten tror jag att jag har fått klar:

  "sida_publicering, " 
IF IsDate(datumStart) AND IsDate(datumSlut) THEN
sqlString = sqlString&"INSERT INTO sidor " &_  
  "sida_datum_start, " &_
  "sida_datum_slut,"
END IF
sqlString = sqlString&"INSERT INTO sidor " &_

Men hur gör jag med den här koden:

VALUES ( " &_
  " '" & titel & "', " &_
  " '" & forfattare & "', " &_
            publicering & ", " &_
IF IsDate(datumStart) AND IsDate(datumSlut) THEN
  " #" & datumStart & "#, " &_
  " #" & datumSlut & "#, " &_
END IF
          indexera & ", " &_
  " '" & nyckelord & "', " &_
  " '" & anteckningar & "', " &_
           visaSida  & "  )"
LarsGMedlem sedan dec. 200012 464 inlägg
#6
sqlString = "INSERT INTO sidor " &_
  "( sida_titel, " &_
  "sida_forfattare, " &_
  "sida_publicering, "
IF IsDate(datumStart) AND IsDate(datumSlut) THEN
sqlstring = sqlstring &  "sida_datum_start, " &_
  "sida_datum_slut, " 
END IF
sqlstring = sqlstring &  "sida_indexera, " &_
  "sida_nyckelord, " &_
  "sida_anteckningar, " &_
  "sida_visa ) VALUES ( " &_
  " '" & titel & "', " &_
  " '" & forfattare & "', " &_
            publicering & ", " 
IF IsDate(datumStart) AND IsDate(datumSlut) THEN
sqlstring = sqlstring &  " #" & datumStart & "#, " &_
  " #" & datumSlut & "#, " 
END IF
sqlstring = sqlstring &   indexera & ", " &_
  " '" & nyckelord & "', " &_
  " '" & anteckningar & "', " &_
           visaSida  & "  )"

Con.Execute sqlString
AddeladdeMedlem sedan jan. 20013 406 inlägg
#7

Tackar

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