AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Autincrement bei Access temporär deaktivieren
Thema durchsuchen
Ansicht
Themen-Optionen

Autincrement bei Access temporär deaktivieren

Ein Thema von woki · begonnen am 18. Okt 2003 · letzter Beitrag vom 18. Okt 2003
Antwort Antwort
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#1

Autincrement bei Access temporär deaktivieren

  Alt 18. Okt 2003, 11:27
Hallo,

ich knacke im moment an folgendem Problem:

Es gibt exakte Kopien von Access Tabellen in cds (Clientdataset) -Dateien. Aus diesen Tabellen soll wieder eine Acess-Datenbank rekonstruiert werden. Das ist soweit auch kein Problem, aber die Tabellen haben und brauchen Autoincrement Felder (Vorhandene Programme erwarten das).

Autoincrement Felder erlauben dem User nicht das Manipulieren ihrer Daten, und sobald einmal Daten in einer solchen Tabelle gelandet sind, Kann man eine Spalte nicht mehr nachträglich in eine Autoincrement Spalte verwandeln, was auch verständlich ist.

Jetzt aber der Clou: Von excel aus kann ich Daten in eine frische Tabelle importieren und dabei auch die Autoincrement Spalte wie gewünscht mit Daten aus der Exceltabelle füllen, von einer Delphianwendung aus gelingt mir das aber nicht.

Für Hilfe wäre ich sehr dankbar.

Grüsse
Woki
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#2

Re: Autincrement bei Access temporär deaktivieren

  Alt 18. Okt 2003, 12:35
Hallo woki,
hast Du mal geprüft, ob die Exceldaten des Autoincrement auch wirklich in die Access Datenbank übernommen werden? Nicht das Dir da Access bzw. Excel einen vorgaukelt.

Afaik exportiert Access die Daten nach dem Primary Key. Sollte jetzt dummerweise der Autoincrement auch Primary Key sein, dann stehen die Sätze in der richtigen Reihenfolge. Bei Aufbau der Datenbank wird das Feld aus Excel ignoriert und von Access neu durchgezählt. Was wiederum dazu führt, daß alles in Ordnung ist.

Solltest Du tatsächlich einen Autoincrement als Key haben, ist das schlecht, zumindest dann, wenn der Autoincrement auch einen Zeiger auf eine Detailtabelle darstellt. Damit ginge die Rekonstruktion dann vollkommen in die Hose.

Also prüf als erstes mal nach ob das wirklich stimmt, was beim importieren aus Excel passiert.

bye
Claus
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#3

Re: Autincrement bei Access temporär deaktivieren

  Alt 18. Okt 2003, 13:03
Hallo Duffy,

vielen Dank für die Warnung, aber das ist schon sehr gut geprüft, da es sich hier wirklich um eine sehr kritische Sache handelt. Also die Autoincremnetfelder werden als Schlüssel für refeerenzen anderer Tabellen verwendet, und ich habe eine Datenbank schon vor längerer Zeit auf dem beschrieben Weg rekonstruiert, ist nur eben zuviel handarbeit. Und die Id's müssen nicht nur innerhalb dieser Datenbank, sondern auch für die Synchronisation mit einer anderen Datenbank stimmen. Hätte ich da tatsächlich etwas übersehen, müßte es inzwischen fast unweigerlich so heftig geknallt haben...

Grüsse
Woki
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:47 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