webForumDet fria alternativet

UPDATE-problem

ASP

10 svar · 308 visningar · startad av Bendro

Medlem sedan jan. 20013 039 inlägg
Frågan#1

Felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers error '80040e10' 

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 3. 

/slutprojekt/admin/varareg_doit.asp, line 31

Och så är ser koden ut:

<%
	option explicit
	response.buffer=TRUE
	Dim conn, rs, sql, sql2, vnamn, besk, enh, pris, artnr, bildurl, lager, bokat, bestpunkt, varuId

If not Session("inloggad")="Ja" Then
	response.redirect("login.asp")
End If
%>
<!--#INCLUDE FILE="dbkoppling.inc"-->
<%
	vnamn=request.form("vNamn")
	besk=request.form("besk")
	enh=request.form("enh")
	pris=request.form("pris")
	artnr=request.form("artnr")
	bildurl=request.form("bildurl")
	lager=request.form("lager")
	bokat=request.form("bokat")
	bestpunkt=request.form("bestpunkt")
	varuId=request.querystring("varuId")

IF NOT varuId ="" THEN
	sql="UPDATE vara SET varuNamn='"&vnamn&"', varuBesk='"&besk&"', enhetstyp='"&enh&"', varuPris='"&pris&"', artnr='"&artnr&"', varuBildUrl='"&bildurl&"' WHERE varuId="&varuId&";"
	conn.execute(sql)

	[b]sql="UPDATE varalager SET lager="&lager&", bokat="&bokat&", bestpunkt="&bestpunkt&" WHERE varuId="&varuId&";"
[/b]	conn.execute(sql)

ELSE
	
	sql="INSERT INTO vara(varuNamn, varuBesk, enhetstyp, varuPris, artnr, varuBildUrl, kundPnr) VALUES('"&vnamn&"', "&besk&"', '"&enh&"', '"&pris&"', '"&artnr&"', '"&bildurl&"');"	
	conn.Execute(sql)

	sql2="SELECT TOP 1 kundId FROM kund	order by kundId desc;"
	Set rs=conn.Execute(sql2)
	varuId=rs("varuId")

	sql="INSERT INTO varaLager(varuId,lager,bokat,bestPunkt) VALUES('"&varuId&"','"&lager&"','"&bokat&"','"&bestpunkt&"');"
	conn.execute(sql)
END IF

	response.redirect("adm_vara.asp?varuId="&varuId)

conn.Close
Set conn=NOTHING
%>

Värderna lager, bokat och bestpunkt följer med i requesten...det har jag kollat. Fälten i databasen är nummeriska..men när jag provade med en Cint fick jag felet Type mismatch 'Cint

Rad 31 är den i fetstil

Oerhört tacksam för den hjälp jag kan få...som ni ser är det ett slutprojekt och därmed har jag ganska lite tid på mig innan allt skall vara klart. Retar mig att fastna på något som troligtvis är ett struntfel.

------------------
"You can not solve todays problems with the same level of thinking that created the problems in the first place" Albert Einstein

Medlem sedan dec. 200012 464 inlägg
#2

Nej jag kan inte se något direkt frånsett att det avslutande ; är onödigt.
Testa att skriva ut sql-satsen med en response.write
Då kan det vara enklare att se om något värde saknas eller om det saknas ett mellanslag någonstans.

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

Medlem sedan feb. 20005 891 inlägg
#3

Hm, vet inte om det här kan hjälpa, men ska det inte vara enkelfnuttar i UPDATE-satsen?

------------------
jo, jag är nog dummare än jag ser ut

Medlem sedan jan. 20013 039 inlägg
#4

Testa att skriva ut sql-satsen med en response.write
Då kan det vara enklare att se om något värde saknas eller om det saknas ett mellanslag någonstans.

Borde jag tänkt på själv..tack :D
Får kolla det imorgon eftersom jag sitter hemma nu och min PWS inte tycker om livet längre. Återkommer om jag inte hittar felet. :e

------------------
"You can not solve todays problems with the same level of thinking that created the problems in the first place" Albert Einstein

Medlem sedan jan. 20013 039 inlägg
#5

Ok..har kört en response.write på sql-strängen

UPDATE varalager SET lager= 10, bokat=5, bestpunkt= 3 WHERE varuId=1;

Ser väl ok ut....eller?
Hjäääälp..... :x

------------------
"You can not solve todays problems with the same level of thinking that created the problems in the first place" Albert Einstein

Medlem sedan dec. 19998 577 inlägg
#6

och fälten i databasen är korrekta? se till så att dom inte är reserverade ord (inte för att det ser ut som om dom är det...) ;)

Mvh, Vide

------------------
Nu har du sjungit på sista refrängen
Jourhavande Vide

Medlem sedan jan. 20013 039 inlägg
#7

Inte ens Vide visste...då är det kris ;)

Databasfälten skall vara korrekta, och såvitt jag vet är det inte reserverade ord jag använder mig av.
Saken är den att jag hämtat upp info ifrån databasen strax innan...det jag nu försöker göra är att uppdatera den efter de ändringar som användaren kan göra.

------------------
"You can not solve todays problems with the same level of thinking that created the problems in the first place" Albert Einstein

Medlem sedan juli 20003 825 inlägg
#8

när du skriver

pris= request("pris")

och sen <%=pris%>

då ärt pris en char, inte som man vill en int.

du måste konvertera alla dina siffor till intiger, i koden ovan är de strängar. Man vill inte att det ska vara så men så är det.

finns det inte ett komando som heter toInt("pris")??

kolla det.

------------------
Never underestimate your opponents.

Medlem sedan juli 20003 825 inlägg
#9

fungerar detta?:

pris = request("pris")
pris = int("pris")

------------------
Never underestimate your opponents.

Medlem sedan jan. 20013 039 inlägg
#10
Microsoft VBScript runtime error '800a000d' 

Type mismatch: '[string: "pris"]' 

/slutprojekt/admin/varareg_doit.asp, line 24

Pris är Currency i databasen så förstår jag att den bör konverteras.
Men hittils har jag inte fått felmeddelanden på den Update-satsen utan den andra där lager, bokat och bestpunkt ligger.

SQL-satsen den nu klagar på ser nu ut så här, tog bort ' runt pris eftersom jag konverterat såsom du sa.

	sql4="UPDATE vara SET varuNamn='"&vnamn&"', varuBesk='"&besk&"', enhetstyp='"&enh&"', varuPris="&pris&", artnr='"&artnr&"', varuBildUrl='"&bildurl&"' WHERE varuId="&varuId&";"
	conn.execute(sql4)

------------------
"You can not solve todays problems with the same level of thinking that created the problems in the first place" Albert Einstein

Medlem sedan jan. 20013 039 inlägg
#11

Problemet löst!
Det var så löjligt att jag skäms :r

Jag hade råkat få med ett mellanslag i Value på formuläret..och därmed kunde jag givetvis inte lägga ner datan som siffervärde i databasen.

Tack för all hjälp och goda råd.

------------------
"You can not solve todays problems with the same level of thinking that created the problems in the first place" Albert Einstein

[Redigerat av Bendro den 12 feb 2001]

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)