webForumDet fria alternativet

Insert into-problem

ASPur ASP

6 svar · 251 visningar · startad av Karlsson

Medlem sedan maj 2000252 inlägg
Frågan#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.

Medlem 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

Medlem sedan juni 200032 967 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.

Medlem 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...

Medlem 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?

Medlem sedan juni 200032 967 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.

Medlem 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!

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