[ASP]Wijzigen lukt niet Internal Server Error

Pagina: 1
Acties:

  • Mavvie
  • Registratie: Maart 2001
  • Laatst online: 10-05-2021
edit:


Dit probleem is al opgelost scrol verder naar onder om het volgende probleem te belijken

Twitter | Linkedin


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 03-09 15:18

Crazy D

I think we should take a look.

Hmm tis wel een mega lap code hoor :P Probeer te triggeren waar het precies fout gaat, oftewel, debug messages plaatsen, queries printen (en controlleren!), form en querystring waardes checken, dat soort dingen. Stapje voor stapje proberen te triggeren waar precies het probleem zit, en als je dan nog een lap van ong. 15 regels code over hebt waar het probleem in "zou moeten" zitten, dan is dat in ieder geval een stuk handiger lezen.

[edit]
PS hoe ver kom je? In welke pagina gaat het fout?
En hmmm vergeet niet om de input die je krijgt vanuit de form en de querystring _altijd_ goed te controlleren of er alleen maar geldige zaken instaan (nummertje moet ook numeriek zijn, string die in de db maximaal n tekens mag zijn, ook checken of die string niet te lang is, dat soort dingen...

Enne uh als je 1 record wilt wijzigen, query dan
SELECT velden FROM tabel WHERE keyveld = waarde

Dan hoef je ook niet een complete tabel door te loopen op zoek naar het juiste record.

Exact expert nodig?


Verwijderd

Misschien heb je hier niks aan hoor, maar waarom update je niet via een SQL statement...

dus
if update == true
{
strSql = "Update tabelX SET naam = "' & naam &'", adres = '"& adres &"' WHERE recnum = '"& recnum
}

De sybtax van ASP zal wel niet geheel kloppen(ben er een tijdje uit, maar zo'n update statement werkt meestal perfect.

  • Vigory
  • Registratie: November 2000
  • Laatst online: 15-04 10:26
Zet in ieder geval even "show friendly http error messages" uit in IE. Dan krijg je misschien wat meer info dan alleen "internal server error".

Verwijderd

Op zondag 30 juni 2002 21:00 schreef Vigory het volgende:
Zet in ieder geval even "show friendly http error messages" uit in IE. Dan krijg je misschien wat meer info dan alleen "internal server error".
Jep, dan zie tenminste waar het fout gaat !!
Opties - Internet opties - Tab Advanced - Onderaan bij "Browsing" staat dat aangevink...

En ik zal ook es naar je code kijken :)

  • Mavvie
  • Registratie: Maart 2001
  • Laatst online: 10-05-2021
Op zondag 30 juni 2002 21:02 schreef slindenau het volgende:

[..]

Jep, dan zie tenminste waar het fout gaat !!
Opties - Internet opties - Tab Advanced - Onderaan bij "Browsing" staat dat aangevink...

En ik zal ook es naar je code kijken :)
Thnx ik heb nu wat meer info, hier heb ik de error
code:
1
2
3
Microsoft OLE DB Provider for ODBC Drivers error '80040e2f' 

[Microsoft][ODBC Microsoft Access Driver] Index or primary key cannot contain a Null value.

Het zit in line 46. Dit stukje dus:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    RS.Fields("nr") = Nr
    RS.Fields("hrmw") = Hrmw
    RS.Fields("voorletters") = Voorletters
    RS.Fields("naam") = Naam
    RS.Fields("adres") = Adres
    RS.Fields("postcode") = Postcode
    RS.Fields("plaats") = Plaats
    RS.Fields("telefoon") = Telefoon
45    RS.Fields("email") = Mail
46    RS.Update
47 End If

   RS.close
   set RS = nothing
   Response.Redirect "wijzig.asp"

Niet moeilijk dus.. :) het is al opgelost. Maar Thnx voor die instellingen in IE :)

Twitter | Linkedin


  • Vigory
  • Registratie: November 2000
  • Laatst online: 15-04 10:26
Is Nr je primary key? Waarom verander je nummer dan weer bij het opslaan?

Deze regel zou dan weg moeten:
RS.Fields("nr") = Nr

  • Mavvie
  • Registratie: Maart 2001
  • Laatst online: 10-05-2021
edit:


Oude versie verwijderd

Twitter | Linkedin


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Of je gebruikt een gereserveerd kolomnaam, wat me niet onlogisch lijkt gezien je namen, of het komt omdat Email niet 8 maar 9 is in je formuliertje.

Verwijderd

Het is wel makkelijk als je aangeeft wat regel 34 is...

  • Mavvie
  • Registratie: Maart 2001
  • Laatst online: 10-05-2021
Op zondag 30 juni 2002 23:31 schreef Hakkert het volgende:
Het is wel makkelijk als je aangeeft wat regel 34 is...
Ok hij staat er nu bij sorry was ik vergeten

Twitter | Linkedin


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 04-09 13:35

gorgi_19

Kruimeltjes zijn weer op :9

Een aantal opeenvolgende hints (ben in melige bui, mocht je er na hint 1 niet uitkomen, zie dan hint 2....:))

Hint 1: Ga eens heeeeeeel goed in je sql query kijken
Hint 2: Gebruik eens een Response.write op je query te bekijken
Hint 3: Tel het aantal velden is in je query
Hint 4: Let op de (scheiding)kommaatjes
code:
1
2
3
4
SQLstring = SQLstring & "'" & NewPostcode & "'"
SQLstring = SQLstring & "'" & NewPlaats & "'"
SQLstring = SQLstring & "'" & NewTelefoon & "'"
SQLstring = SQLstring & "'" & NewMail & "'"

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Mavvie
  • Registratie: Maart 2001
  • Laatst online: 10-05-2021
