SQL lekérdezés csak az első feltételt veszi figyelembe

SQL lekérdezés csak az első feltételt veszi figyelembe
2005-12-20T16:48:01+01:00
2005-12-21T10:02:03+01:00
2022-10-28T10:30:58+02:00
Vectorsector
Üdv!

Adott a következő lekérdezés:

SELECT * FROM RAKTAR WHERE (IDNPART1=:vkod AND IDNT1>:seged) OR (IDNPART2=:vkod AND IDNT2>:seged) OR (IDNPART3=:vkod AND IDNT3>:seged) OR (IDNPART4=:vkod AND IDNT4>:seged) OR (IDNPART5=:vkod AND IDNT5>:seged)

A lekérdezés működik azaz csak részben. Csak az első feltételt veszi figyelembe /IDNPART1=:vkod AND IDNT1>:seged/, ha a második feltételt rakom előre akkor csak azt veszi figyelembe /IDNPART2=:vkod AND IDNT2>:seged/. Kérdés: Miért nem veszi figyelembe mind az 5 feltételt, miért mindig csak az elsőt. Hogyan tudom megoldani, hogy mindegyik feltételem vizsgálva legyen? (próbáltam zárójel nélkül is)
Ui: Delphi+ADO+Commandtext-et használok.

Üdv. Vectorsector
Mutasd a teljes hozzászólást!
Hogy adod meg a paramétereket?
A problémát valószínűleg az okozza, hogy a Parameters.Count az nem 2.
Egy lehetséges megoldás:


for i:=0 to Q.Parameters.Count-1 do if SameText(Q.Parameters[i].Name, 'vkod') then Q.Parameters[i].Value:=VKod else if SameText(Q.Parameters[i].Name, 'seged') then Q.Parameters[i].Value:=Seged;

Attila.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd