![]() |
Datenbank: Access • Version: 2007 • Zugriff über: TADO
Inhalt der PK-Spalte auf Integrität prüfen
Hallo,
ich bin dabei ein Import- und Exportprogramm zu schreiben, mit dessen Hilfe sich bestimmte Datensätze zwischen Datenbanken hin- und herschieben lassen.. Da die Datenbanken sich je nach Versionsnummer des Programms im Aufbau unterscheiden können, wird an jeder Tabelle vor dem Import eine Strukturprüfung ausgeführt. Inzwischen bin ich auf das Problem gestoßen, dass beim Import eines Datensatzes dieser ja einen schon vorhandenen Primärschlüssel besitzen kann. Sind 2 Zeilen mit dem gleichen Primärschlüssel vorhanden, so soll einfach eine der beiden gelöscht werden. Ich weiß allerdings nicht wie ich die Sache angehen soll. Am einfachsten wäre es glaube ich beim fehlerhaften Kopieren die Exception abzugreifen. Gibt es vielleicht noch elegantere Lösungen? Gruß Franz |
Re: Inhalt der PK-Spalte auf Integrität prüfen
Bei Access ist es schwer, bei richtigen DBMS gibt es MERGE, Insert or Update o.ä. Hierbei werden vorhandene DS upgedatet
|
Re: Inhalt der PK-Spalte auf Integrität prüfen
Die DB kann ich mir allerdings nicht aussuchen. :(
|
Re: Inhalt der PK-Spalte auf Integrität prüfen
Access ist nunmal kein richtiges DBMS (imho).
Du könntest das per Makro machen oder in einer externen Programmiersprache: Erst Abfragen ob ID vorhanden (
SQL-Code:
)
select count(id) from <Tabelle> where id = :id;
Dann entsprechend Insert/Update durchführen) |
Re: Inhalt der PK-Spalte auf Integrität prüfen
Hm ja das klingt doch schonmal hilfreich.
Ich prüfe also, ob der Schlüssel in der einen DB schon vorhanden ist, was im besten Fall nicht so ist, im schlechtesten Fall würde ich ihn einfach löschen und dann den Datensatz kopieren. Mal schauen, ob ich das so hinkriege. Vielen Dank :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 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