Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MS-SQL letzter Datensatz (https://www.delphipraxis.net/32925-ms-sql-letzter-datensatz.html)

Peeters 29. Okt 2004 17:08


MS-SQL letzter Datensatz
 
Hallo,

wie kann ich nach einen SQL-Execute, die letzte automatisch hochgezählte Nr. von einen Datensatz herrausbekommen?

Bei meiner alten Datenbank(ADS) ging das mit "LastAutoincVal".

Vielen Dank im voraus.

Jelly 29. Okt 2004 17:18

Re: MS-SQL letzter Datensatz
 
Was für ein SQL-Execute... Rufst du eine SP auf, oder schreibst du was direkt in eine Tabelle mittels insert.

Vielleicht meinst du das:
SQL-Code:
SELECT @@IDENTITY AS 'Identity'
Gruß

Peeters 29. Okt 2004 18:04

Re: MS-SQL letzter Datensatz
 
Zitat:

Zitat von Jelly
Was für ein SQL-Execute... Rufst du eine SP auf, oder schreibst du was direkt in eine Tabelle mittels insert.

Ich übergebe den SQL-String an ADOCommand. Und möchte nun den Wert aus dem Feld "NrLFN" auslesen/erfragen, da in diesen Feld der Wert durch den SQL-Server automatisch erhöht wird. Wie mach ich das?

Gruß

Jelly 29. Okt 2004 18:16

Re: MS-SQL letzter Datensatz
 
Hallo,

eigentlich würd mich mal dein SQL String interessieren. Was soll ich so sagen :gruebel:

Peeters 29. Okt 2004 20:17

Re: MS-SQL letzter Datensatz
 
Delphi-Quellcode:
CommandText := 'INSERT INTO WG (WGNR, WGBEZ, CREATETIME, CREATENAME, WGDELETE) VALUES ('+ QuotedStr(EditWGNr.Text) +', '+ QuotedStr(DBEditWGBez.Text) +', '+ Quotedstr(DateTimeToStr(now)) +', '+ QuotedStr(ccfg.benutzer) +', 0)';
und das Feld welches automatisch hoch zählt lautet "WGNRLFN", Typ "Int".

Gruß

Jelly 29. Okt 2004 20:20

Re: MS-SQL letzter Datensatz
 
OK, jetzt hab ichs gerafft...

Dann hast du eigentlich schon meine Antwort... Ein

SELECT @@IDENTITY AS 'Identity'

liefert dir nach dem Einfügen den aktuellen Wert

Peeters 29. Okt 2004 20:31

Re: MS-SQL letzter Datensatz
 
Jo, danke ich bin noch nicht lange bei MS-SQL dabei. Muss ich diese SELECT abfrage mit der normalen ADODataSet abfragen?

Jelly 29. Okt 2004 20:55

Re: MS-SQL letzter Datensatz
 
nimm ein 2. ADOQuery und schreib den SQL Befehl rein. Dann öffnest du die Datenmenge mit "Open" und liest die Spalte 'Identity' aus... Achte aber drauf, daß dein Insert Befehl und dein Auslesen in der gleichen Transaction abläuft.

Gruß,
Tom

Peeters 29. Okt 2004 21:02

Re: MS-SQL letzter Datensatz
 
Und da liegt das nächste Problem. Wie mache ich dass mit der Tranaktion?

Jelly 29. Okt 2004 21:17

Re: MS-SQL letzter Datensatz
 
Ich schlag mal vor, du ziehst dir erst mal ne gehörige Portion Grundwissen rein. Nur so als Tip.

Du hast doch deine ADOQuery an einem TADOConnection hängen. Mit
ADOConnection1.begintrans ;

startest du die Transaction,

mit ADOConnection1.committrans ;

schliesst du sie ab.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:51 Uhr.
Seite 1 von 2  1 2      

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