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
SQL stödjer väl inte IF satser?
LarsGMedlem sedan dec. 200012 464 inlägg 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
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.
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 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