Op zondag 30 juni 2002 23:37 schreef gorgi_19 het volgende:

Hint 1: Ga eens heeeeeeel goed in je sql query kijken
Sorry het is een Access database

Twitter | Linkedin


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 04-09 13:35

gorgi_19

Kruimeltjes zijn weer op :9

Op zondag 30 juni 2002 23:41 schreef Evil M@V het volgende:

[..]

Sorry het is een Access database
Dat maakt niet uit; er zit een foutje in je query, welke db je ook gebruikt.. (zie verder hints 2 t/m 4)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Volgens mij vergeet je een aantal komma's. :) Alle velden binnen VALUES () dienen met komma's gescheiden te zijn. Als je een Response.write(sqlstatement) doet ipv een execute zul je zien dat de laatste 4 velden niet door komma's gescheiden zijn en dus als 1 veld behandeld worden.

Graag gedaan :9

Verwijderd

Op zondag 30 juni 2002 23:43 schreef gorgi_19 het volgende:

[..]

Dat maakt niet uit; er zit een foutje in je query, welke db je ook gebruikt.. (zie verder hints 2 t/m 4)
Ik zie de fout ook..je leest er zo overheen, maar het is een makkie :)

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 04-09 13:35

gorgi_19

Kruimeltjes zijn weer op :9

Op zondag 30 juni 2002 23:47 schreef Hakkert het volgende:

[..]

Ik zie de fout ook..je leest er zo overheen, maar het is een makkie :)
Bingo, je gaat door voor de koelkast...:)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Mavvie
  • Registratie: Maart 2001
  • Laatst online: 10-05-2021
Op zondag 30 juni 2002 23:47 schreef zneek het volgende:
Volgens mij vergeet je een aantal komma's. :) Alle velden binnen VALUES () dienen met komma's gescheiden te zijn. Als je een Response.write(sqlstatement) doet ipv een execute zul je zien dat de laatste 4 velden niet door komma's gescheiden zijn en dus als 1 veld behandeld worden.

Graag gedaan :9
mm dit heb ik veranderd, nu krijg ik [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

Twitter | Linkedin


  • Mavvie
  • Registratie: Maart 2001
  • Laatst online: 10-05-2021
Op zondag 30 juni 2002 23:47 schreef zneek het volgende:
Volgens mij vergeet je een aantal komma's. :) Alle velden binnen VALUES () dienen met komma's gescheiden te zijn. Als je een Response.write(sqlstatement) doet ipv een execute zul je zien dat de laatste 4 velden niet door komma's gescheiden zijn en dus als 1 veld behandeld worden.

Graag gedaan :9
Thnx btw

Twitter | Linkedin


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Dan is een van die velden geen string maar wat anders in de db. :)

  • Mavvie
  • Registratie: Maart 2001
  • Laatst online: 10-05-2021
Op maandag 01 juli 2002 01:24 schreef Gert het volgende:
Dan is een van die velden geen string maar wat anders in de db. :)
Ja een datum heb ik er ook nog aan vast geplakt

Twitter | Linkedin


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Dan moet je niet 'blaat' maar #b/la/at# doen. ;)

  • Mavvie
  • Registratie: Maart 2001
  • Laatst online: 10-05-2021
Op maandag 01 juli 2002 07:40 schreef Gert het volgende:
Dan moet je niet 'blaat' maar #b/la/at# doen. ;)
He? ik snap het ff niet

Twitter | Linkedin


  • Vigory
  • Registratie: November 2000
  • Laatst online: 15-04 10:26
Hij bedoelt dat je de datum moet opgeven als: #01/01/2002#

  • Mavvie
  • Registratie: Maart 2001
  • Laatst online: 10-05-2021
Ik heb nu het volgende en krijg nog steeds de foutmelding

Number of query values and destination fields are not the same.
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
NewNr = Request.Form("0")
NewDatum = Request.Form("12")
Newhrmw = Request.Form("1")
NewVoorletters =  Request.Form("2")
NewNaam = Request.Form("3")
NewAdres = Request.Form("4")
NewPostcode = Request.Form("5")
NewPlaats = Request.Form("6")
NewTelefoon = Request.Form("7")
NewMail = Request.Form("8")
NewLid = Request.Form("9")
NewGz = Request.Form("11")

SQLstring = "INSERT INTO ledenlijst (nr,datum,hrmw,voorletters,naam,adres,postcode,plaats,telefoon,email,lid,gzl)"
SQLstring = SQLstring & " VALUES (" 
SQLstring = SQLstring & "'" & NewNr & "',"
SQLstring = SQLstring & "'" & NewDatum & "',"
SQLstring = SQLstring & "'" & Newhrmw & "',"
SQLstring = SQLstring & "'" & NewVoorletters & "',"
SQLstring = SQLstring & "'" & NewNaam & "',"
SQLstring = SQLstring & "'" & NewAdres & "',"
SQLstring = SQLstring & "'" & NewPostcode & "',"
SQLstring = SQLstring & "'" & NewPlaats & "',"
SQLstring = SQLstring & "'" & NewTelefoon & "',"
SQLstring = SQLstring & "'" & NewMail & "',"
SQLstring = SQLstring & "'" & NewLid & "'"
SQLstring = SQLstring & ")"

Twitter | Linkedin


  • Vigory
  • Registratie: November 2000
  • Laatst online: 15-04 10:26
Je vergeet NewGz in je SQL string.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 04-09 13:35

gorgi_19

Kruimeltjes zijn weer op :9

Logisch

Tel het aantal velden maar (van nr t/m gzl) en het aantal values (Newnr t/m Newlid)

Maar gebruik een keer de response.write om je query op het scherm te toveren! Deze fouten moet je er zelf uit kunnen halen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1