[ASP] probleem met SQL query

Pagina: 1
Acties:

  • f1r3b4ll
  • Registratie: Augustus 2000
  • Laatst online: 08:24
Hoi ASPers,

Ik ben een ontiegelijke ASP n00b, maar ik moet voor mijn stage opdracht een digitale schoolgids in elkaar flansen, en aangezien de hosting provider alleen ASP + SQL Server ondersteunt, probeer ik het daarin. Wat is nu de bedoeling: toon een pagina met hoofdstukken uit de schoolgids en de bijbehorende paragrafen. Je krijgt dus een soort boomstructuur van hoofdstukken en paragrafen.

Om dit voor elkaar te krijgen haal ik eerst met een lus alle hoofdstukken uit de database, en schrijf deze naar het scherm. Per hoofdstuk haal ik met een tweede query de bijbehorende paragrafen uit een andere tabel (met een join). Hiervoor gebruik ik onderstaande code (veel dingen weggelaten, gaat om de constructie):

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SQL = "SELECT * FROM schoolgids_chapters"
set objRec = objCon.execute(SQL)
do until objRec.EOF
%>
<!-- haal hoofstukken op en schrijf deze naar het scherm -->
<%
SQL2 = "SELECT * FROM schoolgids_paragraphs WHERE chapter_id = '"&objRec("chapter_number")&"'"
set objRec2 = objCon.execute(SQL2)
do until objRec2.EOF
%>
<!-- haal paragrafen op en schrijf deze naar het scherm -->
<%
objRec2.movenext
loop
objRec.movenext
loop


bij het uitvoeren van deze code krijg ik constant dezelfde foutmelding:

code:
1
2
3
4
5
Microsoft JET Database Engine error '80040e07'

Data type mismatch in criteria expression.

/schoolgids.asp, line 32


Ik heb al van alles geprobeerd, de objRec("chapter_number") omzetten naar cint bijvoorbeeld, of de quotes weghalen, maar niets helpt.

Wie wil deze ASP n00b op weg helpen? Dank!

🇳🇱 🔋 Marstek Venus E v3 | EMS xxx, BMS xxx, App vxxx | HW P1 | Marstek CT003 P1 | ☀️14kWp zuid-west+noord-oost


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Kijk eerst welke query je gaat uitvoeren:
ASP:
1
Response.Write(SQL2) ' ipv Execute dus


Zo kan je zelf zien (evt met een boek ernaast ;)) wat er niet klopt aan de syntaxis.

Los hiervan, is het niet handiger om 1 query uit te voeren waar je alle paragrafen en hoofdstukken in één keer ophaalt? Dit is niet echt performant.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

ID's zijn meestal numerieke waarden. Jij vergelijkt een ID met een string. Wedden dat dat fout gaat? ;) SQL Server is (gelukkig) net even iets stricter als bijvoorbeeld MySQL, dus op dergelijke dingen moet je gewoon letten. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • f1r3b4ll
  • Registratie: Augustus 2000
  • Laatst online: 08:24
ik heb het al door, ik vergeleek twee verkeerde velden met elkaar 8)7 sorry, ik zal jullie niet meer lastigvallen 8)

🇳🇱 🔋 Marstek Venus E v3 | EMS xxx, BMS xxx, App vxxx | HW P1 | Marstek CT003 P1 | ☀️14kWp zuid-west+noord-oost


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Neem je nog wel even die tip mee over het aantal query's?

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • f1r3b4ll
  • Registratie: Augustus 2000
  • Laatst online: 08:24
dat zal ik even proberen, als het goed is krijg ik dan een query in de trant van:

SQL = "SELECT * FROM schoolgids_chapters sc, schoolgids_paragraphs sp WHERE sc.schapter_id = sp.chapter_id"

Alleen nu ziet elke record er hetzelfde uit toch? hoe ga ik onderscheid maken tussen chapters en paragraphs, met oog op de output? (boomstructuur)

[ Voor 19% gewijzigd door f1r3b4ll op 18-04-2006 00:21 ]

🇳🇱 🔋 Marstek Venus E v3 | EMS xxx, BMS xxx, App vxxx | HW P1 | Marstek CT003 P1 | ☀️14kWp zuid-west+noord-oost


  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

simpel: sorteer ze op chapters, en onthoud met welk chapter je bezig bent: als een nieuw record parsed vergelijk de huidige chapter met de chapter uit het record, is die anders: eerst ff chapter info writen en daarna verder gaan met het parsen van de paragraphs uit het record.

(btw, schoolgids_chapter is echt 3x nix: of schoolguide_chapter of schoolgids_hoofdstuk maar geen engels en nederlands door elkaar.
ik zou voor schoolguide_chapter gaan, alles in het engels: je weet maar nooit of de indier die jou code moet gaan onderhouden over 10 jaar nederlands spreekt, engels mag je van uit gaan....

Of niet natuurlijk...


Verwijderd

Beetje offtopic, maar is het ook niet handiger om je commentaar in de ASP code te zetten, i.p.v. uit ASP gaan, een HTML comment te zetten en weer naar ASP gaan ?

  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

LOL, had dat nog niet eens gezien maar dat lijkt me idd stuk netter dus
VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SQL = "SELECT * FROM schoolgids_chapters"
set objRec = objCon.execute(SQL)
do until objRec.EOF

'haal hoofstukken op en schrijf deze naar het scherm 
SQL2 = "SELECT * FROM schoolgids_paragraphs WHERE chapter_id = '"&objRec("chapter_number")&"'"
set objRec2 = objCon.execute(SQL2)
do until objRec2.EOF

'haal paragrafen op en schrijf deze naar het scherm 
objRec2.movenext
loop
objRec.movenext
loop

Of niet natuurlijk...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:01

gorgi_19

Kruimeltjes zijn weer op :9

Kan je niet een Join gebruiken? Scheelt een x-aantal queries op je databank uitvoeren.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Dat doet hij toch ook in deze post :?

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:01

gorgi_19

Kruimeltjes zijn weer op :9

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

nee, maar dat ging alleen even over het commentarieren van vbscript met html code ;)

Of niet natuurlijk...

Pagina: 1