[ASP]: Syntaxisfout door komma in query...

Pagina: 1
Acties:
  • 158 views sinds 30-01-2008
  • Reageer

  • J.apiooo
  • Registratie: Oktober 2000
  • Laatst online: 21-07 10:36
Ola,

Dit is een fout waar ik echt niet uitkom. Het gaat hierbij om de volgende SQL statements waarbij ik eerst een laagste tijd bij een bepaalde (Formule 1)-baan zoek. Dat lukt prima met als resultaat bijvoorbeeld 89,390 (in werkelijkheid dus 1m29:390). Dit komt voort uit de eerste SQL-query:

------------------------
Set oRs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT TRack, Min(QualificationTime) AS MinOfTijd FROM tabResults2001qual WHERE Team = 'Formula1World.net GP' GROUP BY Track;"
oRs.open SQL, Dataconn, 1, 2


FastestTimeByTrack = oRs("MinOfTijd")
------------------------

Bij de tweede wil ik de naam van de rijder en de baan erbij zoeken. Hier gaat het in de query mis. In deze query haal ik de naam en de baan op waarbij de tijd de tijd is die uit de eerste query kwam. Is logisch... alleen omdat er een komma in de tijd staat krijg ik de volgende foutmelding:


Microsoft JET Database Engine fout '80040e14'

Syntaxisfout (komma) in query-expressie 'QualificationTime=89,39'.

/fwn-statistics.asp, regel 15


Hoe kan ik dit nu oplossen??? Op de één op andere manier moet die komma onschadelijk worden gemaakt in de query. Ik heb het gevoel dat dit niet zo ingewikkeld moet zijn (door 'm om te vormen bv), maar daar kom ik niet uit. Heeft iemand dit probleem al eerder bij de horens kunnen vatten en de oplossing gevonden??

Hieronder de tweede query waar het dus fout gaat door de komma:

-------------------
Set oRs2 = Server.CreateObject("ADODB.Recordset")
SQL2 = "SELECT ID, Rijder, Track, QualficationTime FROM tabResults2001qual WHERE QualificationTime="& FastestTimeByTrack
oRs2.open SQL2, Dataconn, 1, 2
-------------------

Jaap


Verwijderd

Hmm wat wil je omvormen dan? die komma helemaal weglaten ofzo? Dan gaat je query vast helemaal niet meer werken. Maar misschien zou je het eens kunnen proberen met quotes?

Zoiets:

SQL2 = "SELECT ID, Rijder, Track, QualficationTime FROM tabResults2001qual WHERE QualificationTime= '" & FastestTimeByTrack & "'"

Succes dermee ;)

  • J.apiooo
  • Registratie: Oktober 2000
  • Laatst online: 21-07 10:36
Nope... werkt nog steeds niet. Heeft er iemand inmiddels een idee?? Dank voor je reactie, maar dat was niet de uitweg lijkt het.

Jaap


  • Yoda
  • Registratie: December 1999
  • Laatst online: 07-11-2025

Yoda

Can you feel it?

In principe zou de optie van Klaas_Kippegaas moeten werken.

van wat voor een data type is het veld waar het om gaat??

doe eens:
code:
1
response.write FastestTimeByTrack

om te checken of hij wel echt een waarde heeft
zo niet check dan van te voren ff op
code:
1
2
3
4
5
if not oRs.EOF then
  FastestTimeByTrack = oRs("MinOfTijd")
else
  error
end if

doe eens:
code:
1
response.write "-" & SQL2 & "-"

om te checken of je sql query wel daadwerkelijk goed opgebouwd is.

na deze response.writes zou ik dan ff een response.end zetten zodat je programma daar stopt, is wel zo handig met testen,...

  • J.apiooo
  • Registratie: Oktober 2000
  • Laatst online: 21-07 10:36
Ik zit nu weer met dit probleem... Dit is de query:

SQL4 = "SELECT ID, Driver, [Q Time] FROM HISTORIE_GP3CHAMPS WHERE [Q Time] = "& oRs("MinQ") &""
Set oRs4 = Server.CreateObject("ADODB.Recordset")
oRs4.open SQL4, oConn, adopenstatic


en de foutmelding.... veroorzaakt door de komma in de tijd (die voortkomt uit oRs("MinQ")):

Microsoft JET Database Engine fout '80040e14'

Syntaxisfout (komma) in query-expressie '[Q Time] = 87,171'.

/site/gp3champs2002/2002-general-statistics-qualrecords.asp, regel 149


Iemand suggesties?

Jaap


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 10-09 14:16

Crazy D

I think we should take a look.

Vervang de , eens door een . en probeer het dan nog eens.

Exact expert nodig?

Pagina: 1