[ASP] record toevoegen aan access DB mbv forms

Pagina: 1
Acties:

  • bgrr
  • Registratie: Oktober 2001
  • Niet online
Heb een begin gemaakt met het leren van ASP maar kom niet verder.
Na uren speuren in mijn code en codes van anderen kom ik er nog steeds niet uit

Misschien dat iemand me de helpende kant kan bieden ?


Ik probeer via een webpage met forms een record toe te voegen aan een access DB. De connectie met de DB is geen probleem. Het lukt zelfs om een record toe te voegen als ik de record values gewoon in het INSERT INTO sql commando zet. Zie voorbeeld code

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@ LANGUAGE="VBSCRIPT" %>
<HTML><HEAD><TITLE>BEJEWELED TOPSCORES</TITLE></HEAD>
<BODY>

<%
set cnADO = Server.CreateObject("ADODB.Connection")
Dim myDSN
myDSN = "DSN=database"
cnADO.Open myDSN

Dim strSQL
strSQL = "INSERT INTO bejeweled (naam,score) VALUES('bert','9000')"
set rsADO = cnADO.Execute(strSQL)
%>

</FORM></BODY></HTML>


Bovenstaande code werkt en record wordt toegevoegd.


Nu wil ik dus met behulp van een form de record values zeg invullen. Alleen wordt er dan niks in de DB geschreven. Ik krijg geen foutmeldingen of dergelijke. Knop submit wordt gewoon gedaan, maar er verschijnt geen nieuw record.

Het script met forms wat ik bedacht heb is als volgt :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<%@ LANGUAGE="VBSCRIPT" %>
<HTML><HEAD><TITLE>BEJEWELED TOPSCORES</TITLE></HEAD><BODY>

<form action="database_invoeren.asp" method="get">
  Naam   <input type="text" name="fnaam" size="20"><BR>
  score   <input type="text" name=fscore" size ="20"<BR>
<input type="submit" value="Submit">
</form>

<%
dim fnaam
fnaam=Request.QueryString("fnaam")

dim fscore
fscore=Request.QueryString("fscore")

set cnADO = Server.CreateObject("ADODB.Connection")
Dim myDSN
myDSN = "DSN=database"
cnADO.Open myDSN

Dim strSQL
strSQL = "INSERT INTO bejeweled (naam,score) VALUES(fnaam,fscore)"
set rsADO = cnADO.Execute(strSQL)
%>

</FORM></BODY></HTML>


Wat doe ik fout of wat vergeet ik waardoor het tweede stuk script niet werkt ?

[ Voor 14% gewijzigd door bgrr op 28-09-2003 22:43 ]


Verwijderd

Er vanuit gaande dat het onderste deel ook echt in databas_invoeren.asp staat zie ik niks aparts. Print de query eens uit net voor set rsADO ....
(response.write strSQL) en kijk eens wat ie zegt.

Verwijderd

hoe zorg je ervoor dat de code uitgevoerd wordt, waardoor wordt het script getriggerd?
hoe vul je je queryStrings, bedoel je niet request.form?
En past dit topic niet beter in Programming & Webscripting ?

Verwijderd

strSQL = "INSERT INTO bejeweled (naam,score) VALUES(fnaam,fscore)"

moet dit niet zijn:

strSQL = "INSERT INTO bejeweled (naam,score) VALUES('" & fnaam & "','" & fscore & "')"

Verwijderd

gheghe, RH9 heeft gelijk

  • bgrr
  • Registratie: Oktober 2001
  • Niet online
Ik heb de (response.write strSQL) opdracht toegevoegd boven de set rsADO maar er komt geen uitput om me scherm.

Zodra ik op submit druk refresht de page .

De url veranderd wel naar file://server/data/wwwroot/database/database_invoeren.asp?fnaam=barry&fscore%22=10000 op dat moment..

