2 Inserts in einem Rutsch mit Daten aus 1.Insert

Advantage Database Server

Moderator: Moderatoren

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

2 Inserts in einem Rutsch mit Daten aus 1.Insert

Beitrag von Manfred »

Ich möchte gerne in einem Rutsch 2 Inserts machen in 2 verschienden tabellen.
1) einen neuen Satz anhängen in Tabelle A, der mit einer Auto-ID angefügt wird.
2) einen neuen Protokollsatz anhängen in Tabelle B, der die ID des vorher angelegten Satzes aus TAbelle A darin speichert.

Wie komme ich an Die ID des neuen Satzes in Tabelle A?
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
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: 2 Inserts in einem Rutsch mit Daten aus 1.Insert

Beitrag von nightcrawler »

Trigger...der neue Datensatz steht in __new:

Code: Alles auswählen

create trigger ins_log on mytable after insert
begin
  insert into log select id, now(), user(), 'insert' from __new;
end;
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 852
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: 2 Inserts in einem Rutsch mit Daten aus 1.Insert

Beitrag von Marcus Herz »

oder wenn kein Trigger erwünscht, also 2 getrennte INSERT

Code: Alles auswählen

declare @id integer;
insert into ....;
// @id ist die zuletzt vergebene AUTOINC
@id = (select lastautoinc(statement) from system.iota);
insert into ....
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: 2 Inserts in einem Rutsch mit Daten aus 1.Insert

Beitrag von UliTs »

Bei 2 Insert aber auf jeden Fall mit Transaktionen arbeiten, damit keine Dateninkonsistenz eintreten kann.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: 2 Inserts in einem Rutsch mit Daten aus 1.Insert

Beitrag von Manfred »

wobei ich ja der meinung bin, das bei Transaktionen entweder alles oder gar nichts gespeichert wird!?
das ist mein script

Code: Alles auswählen

INSERT INTO schultraeger (id,nummer,bez,strasse,plz,ort,telefon,mail,rechnungschule,rechnungtraeger)
VALUES ('{#id#}','{#nummer#}','{#bez#}','{#strasse#}','{#plz#}','{#ort#}','{#telefon#}','{#mail#}',{#rechnungschule#},{#rechnungtraeger#});
INSERT INTO history (idsatz,programmteil,username,artdesvorgangs) VALUES ('{#id#}','schultraeger','{#username#}','neuer Satz')
und da war ein Fehler drin im 2. Insert und es wurde auch nichts gespeichert, weder der 1. noch der 2. Insert. Ich dachte es würde nur der Befehl nicht ausgeführt, der falsch ist....
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!!
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: 2 Inserts in einem Rutsch mit Daten aus 1.Insert

Beitrag von UliTs »

Manfred hat geschrieben: Mi, 21. Dez 2022 16:00...
Ich dachte es würde nur der Befehl nicht ausgeführt, der falsch ist....
So ist es meines Erachtens auch.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: 2 Inserts in einem Rutsch mit Daten aus 1.Insert

Beitrag von nightcrawler »

nur nicht, wenn er im gesamten übergebenen script einen Syntax-Fehler hat. Dann wird nichts gemacht, aber ein Fehler zurückgeliefert. Einfach mal im Architect probieren .... und in der Anwendung IMMER! (und nochmal !!!!!) die Rückgabewerte prüfen.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Antworten