Dan Petersen wrote in dk.edb.internet.webdesign.serverside.asp:
> > > Jeg vil have at man skriver et eller andet i en forular, og så
> > > sender man det til databasen (mit "forsøg" ligger på
> > >
http://p-aalb.dk/test )
> >
> > ... som er beskyttet af kodeord...?!?
>
> Nej... det man skriver i formularen er det den sender til databasen...
Nå, sorry, dan fangede jeg ikke lige :)
> Og jeg vil så have sendt dette til databasen:
>
> "Insert into test (navn, pass) values('" & Request.Form("navn") & "','"
> & Request.Form("pass") & "')"
>
> [QUERY] er, så vidt jeg kan regne ud der man skal skrive sql-strengen
> (eller "forespørgslen")
>
> Sådan her ser det ud nu:
>
> <%
> Dim objConn
> Dim objRS
> Set objRS = Server.CreateObject("ADODB.Recordset")
> Set objConn = Server.CreateObject("ADODB.Connection")
>
>
objConn.ConnectionString="DRIVER={MySQL};SERVER=localhost;DATABASE=xxx;UID
=xxx;PWD=xxx;"
> objConn.Open
> %>
>
> <%objRS.Open "Insert into test (navn, pass) values('" &
> Request.Form("navn") & "','" & Request.Form("pass") & "')", objConn,
> 3,3 %>
Her beder du om at få recordsettet, der er svaret på ovenstående INSERT
INTO.
Så databasen udfører sql-strengen, så der kommer noget ind i databasen.
Det er fint nok, men resultatet af en INSERT INTO er ikke nogle poster
(som fx i en SELECT), men pga konstruktionen /skal/ databasen returnere et
recordset. For at leve op til det, så returnerer databasen bare et
recordset, som dels er tomt, og som heller ikke indeholder en forbindelse
til databasen.
Ovenstående er der så vidt jeg kan se ikke noget i vejen med.
> <%
> objRS.Close
Her beder du om at lukke den forbindelse recordsettet har til databasen,
men som beskrevet ovenfor, så er der slet ikke nogen forbindelse at lukke.
Det er her det går galt, ovenstående linie skal kun medtages når man har
åbnet en forbindelse fra recordsettet til databasen (ved en SELECT).
> Set objRS = Nothing
Denne linie skal man dog altid medtage (selv om den ikke betyder noget for
funktionaliteten i scriptet)
> objConn.Close
> Set objConn = Nothing
> %>
>
> Det fungerer - altså den sender til databasen, men den kommer stadig
> med en fejlmeddelelse når man trykker "send forespørgsel"...
>
> Error Type:
> ADODB.Recordset.1 (0x800A0E78)
> Invalid operation on closed object
> /test/submit.asp, line 23
mvh Torben
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials