Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Unterschiedliches Verhalten einer Abfrage unter Access / ADO (https://www.delphipraxis.net/106757-unterschiedliches-verhalten-einer-abfrage-unter-access-ado.html)

hirnstroem 16. Jan 2008 09:24

Datenbank: Access • Version: kA • Zugriff über: ADO

Unterschiedliches Verhalten einer Abfrage unter Access / ADO
 
'loha Folks,

wird untenstehende Abfrage direkt in Access ausgeführt, so wird jeder Datensatz, welcher für die Felder 'BuildingIDShutter1' und 'BuildingIDShutter2' einen anderen Wert als Null enthält, doppelt angezeigt respektive jeder Datensatz mit einem Wert in 'BuildingIDShutter1' oder 'BuildingIDShutter2' wird einzeln aufgelistet, was auch meine Absicht ist.

Führe ich dieselbe Abfrage in meiner Applikation über ADO aus, so wird mir jeweils nur ein Datensatz angezeigt, wo eigentlich zwei sein müssten und ich finde nicht heraus weshalb dies so ist.

Gibt es unter Umständen eine Option, welche, wenn aktiviert, solch doppelte Datensätze herausfiltert oder etwas in dieser Art?

Anbei noch die Abfrage:

SQL-Code:
SELECT *, BuildingIDShutter1 as ShutterBuilding
FROM
(Room INNER JOIN
(Floor INNER JOIN
(DeviceType INNER JOIN
(Building INNER JOIN
(Application INNER JOIN Device ON [Application].[ApplicationID] =[Device].[ApplicationID])
ON [Building].[BuildingID] =[Device].[BuildingIDShutter1])
ON [DeviceType].[DeviceTypeID] =[Device].[DeviceTypeID])
ON [Floor].[FloorID] =[Device].[FloorIDShutter1])
ON [Room].[RoomID] =[Device].[RoomIDShutter1])
WHERE
DeviceType LIKE :DeviceType
AND
Application LIKE :Application
AND
Building LIKE :Building
AND
Floor LIKE :Floor
AND
Room LIKE :Room
AND
Active = True
AND
BuildingIDShutter1 <> NULL
ORDER BY Building ASC, Floor ASC, Room ASC, Description ASC;

UNION ALL

SELECT *, BuildingIDShutter2 as ShutterBuilding
FROM
(Room INNER JOIN
(Floor INNER JOIN
(DeviceType INNER JOIN
(Building INNER JOIN
(Application INNER JOIN Device ON [Application].[ApplicationID] =[Device].[ApplicationID])
ON [Building].[BuildingID] =[Device].[BuildingIDShutter2])
ON [DeviceType].[DeviceTypeID] =[Device].[DeviceTypeID])
ON [Floor].[FloorID] =[Device].[FloorIDShutter2])
ON [Room].[RoomID] =[Device].[RoomIDShutter2])
WHERE
DeviceType LIKE :DeviceType
AND
Application LIKE :Application
AND
Building LIKE :Building
AND
Floor LIKE :Floor
AND
Room LIKE :Room
AND
Active = True
AND
BuildingIDShutter2 <> NULL
ORDER BY Building ASC, Floor ASC, Room ASC, Description ASC;
Grüsse
hirnstroem

hirnstroem 16. Jan 2008 13:27

Re: Unterschiedliches Verhalten einer Abfrage unter Access /
 
Die Sache hat sich erübrigt.

Es ist so, dass ein mehrfaches Vorkommen eines Parameters in Access kein Problem darstellt, über ADO hingegen keine grosse Beachtung findet. Wird ein Parameter mehrmals in der Abfrage verwendet, so muss dieser anscheinend jeweils einen anderen Namen als all die andern haben.

Grüsse
hirnstroem


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz