Ik zit met vreemd ado probleem.. Ik wil in een Delphi 7.0 applicatie zoeken in een MS-SQL database naar een patient. Hij moet eerst zoeken op patientid, maar het kan zijn dat deze niet opgegeven is (patientid = 0) en dan moet ie zoeken op geboortedatum. Dus ik heb een ADOQuery component met 2 parameters, paid van type ftInteger en gebdat van type ftDateTime. En als SQL had ik het volgende bedacht.
Als ik deze ADOQuery open krijg ik de foutmelding Incorrect syntax near '@P2'
!?
Waar komt deze foutmelding vandaan? Ik heb al vanalles geprobeert om het te verhelpen. De variabelen in SQL een ander naam geven, dus @a ipv @paid. Blokhaakjes om alle veldnamen in het where-gedeelte, dus [gebdat] ipv gebdat. Een alias voor de tabelnaam, dus "from patient p" en dan p.paid en p.gebdat. Maar niets helpt.. volgens mij is het gewoon een bug in ado componenten.
Ik ga het nu maar gewoon splitsen in 2 queries, de ene die zoekt op patientid en een aparte query die zoekt op geboortedatum, dus zonder declare en set enzo. Maar ik wil gewoon weten waarom mijn eerste oplossing niet werkt, en waar die vreemde foutmelding vandaan komt.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| declare @paid int declare @gebdat datetime set @paid = :paid set @gebdat :gebdat select * from patient where (paid = @paid) or ( (gebdat = @gebdat) and (@paid = 0) ) |
Als ik deze ADOQuery open krijg ik de foutmelding Incorrect syntax near '@P2'
Waar komt deze foutmelding vandaan? Ik heb al vanalles geprobeert om het te verhelpen. De variabelen in SQL een ander naam geven, dus @a ipv @paid. Blokhaakjes om alle veldnamen in het where-gedeelte, dus [gebdat] ipv gebdat. Een alias voor de tabelnaam, dus "from patient p" en dan p.paid en p.gebdat. Maar niets helpt.. volgens mij is het gewoon een bug in ado componenten.
Ik ga het nu maar gewoon splitsen in 2 queries, de ene die zoekt op patientid en een aparte query die zoekt op geboortedatum, dus zonder declare en set enzo. Maar ik wil gewoon weten waarom mijn eerste oplossing niet werkt, en waar die vreemde foutmelding vandaan komt.
mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider