![]() |
Datenbank: Access • Version: kA • Zugriff über: ADO
Datensatz mit Zwischentabelleneinträgen kopieren
'loha Folks,
Die Tabellen Device (DeviceID) und Key (KeyID) stehen über die Zwischentabelle Device_Key (DeviceID, KeyID, Access) miteinander in Beziehung. Beim Kopieren eines Datensatzes aus der Tabelle Device, sollen sämtliche Einträge in der Zwischentabelle Device_Key mitkopiert werden. Es geht darum, Zutrittsberechtigungen für Schlüssel beim Kopieren eines Gerätes beizubehalten. Ich - unwissender - würde nun mit einer Abfrage sämtliche Einträge aus der Zwischentabelle mit einer gewissen DeviceID ermitteln und diese anschliessend in einer Schleife abarbeiten, wobei mit abarbeiten Kopieren, neuer Datensatz Einfügen, Speichern gemeint ist. Macht das Sinn? Grüsse hirnstroem |
Re: Datensatz mit Zwischentabelleneinträgen kopieren
müsste direkt über
SQL-Code:
gehen
insert into ... select
|
Re: Datensatz mit Zwischentabelleneinträgen kopieren
Vielen Dank mkinzler, das hat mich ein Stück weitergebracht.
Ich frage mich nur noch, wie anstatt der DeviceID des kopierten Datensatzes, jene des neuen Datensatzes als Parameter mitgegeben werden kann. SQL sieht bisher in etwa folgendermassen aus:
SQL-Code:
Nun möchte ich analog zu :CopyDeviceID noch die :NewDeviceID mitgeben, komme aber nicht darauf wie das geht.
INSERT INTO Device_Key
SELECT DeviceID, KeyID, LockedAccess FROM Device_Key WHERE DeviceID = :CopyDeviceID Grüsse hirnstroem |
Re: Datensatz mit Zwischentabelleneinträgen kopieren
SQL-Code:
INSERT INTO Device_Key
SELECT DeviceID, :NewDeviceID, LockedAccess FROM Device_Key WHERE DeviceID = :CopyDeviceID |
Re: Datensatz mit Zwischentabelleneinträgen kopieren
Argh, und ich habe es genau so machen wollen. Leider vergass ich in der Tabelle Device zuerst ein Gerät mit entsprechender ID, nämlich jener, welche ich in Device_Key einzufügen versucht habe, zu erstellen.
So sieht es jetzt aus:
SQL-Code:
Vielen Dank!
INSERT INTO Device_Key(DeviceID, KeyID, LockedAccess)
SELECT :NewDeviceID, KeyID, LockedAccess FROM Device_Key WHERE DeviceID = :CopyDeviceID |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz