ASP 'insert' probleem

Pagina: 1
Acties:

  • Denga
  • Registratie: September 2000
  • Laatst online: 14-06 16:53

Denga

The riding never stops....

Topicstarter
ik zit met het volgende, ik kan het net voor elkaar krijgen dat mijn invorvelden worden ingevoerd in mijn database dit zij de codes.

index.htm:

<html>
<head>
<title>toevoegen van een klant</title>
</head>
<body bgcolor="#FFFFCC">
<font size="4" color="#000000" face="Arial">Toevoegen</font><hr size="4">

<p><font face="Arial">In dit programmaonderdeel wordt er een nieuwe gast aangemaakt in de database. <br>
<br>
<br>
<br>
Vul de gegevens in en druk op Toevoegen. om de zoekterm te wissen kan de knop Wissen worden gebruikt.<br>
</font></p>
<form METHOD="POST" ACTION="/klantadd.asp">
<table width="100%" border="0">
<tr>
<td>Naam</td>
<td><input name="naam"size="45" maxlength="45"></td>
</tr>
<tr>
<td>Adres</td>
<td><input name="adres"size="45" maxlength="45"></td>
</tr>
<tr>
<td>Postcode</td>
<td><input name="postcode"size="45" maxlength="45"></td>
</tr>
<tr>
<td>Woonplaats</td>
<td><input name="woonplaats"size="45" maxlength="45"></td>
</tr>
<tr>
<td>Telefoon</td>
<td><input name="telefoon"size="45" maxlength="45"></td>
</tr>
</table>
<p><font face="Arial"><input type="submit" value="Toevoegen"><input type="reset" value="Wissen"> </font></td>
</tr>
</table>
</form></body>
</html>

klanten.asp:

<%@ LANGUAGE = VBScript %>
<html>

<head>
<title> Toevoegen aan klantenlijst</title>
</head>

<body <%=stijlnormbody%>>
<% naam = SQLencode (Trim (Request.form ("naam")))
adres = SQLencode (Trim (Request.form("adres")))
postcode = SQLencode (Trim (Request.form("postcode")))
woonplaats = SQLencode (Trim (Request.form("woonplaats")))
telefoon = SQLencode (Trim (Request.form("telefoon"))) %>

<% Set OBJdbConnection = Server.CreateObject ("ADODB.Connection")
CurDir=Server.MapPath ("db\klanten.mdb")
OBJdbConnection.Open ("DBQ=" & CurDir & ";Driver={Microsoft Access Driver
(*.mdb) } ;DriverId=25 ; FIL=MS Access")

SQLQuery = "insert into klant (naam, adres, postcode, woonplaats, telefoon) values
( '"
SQLQuery = SQLQuery & naam & "', '"
SQLQuery = SQLQuery & adres & "', '"
SQLQuery = SQLQuery & postcode & "', '"
SQLQuery = SQLQuery & woonplaats & "', '"
SQLQuery = SQLQuery & telefoon & "')"
Set RS = KenconConnection.Execute (SQLQuery)
OBJdbConnection.Close
%>

Toegevoegd aan klantenlijst.
</body>
</html>

en mij database bestaan uit een tabel klant met de velden naam, adres, postcode, woonplaats en telefoon. de database zelf heet klanten.mdb

dit alles en ook de foutmeldingen zijn te bezichtigen op www25.brinkster.com/project2b

P.s. het is voor school maar dat kan je alwel zien aan de url hierboven ;)

MvG,
Denga

Never eat yellow snow...


Verwijderd

klantadd.asp maken en klaar?? (aka. File Not Found)

Verwijderd

Op woensdag 28 november 2001 19:18 schreef Denga het volgende:
ik zit met het volgende, ik kan het net voor elkaar krijgen dat mijn invorvelden worden ingevoerd in mijn database dit zij de codes.

index.htm:

<html>
<head>
<title>toevoegen van een klant</title>
</head>
<body bgcolor="#FFFFCC">
<font size="4" color="#000000" face="Arial">Toevoegen</font><hr size="4">

<p><font face="Arial">In dit programmaonderdeel wordt er een nieuwe gast aangemaakt in de database. <br>
<br>
<br>
<br>
Vul de gegevens in en druk op Toevoegen. om de zoekterm te wissen kan de knop Wissen worden gebruikt.<br>
</font></p>
<form METHOD="POST" ACTION="/klantadd.asp">
<table width="100%" border="0">

- SNIP -


</table>
</form></body>
</html>

klanten.asp:

<%@ LANGUAGE = VBScript %>
<html>

<head>
<title> Toevoegen aan klantenlijst</title>
</head>

- SNIP -
Als de form submit naar "/klantadd.asp":

1) Waarom die / ervoor en niet gewoon "klantadd.asp" ?

2) Als het insert bestand klanten.asp heet...wat doet die dan en wat doet die klantadd.asp dan? :)

moet die /klantadd.asp in de action van het forumlier dan niet gewoon "klanten.asp" worden???

Probeer dat eerst maar eens!

Mocht dat niet de oplossing zijn dan zou ik even goed naar die connectionstring kijken (op Brinkster staan in de FAQ volgens mij ook wat voorbeelden!)

Ik vind die ID wat raar :?

Maar dat kan ook gewoon aan mij liggen ;)

  • Denga
  • Registratie: September 2000
  • Laatst online: 14-06 16:53

Denga

The riding never stops....

Topicstarter
ok dat met die klanten.asp en klantadd.asp is nu opgelost maar zelfs nu doet ie het dus niet ik begrijp er geen hol van en van alle faq's wordt ik ook niets wijzer

MvG,
Denga

Never eat yellow snow...


Verwijderd

Precies wat de fout melding geeft. Je string houdt opeens op (de rest staat op de volgende regel???).

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:13

Crazy D

I think we should take a look.

Ok, standaard debug antwoord.
Geef de precieze foutmelding, en de wat voor code er op die regel staat.

Schrijf de sql query zoals je die wilt gaan uitvoeren, en bekijk die eens goed. Print desnoods eerst even de waardes zoals je ze uit de form uitleest, voordat je ze in de query stopt.

Set RS = connectie.Execute is zinloos, de query geeft geen recordset terug. connectie.Execute query is dus genoeg.

Exact expert nodig?


  • Denga
  • Registratie: September 2000
  • Laatst online: 14-06 16:53

Denga

The riding never stops....

Topicstarter
Microsoft VBScript runtime error '800a000d'

Type mismatch: 'SQLencode'

/project2b/klantadd.asp, line 9

zie hierboven voor exacte regel

Never eat yellow snow...


  • Nazgul
  • Registratie: Februari 2000
  • Laatst online: 11-10-2022

Nazgul

Digital Pizza Crew

SQLencode is een functieaanroep, maar ik zie nergens in jouw code de daadwerkelijke functie staan.

No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced.


Verwijderd

Op donderdag 29 november 2001 08:43 schreef Nazgul het volgende:
SQLencode is een functieaanroep, maar ik zie nergens in jouw code de daadwerkelijke functie staan.
Moet 'SQLencode' niet 'Server.HTMLEncode' zijn :?

  • Denga
  • Registratie: September 2000
  • Laatst online: 14-06 16:53

Denga

The riding never stops....

Topicstarter
ook al voer ik Server.HMLEncode in hij blijft een foutmelding geven... dus ik begrijp niet waar ie nou nog een probleem van maakt dus mocht er iemand zijn die dit wel weet... :)

Never eat yellow snow...


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:13

Crazy D

I think we should take a look.

Dan laat je die encode voorlopig even weg, en probeer het eerst zonder? Of denk ik hou heel simpel?

Exact expert nodig?


  • Denga
  • Registratie: September 2000
  • Laatst online: 14-06 16:53