Topic past idd beter in Programming & Webscripting ( mocht er een mod aanwezig zijn, 't mag verplaatst worden ;-) )

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 16:41
Damn zit weer te langzaam te tikken...

[ Voor 168% gewijzigd door sig69 op 28-09-2003 23:03 ]

Roomba E5 te koop


Verwijderd

Verwijderd schreef op 28 September 2003 @ 22:56:
strSQL = "INSERT INTO bejeweled (naam,score) VALUES(fnaam,fscore)"

moet dit niet zijn:

strSQL = "INSERT INTO bejeweled (naam,score) VALUES('" & fnaam & "','" & fscore & "')"
waarschijnlijk wel maar dan zou er ,als die code uitgevoerd wordt, een error ontstaan wat volgens de TS niet het geval is. En als ook dit :
code:
1
 strSQL = "INSERT INTO bejeweled (naam,score) VALUES('bert','9000')"
niet lukt dan denk ik dat die code gewoon niet uitgevoerd wordt. wel dus.

[ Voor 13% gewijzigd door Verwijderd op 28-09-2003 23:09 ]


Verwijderd

Gebruik in je <form> method="POST" en dan ipv request.Querystring request.Form.

Dan moet het werken. :)

Van TS begreep ik dat

strSQL = "INSERT INTO bejeweled (naam,score) VALUES('bert','9000')"

wel werkt of ben ik nu abuis?.

[ Voor 40% gewijzigd door Verwijderd op 28-09-2003 23:06 ]


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 16:41
De TS zegt juist dat
code:
1
strSQL = "INSERT INTO bejeweled (naam,score) VALUES('bert','9000')"

wel werkt

Roomba E5 te koop


  • bgrr
  • Registratie: Oktober 2001
  • Niet online
Ik heb de tip van Redhat 9 en sig69 geprobeerd nu en krijg van volgende melding :

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

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/database/database_invoeren.asp, line 36

Verwijderd

Vermoedelijk is fscore een integer en dan moet je de bij ' rond fscore weglaten.
Dus ('" & fnaam & "'," & fscore & ")".

  • bgrr
  • Registratie: Oktober 2001
  • Niet online
inmiddels ook de method get naar method post veranderd, foutmelding is nu weg , maar record wordt nog niet toegevoegd.

Top dat jullie me willen helpen en zo snel reageren :-)

  • bgrr
  • Registratie: Oktober 2001
  • Niet online
fscore is idd een integer, heb de ' ' weggehaald bij fsore , maar record komt nog niet in db :-(

Verwijderd

Als je na strSQL= ..... zet response.write strSQL is het sql statement dan wel goed?
Maw staan de waardes er wel?

Verwijderd

bgrr schreef op 28 September 2003 @ 23:08:
inmiddels ook de method get naar method post veranderd, foutmelding is nu weg , maar record wordt nog niet toegevoegd.

Top dat jullie me willen helpen en zo snel reageren :-)
En werkt response.write(strsql) ?

  • bgrr
  • Registratie: Oktober 2001
  • Niet online
Ik heb me webserver even opengezet voor diegene die even de sources wil zien en de db.

http://xxx.xxx.xxx.xxx/????????

[ Voor 17% gewijzigd door bgrr op 28-09-2003 23:35 ]


  • bgrr
  • Registratie: Oktober 2001
  • Niet online
Verwijderd schreef op 28 September 2003 @ 23:11:
[...]

En werkt response.write(strsql) ?
Ik krijg de output niet op me scherm te zien, zodra ik een submit geef refresht me scherm en er staat nergers de output tussen van de strSQL

Verwijderd

In je database_invoeren.asp staat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<HTML>
<HEAD>

<TITLE>BEJEWELED TOPSCORES</TITLE>
</HEAD>
<BODY>
<form action="database_invoeren.asp" method="post">
Naam   <input type="text" name="fnaam" size="20"><BR>
score  <input type="text" name=fscore" size ="20"<BR>
<input type="submit" value="Submit">
</form>

</FORM>
</BODY>
</HTML>


Waar is het asp stuk dan?
Op het moment dat je submit keert hij terug naar deze pagina en dan zal er inderdaad niks gebeuren 8)7

  • bgrr
  • Registratie: Oktober 2001
  • Niet online
Het stuk asp staat in mijn source onder het form gedeelte.. zie -> code

Zit hier mijn fout ? Moet ik het asp stuk ergens triggeren ?

[code]

<%@ LANGUAGE="VBSCRIPT" %>

<HTML>
<HEAD>

<TITLE>BEJEWELED TOPSCORES</TITLE>
</HEAD>
<BODY>


<form action="database_invoeren.asp" method="post">
Naam <input type="text" name="fnaam" size="20"><BR>
score <input type="text" name=fscore" size ="20"<BR>
<input type="submit" value="Submit">
</form>

<%


dim fnaam
fnaam=Request.QueryString("fnaam")

