webForumDet fria alternativet

ny artikel till db, men skapar tom post

ASP

14 svar · 359 visningar · startad av timedia

Medlem sedan maj 2001420 inlägg
Frågan#1

Ska lägga in en ny artikel via formulär. Självklart krånglar det :(
Den skapar bara en ny tom post.! Varför??

<%	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("mindb.mdb") 

	Set RecSet = Server.CreateObject("ADODB.Recordset")
   Addera = "SELECT * FROM Nyheter WHERE 1=2"

   RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

	RecSet.AddNew

	RecSet("Rubrik") = Request.Form("rubrik")
	RecSet("Brodtext") = Request.Form("brodtext")
	RecSet("Datum") = Request.Form("datum")
	RecSet("Lasmer") = Request.Form("lasmer")

	RecSet.Update
	RecSet.Close
	Connect.Close %>
Medlem sedan juli 20012 450 inlägg
#2

vad är detta? :q
SELECT * FROM Nyheter WHERE 1=2
den lär ju inte finnas...

Medlem sedan maj 2001420 inlägg
#3

För att öppna rätt tabell?
...gör man inte så?

Medlem sedan jan. 2002473 inlägg
#4

nä.... rätta mig om jag har fel men är inte
addera = "SELECT * FROM nyheter;"

Medlem sedan juli 20012 450 inlägg
#5

Jo men vad betyder WHERE 1=2, det kommer ju aldrig finnas.

Medlem sedan dec. 1999707 inlägg
#6

Ja, ett alldeles utmärkt sätt att öppna ett tomt recordset med de fält som tabellen har. Dvs ett "RecordsetFactory". Det är detsamma som:

SELECT TOP 0 * FROM Nyheter

Medlem sedan juni 200032 967 inlägg
#7

Det spelar ingen roll.
Ska man använda ett recordset för att lägga in data går det alldeles utmärkt med ett tomt recordset, så det är rätt sätt.

timedia: har du angett method="post" i <form>-taggen?

Medlem sedan dec. 1999707 inlägg
#8

Vet dessvärre inte varför det blir tomma poster. :o

Medlem sedan jan. 2002473 inlägg
#9

Varför inte bara göra det med en SQL-sats?
Något sådant här, tror det skall funka på något sätt!

<%
Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("mindb.mdb")

addera = "INSERT INTO nyheter (rubrik, brodtext, datum, lasmer) VALUES ('"& Request.Form("rubrik") &"', '"& Request.Form("brodtext") &"', '"& Request.Form("datum") &"', '"& Request.Form("lasmer") &"');"

Connect.Execute addera
%>
Medlem sedan maj 2001420 inlägg
#10

Ja Anders!
<form method="POST" action="redffst2.asp" ENCTYPE="multipart/form-data" >

Medlem sedan dec. 1999707 inlägg
#11

Varför använder du ENCTYPE-attributet? Ska du posta upp en fil med värdena så är det ju iofs rätt men då tror jag inte man kan använda sig av Request.Form(). Rätta mig om jag har fel.

Medlem sedan jan. 2002473 inlägg
#12

Varför ENCTYPE="multipart/form-data" ???
ta bort den!!

Medlem sedan juli 20012 450 inlägg
#13

Då lärde jag mig något idag också :)

Medlem sedan dec. 1999707 inlägg
#14

Roady skrev:

Varför inte bara göra det med en SQL-sats?

Det är ju förstås snabbare men är lite krångligare eftersom man måste parse:a strängarna så de inte innehåller nån sql-kod.

Medlem sedan maj 2001420 inlägg
#15

funkade självklart utan enctype :)
(rester från aspupload)

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