Denga

The riding never stops....

Topicstarter
heb ik algeprobeerd door SQL ipv SQLencode in te vullen maar dat werkt niet...

Never eat yellow snow...


Verwijderd

Haal dat hele SQLEncode weg en probeer het dan (dat werd er gezegd volgens mij)...En het moet waarschijnlijk (zoals eerder gezegd) zijn Server.HTMLEncode ipv SQLEncode

  • Denga
  • Registratie: September 2000
  • Laatst online: 14-06 16:53

Denga

The riding never stops....

Topicstarter
ok ik ben nu weer wat anders aan het proberen want het script hierboven klopt dus voor geen meter maar nu krijg ik weer een foutmelding namelijk:

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

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

/project2b/toevoegen.asp, line 31
maar ik kan niet ontcijferen wat het probleem is want de source is:

<html>
<head>
<title>Gast Toevoegen</title>
</head>
<body bgcolor="#FFFFCC" text="#000000">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
<tr>
<td align="left" valign="top" bgcolor="#FFFFCC">
<FONT SIZE="2">
<%
voornaam = request.form("voornaam")
achternaam = request.form("achternaam")
adres = request.form("adres")
postcode = request.form("postcode")
plaats = request.form("plaats")
email = request.form("email")

Dim Conn, sConnString
Set Conn = Server.CreateObject("ADODB.Connection")
sConnString = "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & Server.MapPath("db\klanten.mdb") & ";"
Conn.Open(sConnString)

SQLstmt = "INSERT INTO [klanten] (voornaam, achternaam, adres, postcode, plaats, email)"
SQLstmt = SQLstmt & " VALUES ("
SQLstmt = SQLstmt & "'" & voornaam & "',"
SQLstmt = SQLstmt & "'" & achternaam & "',"
SQLstmt = SQLstmt & "'" & adres & "',"
SQLstmt = SQLstmt & "'" & postcode & "',"
SQLstmt = SQLstmt & "'" & plaats & "',"
SQLstmt = SQLstmt & "'" & email & "',"
Set RS = conn.execute(SQLstmt)

If err.number>0 then
response.write "Er hebben zich VBScript fouten voorgedaan:" & "<P>"
response.write "Fout Nummer =" & err.number & "<P>"
response.write "Fout omschrijving =" & err.description & "<P>"
response.write "Help Context =" & err.helpcontext & "<P>"
response.write "Help Pad =" & err.helppath & "<P>"
response.write "Fout voortgekomen uit " & err.nativeerror & "<P>"
response.write "Bron =" & err.source & "<P>"
response.write "SQLState =" & err.sqlstate & "<P>"
end if
IF conn.errors.count> 0 then
response.write "Er hebben zich Database Fouten voorgedaan" & "<P>"
response.write SQLstmt & "<P>"
for counter= 0 to conn.errors.count
response.write "Fout nummer" & conn.errors(counter).number & "<P>"
response.write "Fout omschrijving" & conn.errors(counter).description & "<P>"
next
else
response.write "<br><br><br><center>Uw reserveringsgegevens zijn ontvangen en verwerkt.</center></font>"
end if
Conn.Close
%>
</body>
</html>

Never eat yellow snow...


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:13

Crazy D

I think we should take a look.

