Toon posts:

ASP Update probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hier is de update code
----------------------
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<%
N_Id = Request.Form("N_Id")
titel = Request.Form("titel")
tekst = Request.Form("tekst")

set Wijzigen = Server.CreateObject("ADODB.Command")
Wijzigen.ActiveConnection = MM_connAlgemeen_STRING
Wijzigen.CommandText = "UPDATE Nieuws SET N_Titel = "&titel&", N_Tekst = "&tekst&" WHERE N_Id = "&N_Id&""
Wijzigen.CommandType = 1
Wijzigen.CommandTimeout = 0
Wijzigen.Prepared = true
Wijzigen.Execute()
response.Redirect("nieuws.asp?tekst=Het bericht is met succes gewijzigd.")
%>


----------------------
Hier is de fout
----------------------------------
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

....
Hopelijk weet iemand anders het wel...
ps.. ik heb het ook al geprobeert met extra ' ' voor/achter iedere variabele

mvg,
Mark

[ Voor 12% gewijzigd door Glimi op 18-07-2003 14:48 ]


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Je moet ook niet quotes om al je variabeles zetten, maar alleen om de string waares. Volg eerst eens een tutorial op www.sqlcourse.com oid. en kijk of dat werkt.

[ Voor 8% gewijzigd door Glimi op 18-07-2003 14:48 ]


  • Dukey
  • Registratie: November 2000
  • Laatst online: 11-08 18:49

Dukey

Ik heb dit getypt hier -->

Je moet controleren welke veldtypes je hebt in de DB op die plaatsen, vervolgens kun je cijfers echt integer krijgen door "&Cint(""&cijfer&"")&" te gebruiken. ' singlequotes om de variables kan soms helpen in bepaalde situaties (niet geindexeerde gegevens bijv).

Ook wel de allergrootste _ _ _ _ _ (vul in met blokletters)


  • Batsies
  • Registratie: Mei 2002
  • Laatst online: 27-01-2022

Batsies

E-Developing

gebruik is de code tags hier . OK

[ Voor 60% gewijzigd door Batsies op 18-07-2003 14:55 ]

E-Developing


  • Bjornski
  • Registratie: September 2002
  • Laatst online: 07-08 11:04
Titel is waarschijnlijk een tekstveld. Tekstvelden moeten tussen Quotes, en ik geloof zelfs dubbelquotes in access.
Probeer dit eens:
"UPDATE Nieuws SET N_Titel = '"&titel&"', N_Tekst = '"&tekst&"' WHERE N_Id = "&N_Id

Als dat niet werkt, dan:
"UPDATE Nieuws SET N_Titel = """&titel&""", N_Tekst = """&tekst&""" WHERE N_Id = "&N_Id

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Gooi je query eens op het scherm. Verder wat glimi aangeeft; volg een SQL tutorial. Dan kom je er al heel snel achter dat:

SQL:
1
Update melp set waarde = Dit is een foute string WHERE ID=5

niet goed is.

Aanvulling op djoekie: altijd single quotes rond string waarden en geen single quotes rond numerieke waarde.

(waarbij de waarden afhankelijk zijn van het veldtype)

[ Voor 30% gewijzigd door gorgi_19 op 18-07-2003 14:51 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

aanvulling op Gorgi: filter ook altijd de single quotes uit de string die tussen single quotes staat
code:
1
replace(string, "'","''")

kaart != map && bottel != fles
Wacht op antwoord


Verwijderd

het probleem is dat hij geen spatie tussen de & tekens heeft zitten. Heeft weinig met de quotes te maken.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 18 juli 2003 @ 14:54:
het probleem is dat hij geen spatie tussen de & tekens heeft zitten. Heeft weinig met de quotes te maken.
Best knap als je mijn updatequery dan kan uitvoeren... quotes is zeker ook een probleem.

[ Voor 7% gewijzigd door gorgi_19 op 18-07-2003 14:56 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Djoekie schreef op 18 July 2003 @ 14:48:
Je moet controleren welke veldtypes je hebt in de DB op die plaatsen, vervolgens kun je cijfers echt integer krijgen door "&Cint(""&cijfer&"")&" te gebruiken. ' singlequotes om de variables kan soms helpen in bepaalde situaties (niet geindexeerde gegevens bijv).
Dat van de CINT is onzin trouwens. Het updatestatement is gewoon tekst en bij wijze van spreke volstrekt onafhankelijk van wat de achterliggende datatypes zijn.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
thanks opgelost...
een combi van alle adviezen...!!

Verwijderd

wat je over de quotes klopte wel, maar was niet zijn probleem zo ver als ik het zo zie, als ik geen spatie zet tussen field1="&variable&"field2=etc.. dan werkt het voor mij niet in ASP.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 18 juli 2003 @ 15:01:
wat je over de quotes klopte wel, maar was niet zijn probleem zo ver als ik het zo zie, als ik geen spatie zet tussen field1="&variable&"field2=etc.. dan werkt het voor mij niet in ASP.
Ik durf bijna wel zeker te weten dat in de variabele tekst minimaal 1 spatie voor komt. Ook dat levert die fout op.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

yep, ben ik met je eens, moet een HTMLEncode over heen.

Verwijderd

Ik durf bijna wel zeker te weten dat in de variabele tekst minimaal 1 spatie voor komt. Ook dat levert die fout op.
Nope, dat komt omdat er geen quotes omheen staan.
Dat is de fout opzich al, daarom weet de database niet wat de tekst is en wat nou SQL is.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 18 July 2003 @ 15:04:
yep, ben ik met je eens, moet een HTMLEncode over heen.
:? Hoezo een HTMLEncode? Da's helemaal niet nodig...
Een spatie is trouwens niet gelijk aan een   als je dat bedoeld.
Verwijderd schreef op 18 juli 2003 @ 15:08:
[...]


Nope, dat komt omdat er geen quotes omheen staan.
Dat is de fout opzich al, daarom weet de database niet wat de tekst is en wat nou SQL is.
Dat zeg ik.. ;) single quotes zijn iig nodig.. ;)

[ Voor 37% gewijzigd door gorgi_19 op 18-07-2003 15:11 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

SQL:
1
"UPDATE Nieuws SET N_Titel = '" & titel & "', N_Tekst = '" & tekst & "' WHERE N_Id = " & N_Id &"


zou zoiets dan moeten zijn toch? enkele quotes om de tekst velden, en dubbele quotes voor de totale string.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 18 July 2003 @ 15:11:
SQL:
1
"UPDATE Nieuws SET N_Titel = '" & titel & "', N_Tekst = '" & tekst & "' WHERE N_Id = " & N_Id &"


zou zoiets dan moeten zijn toch? enkele quotes om de tekst velden, en dubbele quotes voor de totale string.
Die laatste
SQL:
1
 & " 

moet weg.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Hoezo een HTMLEncode? Da's helemaal niet nodig...
Een spatie is trouwens niet gelijk aan een als je dat bedoeld.
sorry mijn fout, dat bedoelde ik eerder voor de redirect die later gebeurt, waarin hij iets van tekst opneemnt, ik weet niet of ASP dat zelf al omzet of ofdat je dat door een HTMLEncode heen moet halen?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 18 July 2003 @ 15:12:
[...]


sorry mijn fout, dat bedoelde ik eerder voor de redirect die later gebeurt, waarin hij iets van tekst opneemnt, ik weet niet of ASP dat zelf al omzet of ofdat je dat door een HTMLEncode heen moet halen?
Die HTMLEncode is alleen nodig als je wilt voorkomen dat mensen HTML codes in je database gaan invoeren. Ik weet niet of ze 'HTML-rechten' hebben. Verder kent ASP 3.0 geen HTMLDecode, zodat je daar voor moet 'uitkijken'.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

ok mijn fout dan, dus de redirect die hij hier maakt:

ASP:
1
response.Redirect("nieuws.asp?tekst=Het bericht is met succes gewijzigd.")
is juist? ik dacht dat je daar allemaal +'jes of %20'jes tussen moest zetten in plaats van spaties....

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 18 July 2003 @ 15:15:
ok mijn fout dan, dus de redirect die hij hier maakt:

ASP:
1
response.Redirect("nieuws.asp?tekst=Het bericht is met succes gewijzigd.")
is juist? ik dacht dat je daar allemaal +'jes of %20'jes tussen moest zetten in plaats van spaties....
Officieel wel, sommige browsers struikelen er over. IE pikt het, zoals bij de meeste dingen, gewoon.

Hoewel ik me serieus afvraag of je wel deze constructie moet gebruiken en het niet op andere, nettere, manieren kan oplossen.

[ Voor 8% gewijzigd door gorgi_19 op 18-07-2003 15:17 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Batsies
  • Registratie: Mei 2002
  • Laatst online: 27-01-2022

Batsies

E-Developing

Kan ook met javascript (als je dat wilt gebruiken, iets response.write en dan met java na 1,5 sec doorlinken

E-Developing


Verwijderd

Verwijderd schreef op 18 juli 2003 @ 15:15:
ok mijn fout dan, dus de redirect die hij hier maakt:

ASP:
1
response.Redirect("nieuws.asp?tekst=Het bericht is met succes gewijzigd.")
is juist? ik dacht dat je daar allemaal +'jes of %20'jes tussen moest zetten in plaats van spaties....
Dat gebeurd automatisch...

Maar debug de volgende keer op de volgende manier...

Response.Write Wijzigen.CommandText

Die code plakken in access, dan zie je zo waar de fout zit...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Batsies schreef op 18 July 2003 @ 15:19:
Kan ook met javascript (als je dat wilt gebruiken, iets response.write en dan met java na 1,5 sec doorlinken
Waarom zou je Javascript willen gebruiken in dit geval?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

tja, ik dacht dus dat je voor zoiets htmlencode moest gebruiken zodat spaties etc... werden omgezet naar juiste code.

Verwijderd

er bestaat trouwens wel een htmldecode, maar deze zit niet standaar in asp 3.0 zoals gorgi zei, maar zul je als function moeten includen...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 18 July 2003 @ 15:22:
er bestaat trouwens wel een htmldecode, maar deze zit niet standaar in asp 3.0 zoals gorgi zei, maar zul je als function moeten includen...
Dat wordt interessant.. Heb je een linkje, voor in de FAQ?
Zie: P&W FAQ - ASP

Klein blundertje van de maker van de ASP-faq.. :X :+

[ Voor 38% gewijzigd door gorgi_19 op 18-07-2003 15:25 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

gorgi_19 schreef op 18 July 2003 @ 15:23:
[...]

Dat wordt interessant.. Heb je een linkje, voor in de FAQ?
Zie: P&W FAQ - ASP

Klein blundertje van de maker van de ASP-faq.. :X :+
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%
Private Function HTMLDecode(byVal encodedstring)
    Dim tmp, i
    tmp = encodedstring
    tmp = Replace( tmp, "&quot;", chr(34) )
    tmp = Replace( tmp, "&lt;"  , chr(60) )
    tmp = Replace( tmp, "&gt;"  , chr(62) )
    tmp = Replace( tmp, "&amp;" , chr(38) )
    tmp = Replace( tmp, "&nbsp;", chr(32) )
    For i = 1 to 255
        tmp = Replace( tmp, "&#" & i & ";", chr( i ) )
    Next
    HTMLDecode = tmp
End Function
%>


deze code gebruik ik altijd, nooit problemen mee, werkt goed. Zal alleen qua performance niet echt over naar huis te schrijven zijn...

Verwijderd

Dat gebeurd automatisch...
//offtopic: gebeurd is met een T

//ontopic: Dat gebeurt alleen automatisch bij NIEUWE browsers, probeer het maar een met een oude netscape. Die pleurt op de spreekwoordelijke bek.
En je hoeft daarvoor helemaal geen HTMLdecode te gebruiken. Die encode functie is er voor om 'speciale tekens' mee te geven aan een URL. Niet meer en niet minder.
Lees je eigen anders ff wat HTTP info....
Die code plakken in access, dan zie je zo waar de fout zit...
Nee, dit werkt vaak, maar niet altijd. Het komt nl. wel eens voor dat het in Access wel werkt en in ASP niet. Zo kun je in Access bijvoorbeeld " gebruiken voor strings ipv '
Pagina: 1