Inhalte eines INSERT

Advantage Database Server

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Inhalte eines INSERT

Beitrag von Manfred »

ich muß aus einer Textdatei Daten in eine Tabelle importieren.
Die Textdatei ist so aufgebaut, das der erste Satz die DAten eine Mastertabelle enthält und dann 2-3 weitere Sätzen kommen können, die Werte für eine Kinddatei enthalten. Die masterdatei hat eine UUID, die automatisch vom ADS vergeben wird, wenn der Satz angehängt wird. Diese ID benötige ich aber dann um die weiteren Sätze in der Kinddatei zu speichern als Zuordnung für die Vaterdatei. Aber wie komme ich an die ID dran, die kennt ja wohl nur in dem Moment der ADS wenn gespeichert wird, aber dann ist sie ja in der Tabelle. Und den jeweils letzten angehängten Satz anspringen und auslesen geht ja wohl nicht, oder?
Die Übernahme programmiere ich in xBase++ und mit entsprechenden SQL Befehlen. Also Durchlauf und einlesen der Textdatei in xBase++ Speichern mit SQL Befehlen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Inhalte eines INSERT

Beitrag von Marcus Herz »

es gibt 2 Lösungsansätze:
1. du holt dir die ROWID des letzten Satzes und dessen UUID

Code: Alles auswählen

declare @rowid char(18);
declare @uuid char(16);
insert ....

// die row id des letzten inserts
@rowid = (select lastrowid() from system.iota);

// das ist die UUID des letzten Satzes
@uuid = (select uuidfield from tabelle where rowid = @rowid);
oder du erzeugst vorher die UUID und übergibst sie dem insert

Code: Alles auswählen

declare @uuid char(16);

@uuid = newid();
insert into tabelle (uuidfield, .....) values (@uuid, ....);



Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Antworten