webForumDet fria alternativet

Ogiltiga tecken vad jag än gör.

ASP

28 svar · 1 957 visningar · startad av Akerlundh

Medlem sedan maj 20031 682 inlägg
Frågan#1

Hejsan jag försöker fixa en INSERT INTO kod snutt.
Men vad jag än gör så får jag felmeddelandet ogiltiga tecken.

Den koden använder jag mig utav nu men funkar inte endå och har testat vända och vrida på det hur mycket som helst.

strTitle = request.form("titel")
strTime = Date()
strNews = request.form("news")
strAktiv = request.form("aktiv")

SQL=”Insert Into news(title,time,news,aktiv) Values(‘” & strTitle & “’,’” & strTime & “’,'" & strNews & "','" & strAktiv & "')”
Medlem sedan okt. 20041 556 inlägg
#2
SQL="Insert Into news(title,time,news,aktiv) Values('" & strTitle & "','" & strTime & "','" & strNews & "','" & strAktiv & "')"

TIPS: Använd parametrar i stället.

Medlem sedan okt. 20041 556 inlägg
#3

BTW: strTime...ehhh tid du lagrar som en sträng?
Använder du access så kan det ibland behövas #runt datumet/tiden# om du använder datum/tidsformat på kolumen.

Medlem sedan juli 20003 825 inlägg
#4

#1

Du har konstiga dubbelfjumpar i koden för VALUES. Inga sånna designade kursiva dubbelfjumpar, utan vanliga, raka typ denna... " ska du använda. (Det ser inte ut så på din kod ovan.)

Du skriver:
SQL=”Insert Into news(title,time,news,aktiv) Values(‘” & strTitle & “’,’” & strTime & “’,'" & strNews & "','" & strAktiv & "')”

Byt till raka dubbelfjumpar:
SQL="Insert Into news(title,time,news,aktiv) Values('" & strTitle & "','" & strTime & "','" & strNews & "','" & strAktiv & "')"

Hoppla!! Du har även designade, andra, kursiva enkelfjumpar ser jag nu!! Se till att ha raka enkelfjumpar!!

Medlem sedan maj 20031 682 inlägg
#5

Nu ska vi se massvis med tecken som inte stämde här.

Men dom tecknen jag använt är dom som finns på knapp 2 och på den knappen med stjärnan på tangentbordet.
Vilka tecken är det man ska använda?

Medlem sedan juli 20003 825 inlägg
#6

' = enkelfjump, = bara stjärnan utan annan tangent.
" = dubbelfjump = 2 + shift.

Kanske är det ett annat tangetbord du har? Vad skriver du i för program!? Kanske du kan välja typsnitt i programmet...!? Kanske har du annan tangentbordslayout!?

Vissa av dina tecken är korrekta i första posten.

Medlem sedan maj 20031 682 inlägg
#7

Ska man skriva så här då där det är tal

SQL="Insert Into news(title,time,news,aktiv) Values('" & strTitle & "',#" & strTime & "#,'" & strNews & "',#" & strAktiv & "#)"
Medlem sedan juni 20006 022 inlägg
#8

Nej, runt tal är det bara " och runt datum/tid är det #

SQL="Insert Into news(title,time,news,aktiv) Values('" & strTitle & "',#" & strTime & "#,'" & strNews & "'," & strAktiv & ")"

om nu strAktiv är ett tal.

Medlem sedan maj 20031 682 inlägg
#9

Japp strAktiv är ett tal.

Men får fel nu.

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i INSERT INTO-uttryck.

Medlem sedan juni 20006 022 inlägg
#10

är fältet aktiv i databasen också ett tal? och är time satt till datum/tid i databasen?

time är också ett reserverat ord för sql, så det måste du byta till något annat.

http://www.pacosdrivers.com/asp/reserved/

Medlem sedan maj 20031 682 inlägg
#11

Så ny har jag bytt namn på time.

time (som den hette innan) är satt som datum/tid
aktiv är satt som tal.

Får fortfarande samma fel.

Medlem sedan juni 20006 022 inlägg
#12

skriv ut SQL och kolla hur den ser ut med datan i sig.

Medlem sedan maj 20031 682 inlägg
#13

Quid skrev:

skriv ut SQL och kolla hur den ser ut med datan i sig.

Hur menar du nu?

Medlem sedan juni 20006 022 inlägg
#14

Response.Write(SQL)

Medlem sedan juli 20003 825 inlägg
#15

Du kan använda reserverade ord om du skriver [time], inom klamrar.

strText = str = string = sträng, dvs text...

dteTime
intAktiv

****
Ang. tecken: Du har enkelfjumpar på text, brädgårdar på datum/tid och inget på siffror/tecken och sant/falskt.

Medlem sedan dec. 19996 721 inlägg
#16

Akerlundh skrev:

Hur menar du nu?

Response.Write SQL

Om strAktiv är ett tal så borde den inte heta strAktiv

SQL="Insert Into news(title,[time],news,aktiv) Values('" & Replace(strTitle,"'","''") & "',Date(),'" & Replace(strNews,"'","''") & "'," & clng(strAktiv) & ")"
Medlem sedan maj 20031 682 inlägg
#17

Men var ska jag skriva det?

För det stället jag använde mig utav SQL på är ju på den sidan som inte funkar för jag får felmeddelande helatiden.

Medlem sedan juli 20003 825 inlägg
#18

På raden under. I direkt anslutning.

SQL="Insert Into news(title,[time],news,aktiv) Values('" & Replace(strTitle,"'","''") & "',Date(),'" & Replace(strNews,"'","''") & "'," & clng(strAktiv) & ")"
Response.Write SQL

Red:
Du får inte ha koden "on error resume next" på denna sidan. Det betyder på svenska, blir det fel, visa inte det i så fall... Det är svårt att felsöka då! :-)

Felet blir troligen längre ner på sidan.
Det ska finnas ett radnummer med också. Eller också blir det inte det om det är fel i själva uttrycket... Jag blir osäker, jag kommer inte ihåg!

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i INSERT INTO-uttryck.
Medlem sedan maj 20031 682 inlägg
#19

så nu funkar det med koden som emission skrev.
Men lite frågor nu då.

Varför skriver man

Replace & clng

Tack för hjälpen allesammans!

/red

Eclipse skrev:

Du får inte ha koden "on error resume next" på denna sidan. Det betyder på svenska, blir det fel, visa inte det i så fall... Det är svårt att felsöka då! :-)

Hur menar du ? :q

Medlem sedan dec. 19996 721 inlägg
#20

Akerlundh skrev:

så nu funkar det med koden som emission skrev.
Men lite frågor nu då.

Varför skriver man

Replace & clng

Tack för hjälpen allesammans!

Replace och Clng använder man för att undvika SQL Injection

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)