Op maandag 03 december 2001 14:29 schreef Denga het volgende:
[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

SQLstmt = "INSERT INTO [klanten] (voornaam, achternaam, adres, postcode, plaats, email)"
SQLstmt = SQLstmt & " VALUES ("
SQLstmt = SQLstmt & "'" & voornaam & "',"
SQLstmt = SQLstmt & "'" & achternaam & "',"
SQLstmt = SQLstmt & "'" & adres & "',"
SQLstmt = SQLstmt & "'" & postcode & "',"
SQLstmt = SQLstmt & "'" & plaats & "',"
SQLstmt = SQLstmt & "'" & email & "',"
Set RS = conn.execute(SQLstmt)
Als je een error in je INSERT INTO statement krijgt, is dit stukje voldoende om te plaatsen, maar goed.
Standaart antwoord: Response.Write SQLstmt voordat je de query execute, dan zie je tenminste de query zoals de database deze ontvangt en gaat uitvoeren.
In dit geval is de reden van de foutmelding vrij simpel, maar kijk nog maar eens goed (eventueel dus ook naar de inhoud van je SQLstmt variabele), ik denk dat je het dan zo zelf al ziet (hoop ik !).

Exact expert nodig?


  • Denga
  • Registratie: September 2000
  • Laatst online: 14-06 16:53

Denga

The riding never stops....

Topicstarter
Op maandag 03 december 2001 14:51 schreef CrazyD_at_work het volgende:

[..]

Als je een error in je INSERT INTO statement krijgt, is dit stukje voldoende om te plaatsen, maar goed.
Standaart antwoord: Response.Write SQLstmt voordat je de query execute, dan zie je tenminste de query zoals de database deze ontvangt en gaat uitvoeren.
In dit geval is de reden van de foutmelding vrij simpel, maar kijk nog maar eens goed (eventueel dus ook naar de inhoud van je SQLstmt variabele), ik denk dat je het dan zo zelf al ziet (hoop ik !).
Nou ik hoop dat je me het toch nog effe wil voorkauwen want ik zie het niet (jammer genoeg) :?

Never eat yellow snow...


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:13

Crazy D

I think we should take a look.

Op maandag 03 december 2001 14:54 schreef Denga het volgende:
Nou ik hoop dat je me het toch nog effe wil voorkauwen want ik zie het niet (jammer genoeg) :?
Kijk eens goed naar het 'einde' van je query... zoals je wel weet moet een insert query er min of meer zo uit zien:
insert into tabel
(veld1, veld2)
values
('string 1', 'string 2')

En kijk nog eens goed naar hoe je je insert query afsluit. Hint: ) zie ik iig niet staan...

Exact expert nodig?


  • Denga
  • Registratie: September 2000
  • Laatst online: 14-06 16:53

Denga

The riding never stops....

Topicstarter
ja sorry ik heb al heel wat geprobeerd maar nog steeds werkt het niet... blijf nog steeds die insert error houden...

Never eat yellow snow...


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 19:13

Crazy D

I think we should take a look.

SQLstmt = "INSERT INTO [klanten] (voornaam, achternaam, adres, postcode, plaats, email)"
SQLstmt = SQLstmt & " VALUES ("
SQLstmt = SQLstmt & "'" & voornaam & "',"
SQLstmt = SQLstmt & "'" & achternaam & "',"
SQLstmt = SQLstmt & "'" & adres & "',"
SQLstmt = SQLstmt & "'" & postcode & "',"
SQLstmt = SQLstmt & "'" & plaats & "',"
SQLstmt = SQLstmt & "'" & email & "',"
Set RS = conn.execute(SQLstmt)
Er staat dus een , achter email die daar niet meer hoort, en er hoort na email nog een ) en die staat er dus niet.

Volgens mij een typisch geval van blindstaren op iets :P

PS gewoon in general: als je een error krijgt in een query, print 'm ff met Response.Write, dan zie je precies de query zoals ie naar de database wordt gestuurd. Een hoop fouten worden dan in 1 keer duidelijk, zoals in dit geval had er iets uitgekomen als

INSERT INTO [klanten]
(voornaam, achternaam, adres, postcode, plaats, email)
VALUES
('Pietje', 'Puk', 'Dorpsweg 1', '1234 AA', 'Ons Dorp', 'pietje@puk.nl',

En dan zie je als het goed is vrij snel (zo niet direct) dat er 'iets' niet goed is aan het einde van de query.

Exact expert nodig?

Pagina: 1