Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Wie erstelle ich IDs (https://www.delphipraxis.net/126124-wie-erstelle-ich-ids.html)

Morphie 18. Dez 2008 13:35


Wie erstelle ich IDs
 
Hallo liebe DPler!

Ich habe die Aufgabe, ein XML-Dokument zu interpretieren, um den Inhalt anschließend in eine SQL-Datenbank zu schreiben.
Es handelt sich dabei um das GAEB-Format

Dort findet man nun Inhalte wie:
XML-Code:
<BoQBody>
  <Remark ID="DIEKBDBA">
    <Description>...</Desciption>
  </Remark>
  <BoQCtgy ID="DJEJAAAA" RNoPart="1">
    <LblTx>...</LblTx>
    <BoQBody>...</BoQBody>
  </BoQCtgy>
  <BoQCtgy ID="DJEKAAAA" RNoPart="1">
    <LblTx>...</LblTx>
    <BoQBody>...</BoQBody>
  </BoQCtgy>
  <BoQCtgy ID="DJELAAAA" RNoPart="1">
    <LblTx>...</LblTx>
    <BoQBody>...</BoQBody>
  </BoQCtgy>
</BoQBody>
Nun meine Frage: Wie kommt man auf die IDs? Werden die automatisch generiert? Und wenn ja, wie?

Freue mich über eure Antworten.

Morphie

mkinzler 18. Dez 2008 13:49

Re: Wie erstelle ich IDs
 
Zuerst einmal welches DBMS? Die automatische Vergabe von Schlüsselwerten wird nämlich nicht gleich gehandelt. Einige DBMS bieten die Möglichkeit Felder direkt dafür zu konfigurieren (autoincrement, counter, ...). Im Standard gibt es dafür Sequenzen.

Morphie 18. Dez 2008 14:02

Re: Wie erstelle ich IDs
 
DBMS? Also ich les es in eine JET-Datenbank ein. Aber das hat damit ja nichts zutun, das ist ja von dem XML-Format unabhängig.
Die XML-Daten kommen dann aus verschiedenen Programmen von verschiedenen Unternehmen... Ich muss diese dann halt analysieren und in unser Programm (JET-DB) einlesen.

Dazu verwende ich den Microsoft XML Parser. Den Import habe ich soweit schon fertig, nur brauch ich nun für den Export genau die gleichen Schlüssel, wie die von der Ursprungsdatei, damit die Fremdunternehmen das wieder genau zuordnen können.

Beispiel:
Ich erhalte von Unternehmen XY eine XML-Datei. Darin befinden sich Artikeltexte, Mengen und Einheit.
Ich trage dort nun meine Preise für die einzelnen Artikel ein und muss daraus eine neue XML-Datei generieren. Darin befinden sich dann Mengen und Preise.

Damit Unternehmen XY diese Preise dann wieder den Ursprungsartikeln zuordnen kann, müssen die IDs der beiden Austauschphasen gleich sein.

Xong 18. Dez 2008 14:07

Re: Wie erstelle ich IDs
 
Zitat:

Zitat von Morphie
Damit Unternehmen XY diese Preise dann wieder den Ursprungsartikeln zuordnen kann, müssen die IDs der beiden Austauschphasen gleich sein.

Ich versteh dein Problem nicht.
Speichere diese IDs doch einfach mit ab...

Morphie 18. Dez 2008 14:18

Re: Wie erstelle ich IDs
 
Wär ne Möglichkeit.
Mich intressierte nun nur, wie diese generiert werden. Denn wenn ich nun selbst so eine Datei herausgeben möchte, damit andere Unternehmen die Preise eintragen (also genau umgekehrt), dann sollte ich ja auch irgendwelche IDs angeben. Da ich aber wirklich alles (jeden Knoten, jedes Attribut,...) selbst anlege und somit die Datei selbst aufbaue, ohne Fremdprogramme oder DBMSs, weiß ich nicht, wie ich solche IDs "errechne".

Denn
DIEKBDBA
DJEJAAAA
DJEKAAAA
DJELAAAA
...

sieht schon ziemlich errechnet aus.

himitsu 18. Dez 2008 14:22

Re: Wie erstelle ich IDs
 
Ich versteh es erhlich gesagt auch nicht, du hast die IDs doch schon, dann speichere sie mit ab und trage sie beim Erstellen doch wieder mit in die neue XML ein.

Selbst wenn du rausbekommst wie man diese IDs berechnet, falls sie überhaupt irgendwie berechnet wurden und nicht einfach nur 'ne Art fortlaufende Zählung sind, dann brauchst du sie doch nicht zu berechnen, da sie doch schon vorhanden sind?

Morphie 18. Dez 2008 14:34

Re: Wie erstelle ich IDs
 
Also:
Die Ursprungsdatei (Nennt sich D83, bzw. D81) erstellt der Ausschreiber
Die Antwortdatei (Nennt sich D84) erstellt dann ein Handwerker oder ähnliches.

Der Ausschreiber schreibt eben die Mengen, Texte usw. aus.
Der Handwerker antwortet nun mit den dazugehörigen Preisen und Mengen.

Wenn ich nun selbst Ausschreiber sein will, muss ich mir erst mal selbst so eine Datei erstellen. Da habe ich also keine IDs, die ich irgendwie übernehmen könnte... Ich erstell sie ja selbst...


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 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