webForumDet fria alternativet

Insert into-problem

6 svar · 251 visningar · startad av Karlsson

KarlssonMedlem sedan maj 2000252 inlägg
#1

Jag antar att den här frågan varit uppe 200 ggr. tidigare, men varför i hela fridens namn funkar inte den här koden?
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=***;Password=***"
%>
<%
SQL = "INSERT INTO nyheter(ID, rubrik, ingress, huvudtext, forfattare) VALUES('" & Request.Form("ID") & "','" & Request.Form("rubrik") &"','" & Request.Form("ingress") & "','"& Request.Form("huvudtext") &"','" & Request.Form("forfattare") &"')"
Conn.Execute(SQL)
Conn.Close
Set Conn = Nothing
%>
Följande felmeddelande får jag:
ADODB.Connection.1 error '80004005'

SQLState: 22005
Native Error Code: -3030
[INTERSOLV][ODBC SequeLink driver][ACCESS][Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/asp_test/news_adda.asp, line 19

Tacksam för svar.

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Någon av dina kolumner är numerisk.
Jag gissar att det är ... id

SQL = "INSERT INTO nyheter(ID, rubrik, ingress, huvudtext, forfattare) VALUES(" & Request.Form("ID") & ",'" & Request.Form("rubrik") &"','" & Request.Form("ingress") & "','"& Request.Form("huvudtext") &"','" & Request.Form("forfattare") &"')"
Conn.Execute SQL

I så fall inga apostrofer.

------------------
essentitia preter non sans multiplicandum

@ndersMedlem sedan juni 200032 969 inlägg
#3

du skall inte ha apostrofer runt värden till numeriska fält, utan endast runt text/pm. datumtyp skall ha # runt värdet.

sökning, min herre, sökning. sökfunktionen hittar du längst upp till höger.

------------------
mördar-anders, det är jag.

KarlssonMedlem sedan maj 2000252 inlägg
#4

Jag böjer mitt huvud, och med skammens rodnad på mina kinder över att jag inte använt sökfunktionen (fast det hade jag!) tackar jag ödmjukast för de snabba svaren...

KarlssonMedlem sedan maj 2000252 inlägg
#5

När jag ändå är igång med att förnedra mig själv kan jag väl lika gärna fortsätta, nu får jag felmeddelande:
ADODB.Connection.1 error '80004005'

SQLState: 37000
Native Error Code: -3502
[INTERSOLV][ODBC SequeLink driver][ACCESS][Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

/asp_test/news_adda.asp, line 14

Men linje 14 ser ju bara ut så här;
Conn.Execute SQL

Vad kan det nu vara som spökar?

@ndersMedlem sedan juni 200032 969 inlägg
#6

om id är ett räknarfält får du inte manuellt sätta in någonting där.

skriv ut sql-frågan med response.write innan execute, och släng upp den här, så får vi kika på den.

mvh,

------------------
mördar-anders, det är jag.

KarlssonMedlem sedan maj 2000252 inlägg
#7

Jag kom på det själv. Nu får jag skämmas en gång till, jag kunde inte uppdatera id:t med request.form eftersom jag inte hade nåt sånt fält!
Dra på trissor!

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