dim fscore
fscore=Request.QueryString("fscore")

If fnaam<>"" THEN

set cnADO = Server.CreateObject("ADODB.Connection")
Dim myDSN
myDSN = "DSN=database"
cnADO.Open myDSN

Dim strSQL
strSQL = "INSERT INTO bejeweled (naam,score) VALUES('" & fnaam &"'," & fscore & ")"
response.write(strsql)
set rsADO = cnADO.Execute(strSQL)

END IF

%>


</FORM>
</BODY>
</HTML>

[code]

[ Voor 23% gewijzigd door bgrr op 28-09-2003 23:21 ]


  • Exterazzo
  • Registratie: Mei 2000
  • Laatst online: 16:28

Exterazzo

Qeasy

je moet je request.querystring nog veranderen in request.form

dus dit:
dim fnaam
fnaam=Request.QueryString("fnaam")

dim fscore
fscore=Request.QueryString("fscore")
moet worden dit:
dim fnaam
fnaam=Request.Form("fnaam")

dim fscore
fscore=Request.Form("fscore")

[ Voor 68% gewijzigd door Exterazzo op 28-09-2003 23:24 ]

Audentia


Verwijderd

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<%@ LANGUAGE="VBSCRIPT" %>
<%
dim fnaam
fnaam=Request.Form("fnaam")

dim fscore
fscore=Request.Form("fscore")

If fnaam<>"" THEN

set cnADO = Server.CreateObject("ADODB.Connection")
Dim myDSN
myDSN = "DSN=database"
cnADO.Open myDSN

Dim strSQL
strSQL = "INSERT INTO bejeweled (naam,score) VALUES('" & fnaam &"'," & fscore & ")"
response.write(strsql)
set rsADO = cnADO.Execute(strSQL)

END IF

%>

<HTML>
<HEAD>

<TITLE>BEJEWELED TOPSCORES</TITLE>
</HEAD>
<BODY>

<form action="database_invoeren.asp" method="post">
Naam <input type="text" name="fnaam" size="20"><BR>
score <input type="text" name=fscore" size ="20"<BR>
<input type="submit" value="Submit">
</form>

</BODY>
</HTML>


Probeer het zo eens. Werkt wel denk ik :)

  • bgrr
  • Registratie: Oktober 2001
  • Niet online
Ik heb je code erin staan, maar nu krijg ik weer die foutmelding

INSERT INTO bejeweled (naam,score) VALUES('truus',)
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

/database/database_invoeren.asp, line 19

  • Exterazzo
  • Registratie: Mei 2000
  • Laatst online: 16:28

Exterazzo

Qeasy

verander dit:
score <input type="text" name=fscore" size ="20"<BR>
eens in dit
score <input type="text" name="fscore" size="20"><BR>

[ Voor 53% gewijzigd door Exterazzo op 28-09-2003 23:29 ]

Audentia


Verwijderd

Fout melding klopt.
Kijk eens goed naar je Insert. Je mist de fscore waarde !! :o

Met de wijziging van Exterazzo erbij zou hij nu moeten werken

[ Voor 29% gewijzigd door Verwijderd op 28-09-2003 23:29 ]


  • Exterazzo
  • Registratie: Mei 2000
  • Laatst online: 16:28

Exterazzo

Qeasy

En hij werkt :D

Audentia


  • bgrr
  • Registratie: Oktober 2001
  • Niet online
zie nu idd wel de strSQL output op het scherm, de value van fscore komt niet mee zie ik

Heb nu ook de tip van Ex... gedaan, die " in form en nu werkt het :-)

Mag ik je jullie bedanken voor de hulp....

Ga nu eens rustig kijken waar ik de fouten heb gemaakt.

Thanks for helping me...

  • freddifish
  • Registratie: November 2000
  • Laatst online: 29-01 09:15

freddifish

schnappi !

ik heb dit destijds gedaan met de frontpage ASP wizard (ben meer thuis in PHP nl :) )
Lijkt heel wat, maar zijn gewoon een hele zut voorbeeld ASP files, wel illustratief
check http://support.microsoft....6/0/19.asp&NoWebContent=1

[ Voor 9% gewijzigd door freddifish op 28-09-2003 23:31 ]

'people say I'm a drinker, but I'm sober half the time' - Mick Jagger | mail: freddifish_AT_gmx.net

Pagina: 1