[ASP] Vreemde fout na 1 kleine aanpassing

Pagina: 1
Acties:
  • 81 views sinds 30-01-2008

  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 22-08 19:34
Soort fout:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-stuurprogramma] De expressie bevat een ongedefinieerde functie RS.fields.
/matchpunten.asp, line 20
<%

myDSN="DRIVER=Microsoft Access Driver (*.mdb);DBQ="&Server.MapPath("Sof2.mdb")
mySQL="SELECT * FROM Matches where ID=" & MatchID & " "

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open(myDSN)

Set RS = Conn.Execute(mySQL) Dit is dus lijn 20
Blijkbaar is er iets mis met mijn sql opdracht. Maar het heeft altijd gewerkt en sinds ik een aanpassing heb gemaakt in de database (veld van text veranderd naar numeriek) geeft ie deze fout. Als ik alles weer herstel zoals het eerst was geeft ie nog steeds die fout :?

  • dominic
  • Registratie: Juli 2000
  • Laatst online: 21-08 19:07

dominic

will code for food

Waar dient de extra spatie voor aan het einde van de query?

Download my music on SoundCloud


  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 22-08 19:34
dat is voor wat meer overzicht
edit:

Ik heb juist die spatie weggedaan maar het maakte niets uit.
Die fout heeft dus te maken met het oproepen van records in mijn database, maar waarom zou het nu ineens mis gaan en het heeft gister uuuuuren gewerkt :?

Verwijderd

vervang
code:
1
mySQL="SELECT * FROM Matches where ID=" & MatchID & " "

met
code:
1
mySQL="SELECT * FROM Matches where (ID='" & MatchID & "')"

en zorg natuurlijk dat MatchID iets is :+
(Ik garandeer niet dat het werkt, maar probeer dit es zou ik zeggen, en haal die spaties weg)

  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 22-08 19:34
MatchID is idd iets :P. Het is een doorgegeven variabele vanop de vorige pagina en ik heb nagekeken dat de waarde wordt doorgegeven ;)

  • whoami
  • Registratie: December 2000
  • Laatst online: 11:48
Die haakjes gaan het verschil niet maken, en rond een numerieke waarde ''-jes zetten gaat ook niet werken.

Print de SQL string eens naar jouw scherm, test hem in Query Analyzer of iets dergelijks. Als hij daarin werkt, dan licht het probleem niet bij de query.

https://fgheysels.github.io/


  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 22-08 19:34
Soort fout:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-stuurprogramma] Syntaxisfout (operator ontbreekt) in query-expressie (ID='RS.fields('ID')').
/matchpunten.asp, line 23
Regel 23 verwijst weer naar de SQL opdracht ;(

  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 22-08 19:34
mySQL="SELECT * FROM Matches where ID=" & MatchID & " "
Laat ik hier alles achter Matches weg dan doet ie het maar krijg ik natuurlijk teveel records terug. Moet dus bij die MatchID liggen :?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:42

gorgi_19

Kruimeltjes zijn weer op :9

En doe eens voor de grap:
Response.Write mySQL

En zet deze eens op je scherm en post deze output eens erbij...

En sowieso kan ook:
mySQL="SELECT * FROM Matches where ID=" & MatchID

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • El_BingO
  • Registratie: Juli 2001
  • Laatst online: 26-08 12:01
gorgi_19 schreef op 07 augustus 2002 @ 12:46:
En doe eens voor de grap:
Response.Write mySQL

En zet deze eens op je scherm en post deze output eens erbij...

En sowieso kan ook:

[...]
Idd, ik denk dat je de MatchID niet goed opvraagt, maar de string van het aanroepen meegeeft :?

Verwijderd

1. Test eens door alles te laten zien dus:
code:
1
mySQL="SELECT * FROM Matches"

2. Test eens met een waarde waarvan je weet dat hij er in zit dus:
code:
1
mySQL="SELECT * FROM Matches where ID=8" (of ID= '8'")

3. Als dat allemaal werkt doe je het met je vaiabele waarbij je 'm zeker meegeeft:
code:
1
2
MatchID = 8
mySQL="SELECT * FROM Matches where (ID='" & MatchID & "')"


Zo probeer ik het altijd. Oplossing ligt altijd ergens waar je 'm niet verwacht.

  • Slecht
  • Registratie: Februari 2001
  • Laatst online: 25-06-2024
waar haal je die MatchID vandaan? van een vorige pagina?
heb je deze waarde wel opgevraagd van de vorige pagina en gedefineerd als MatchID?
anders moet je een Response.Write("MatchID") ff neerzetten voor deze regel:

----Set RS = Conn.Execute(mySQL) (Dit is dus lijn 20)

zodat je kan zie of die een waarde heeft, en zo ja, welke waarde dat is..

  • ddkiller0900
  • Registratie: Juli 2001
  • Laatst online: 22-08 19:34
de 2 bovenste werketen JeroenDega, het is daarom dat ik twijfel aan die MatchID, maar die heeft het de hele tijd gedaan :?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:42

gorgi_19

Kruimeltjes zijn weer op :9

ddkiller0900 schreef op 07 augustus 2002 @ 12:51:
de 2 bovenste werketen JeroenDega, het is daarom dat ik twijfel aan die MatchID, maar die heeft het de hele tijd gedaan :?
Maar waarom gooi je die dan niet op het scherm, kan je gelijk controleren? :?
Beetje debuggen moet toch te doen zijn?

In de trant dan:

Response.Buffer = True

....

Response.write mySQL
Response.Flush
Set RS = ...
.....

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 11:48
We gaan hier niet in jouw plaats debuggen en jouw probleem oplossen.
Er is al herhaaldelijk gezegd dat je uw SQL string eens naar het scherm moet printen zodat je kunt zien wat er met die variable 'MatchId' aan de hand is...
GoT is geen helpdesk.

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.