Avatar billede python Nybegynder
22. august 2001 - 17:23 Der er 12 kommentarer og
1 løsning

Function der adder form til database

Den skriver ingen error beskeder .. rimelig frustrerende det ikke virker.. nogen der kan se noget galt ?

---------------------------------------

<%
If Request.Form\"Add\" = \"Add Character\" Then

Const adOpenKeyset = 1
Const adLockOptimistic = 3

tempConn = \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"database/strip.mdb\") & \";UID=admin;PWD=unga;\"
strSQL = \"SELECT * FROM Users WHERE ( UserID = 0 )\"
Set rs = Server.CreateObject(\"ADODB.RecordSet\")
rs.Open strSQL, tempConn, adOpenKeyset, adLockOptimistic

Sub ReadFormVariables()
      rs.Addnew
    For Each Field In Request.Form
      rs(field) = field
    Next
      rs.Update
End Sub
Call ReadFormVariables

rs.Close
Set rs = Nothing
End If
%>

<html>

<head>
<title></title>
<LINK rel=\"stylesheet\" href=\"style.css\" type=\"text/css\">
</head>

<form method=\"POST\" action=\"addchar.asp\">
en masse inputs her
<input type=\"submit\" value=\"Add Character\" name=\"Add\">

</body>
</html>

Avatar billede python Nybegynder
22. august 2001 - 17:24 #1
har prøvet med og uden Call ..
Avatar billede kristianf Nybegynder
22. august 2001 - 17:37 #2
håper det ikke gjør noe at jeg snakker norsk. jeg annbefaler å bruke SQL query for å legge til i databases. du bør ikke bruke sub i det hele tatt, siden dette ikke er noe du vil gjenta ofte. for SQL kommandoer, besøk: http://www.w3schools.com/sql/default.asp
Avatar billede thomas_regin Nybegynder
22. august 2001 - 17:44 #3
Prøv med IF Request.Form(\"Add\") = \"Add Character\" istedet for Request.Form\"Add\"

Mvh.

Thomas Regin.
Avatar billede kristianf Nybegynder
22. august 2001 - 17:59 #4
Det skulle gi en feilmelding :)
Avatar billede mads_jac Nybegynder
23. august 2001 - 10:01 #5
Prøv med:

---------------------
Sub ReadFormVariables()
    For Each Field In Request.Form
      rs.Addnew
      rs(field) = field
      rs.Update
    Next
End Sub
Call ReadFormVariables

-------------------

Sådan ville jeg gøre det.

Mads
Avatar billede python Nybegynder
23. august 2001 - 12:45 #6
hvis jeg gør det Mads opdaterer den Databasen hver gang den får en ny form field ind.. not smart...

Nu får jeg en error besked:
Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/members/addchar.asp, line 15

---

Med denne kode:

<%
If Request.Form(\"Add\") = \"Add Character\" Then

Const adOpenKeyset = 1
Const adLockOptimistic = 3

tempConn = \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"database/strip.mdb\") & \";UID=admin;PWD=unga;\"
strSQL = \"SELECT * FROM Users WHERE ( UserID = 0 )\"
Set rs = Server.CreateObject(\"ADODB.RecordSet\")
rs.Open strSQL, tempConn, adOpenKeyset, adLockOptimistic
rs.Addnew
Sub ReadFormVariables()
    For Each Field In Request.Form
      rs(Field) = Field
    Next
End Sub
Call ReadFormVariables
rs.Update
rs.Close
Set rs = Nothing
Set tempConn = Nothing
End If
%>


Avatar billede python Nybegynder
23. august 2001 - 12:46 #7
ka det være Field den ikke fatter?
Avatar billede mads_jac Nybegynder
23. august 2001 - 13:36 #8
Hmm, det er selvfølgelig klart. Nu er jeg med - jeg pudser lige mine briller...

Du skal selvfølgelig bruge den kode du startede med at skrive med en lille variation:

-------------------
Sub ReadFormVariables()
    rs.Addnew
    For Each Field In Request.Form
      rs(field) = Request.Form(field)
    Next
    rs.Update
End Sub
Call ReadFormVariables
----------------

I din løkke bliver Field navnet på det form-element den kigger på lige nu. Dvs. at dine form-elementer skal hedde PRÆCIST det samme som felterne i databasen, ellers går der kludder.

Endvidere har jeg tilføjet request.form(field) jvf. ovenstående forklaring.

Mads
Avatar billede python Nybegynder
23. august 2001 - 13:48 #9
Yep Mads det fandt jeg også ud af jeg skulle, men det virker stadig ikke den kommer med samme error .. Og jeg har checket databasen igennem 2 gange nu for at se om jeg har skrevet noget forkert..
Avatar billede mads_jac Nybegynder
23. august 2001 - 13:55 #10
Men har du også husket at ændre linien til:

rs(field) = Request.Form(field)?

Ellers må du jo prøve at skrive alle felterne i stedet - i første omgang bare for at debugge:

Sub ReadFormVariables()
    rs.Addnew
    rs(\"navn\") = Request.Form(\"navn\")
    rs(\"adresse\") = Request.Form(\"adresse\")
    rs(\"tlf\") = Request.Form(\"tlf\")
    rs.Update
End Sub
Call ReadFormVariables

Mads
Avatar billede python Nybegynder
23. august 2001 - 13:59 #11
havde jeg skrevet ja ..
Ohh well må vel til at skrive de 100 fields ind :(
Avatar billede mads_jac Nybegynder
23. august 2001 - 14:04 #12
Ellers udskriv field hver gang. Så kan du måske se hvor det går galt. Det kan næsten kun være en slåfejl i et af formelementernes navn.

Mads
Avatar billede python Nybegynder
22. september 2001 - 05:17 #13
ohh well..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester