AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Nach insert aktuellen Datensatz herausfinden
Thema durchsuchen
Ansicht
Themen-Optionen

Nach insert aktuellen Datensatz herausfinden

Ein Thema von Jumpy · begonnen am 17. Feb 2011 · letzter Beitrag vom 17. Feb 2011
Antwort Antwort
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#1

Nach insert aktuellen Datensatz herausfinden

  Alt 17. Feb 2011, 10:59
Datenbank: Oracle • Version: 10g • Zugriff über: TADOQuery
Hallo,

hab eine Eingabemaske gebastelt, mit DBEdit-Feldern und kann damit schön meine Tabelle bearbeiten (Zeigt jeweils einen Datensatz an).
Hab nun einen Button neu erstellt, der meine Datenquelle in den Insert-Modus versetzt.
Ich geb die Daten ein und beim drücken auf einen Button speichern wird gepostet.

Das Problem ist nun, das die ID des Datensatze dabei automatisch per Trigger erstellt wird, d.h. in der Datenbank ist alles richtig angelegt. Aber in meiner Eingabemaske ist diese ID noch nicht sichtbar. Dies wäre erst nach einem Requery der Fall, aber dann zeigt meine Eingabemaske wieder auf den ersten Datensatz. Und da ich die ID nicht kenne, kann ich nicht über diese zum gerade erstellten Datensatz springen.

Kann mir mal jemand sagen, wo ich da einen Denkfehler mache? Das kann doch nicht so schwierig sein, wie mir das gerade vorkommt?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

AW: Nach insert aktuellen Datensatz herausfinden

  Alt 17. Feb 2011, 11:03
http://coding.derkeiler.com/Archive/.../msg00008.html
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Nach insert aktuellen Datensatz herausfinden

  Alt 17. Feb 2011, 11:59
Die Lösung schlägt, wie ich es verstehe, vor, gar nicht TADOQuery.Insert zu benutzen, sondern manuell einen Insert per SQL abzusetzen?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

AW: Nach insert aktuellen Datensatz herausfinden

  Alt 17. Feb 2011, 12:05
Ja, entweder so oder anschließend den aktuellen Wert der Sequence auszulesen.
Zitat:
Another alternative is to submit 2 queries - the first would be to retrieve
the sequence "nextval":

SELECT [sequence name].NEXTVAL as my_seq_nextval FROM dual

and the next would be the INSERT where you actually provide the
value you just SELECT'ed. It does involve an initial SELECT query to get
the value of the sequence nextval, but with this approach you don't need
to use the dbi last_insert_id.
[edit] Im zitierten Text macht er es andersherum: erst den nächsten Wert ermitteln, dann einfügen. Im Kern macht das aber keinen Unterschied, man muss lediglich darauf achten, dass das innerhalb derselben Transaktion geschieht. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 11:56 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