webForumDet fria alternativet

Siffrorna vill inte följa med in i databasen

ASP

11 svar · 305 visningar · startad av leniz

Medlem sedan aug. 2001676 inlägg
Frågan#1

Hej!

Någon som kan förklara varför siffrorna inte kommer med i sql satsen när de finns där när jag testar skriva ut dem med response.write?

Kod:
if Request.Form("hundhemsida")<> "" then
agare=request.form("anamn")
agarepost=Request.Form("aepost")
kennelnamn=Request.Form("kennelnamn")
kennelhem=Request.Form("kennelhemsida")
hundnamn=Request.Form("hundnamn")
hundkomm=Request.Form("hundkomm")
hundadress=Request.Form("hundadress")
hemsidenamn=Request.Form("hundhemsida")
hemsidekomm=Request.Form("hemkomm")
aktivera=Request.Form("aktivera")

			sql2 = "INSERT INTO Agare(Agarnamn, Agarepost)" & \_
			" VALUES ('" & \_
			agare & "','" & \_
			agarepost & "')"
	
			set rs2=ss.Execute(sql2)
			
			sql3="select top 1 \* from Agare order by AgarID desc"
			set rs3=ss.Execute(sql3)
			
			agarid=Response.Write(rs3("AgarID"))
			Response.Write(agarid)
			
			sql4="insert into Kennlar(Kennelhemsida, Kennelnamn)" & \_
			" Values ('" & \_
			kennelhem & "','" & \_
			kennelnamn & "')"
			
			set rs4=ss.execute(sql4)
			
			sql5="select top 1 \* from Kennlar order by KennelID desc"
			set rs5=ss.Execute(sql5)
			
			kennelid=Response.Write(rs5("KennelID"))
			'Response.Write(kennelid)
			
			sql6="insert into Hundar(Hundnamn, KennelID, Hundkommentarer, AgarID, Aktivera)" & \_
			" Values ('" & \_
			hundnamn & "'," & \_
			kennelid & ",'" & \_
			hundkomm & "'," & \_
			agarid & ",'" & \_
		    aktivera & "')"
			Response.Write(sql6)
			set rs6=ss.execute(sql6)
			
				sql7="select top 1 \* from Hundar order by HundID desc"
			set rs7=ss.Execute(sql7)
			
			hundid=Response.Write(rs7("HundID"))
			Response.Write(hundid)
			
			sql8="insert into Hemsidor(HundID, Adress, Hemsidenamn, Kommentarer)" & \_
			" Values (" & \_
			hundid & ",'" & \_
			hundadress & "','" & \_
			hemsidenamn & "','" & \_
		    hemsidekomm & "')"
			
			set rs8=ss.execute(sql8)
			
			Response.Write("Tack, Din hund är nu inlagd!")
			end if

Utskriften jag får ser ut så här:
66insert into Hundar(Hundnamn, KennelID, Hundkommentarer, AgarID, Aktivera) Values ('werwer',,'',,'false')

Koden verkar kanske lite korkad men jag vet inte hur jag ska göra på nåt annat sätt för att få ut idnumrerna som är räknare och ligger i olika tabeller i databasen. Vill ha formuläret på samma sida med en sparaknapp för att det inte ska bli så krångligt...

Mvh Lena

Medlem sedan aug. 2001676 inlägg
#2

Det är alltså på sql6 som det blir problem..

Medlem sedan nov. 20017 144 inlägg
#3

En gissning:
Prova med "Cint"

kennelid=cint(rs5("KennelID"))

Prova att skriva ut hela inserten
Response.write sql6

Medlem sedan dec. 200012 464 inlägg
#4

agarid får aldrig något värde.

Om du vill ha reda på det räknarvärdet för den post du har gjort insert på så skall man använda

sql2 = "INSERT INTO Agare(Agarnamn, Agarepost)" & _ 
" VALUES ('" & _ 
agare & "','" & _ 
agarepost & "')" 

ss.Execute sql2,,128  

sql3="select @@identity" 
set rs3=ss.Execute(sql3) 
[b]agarid = rs3(0) [/b]
Medlem sedan aug. 2001676 inlägg
#5

Hej!
Ja nu skrevs siffrorna in men istället får jag felmeddelandet:
Data type mismatch in criteria expression.
Datatyperna är:
Hundnamn - text
KennelID - tal
Hundkommentarer - pm
AgarID - tal
Aktivera - sant/falskt

Kan det vara den där aktivera rutan som ställer till det? Har en Access databas (på svenska).

Medlem sedan aug. 2001676 inlägg
#6

LarsG - varför skulle inte agarid få något värde? den skriver ju t.o.m. ut värdet med response.write (se koden)
=)

Medlem sedan juni 200032 967 inlägg
#7

varför skulle inte agarid få något värde? den skriver ju t.o.m. ut värdet med response.write
Nej, det gör den inte.

insert into Hundar(Hundnamn, KennelID, Hundkommentarer, AgarID, Aktivera) Values ('werwer',,''[b],,[/b]'false')

Värden till True/false-fält skall inte omslutas med apostrofer i övrigt.

Medlem sedan aug. 2001676 inlägg
#8

Jo den gör det nu efter att jag gjorde som Jesper sa och skrev cint()
Så här ser utskriften ut nu:
Hundar(Hundnamn, KennelID, Hundkommentarer, AgarID, Aktivera) Values ('werwer',10,'',10,'false')

Medlem sedan dec. 200012 464 inlägg
#9

Det var din tilldelning med

agarid=response.write

som jag reagerade emot.

Om du gör så här istället

aktivera=len(Request.Form("aktivera") )
sql6="insert into Hundar(Hundnamn, KennelID, Hundkommentarer, AgarID, Aktivera)" & _ 
" Values ('" & _ 
hundnamn & "'," & _ 
kennelid & ",'" & _ 
hundkomm & "'," & _ 
agarid & "," & _ 
aktivera & ")"
Medlem sedan nov. 20017 144 inlägg
#10

Vad finns då i aktivera?
Ett tal?

Medlem sedan aug. 2001676 inlägg
#11

Ledsen om jag kanske var otydlig i min kod men vad jag menade var att jag hade tre st response.write i min kod. Först de två siffrorna till agarid och kennelid och sen sql6 satsen.
Jag gjorde som du skrev Anders och tog bort apostroferna och nu fungerar det toppen =)
Tack alla!

Medlem sedan aug. 2001676 inlägg
#12

I aktivera fanns värdet false, men nu fungerar det som sagt var =)

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)