Nach SQL INSERT INTO jüngsten Datensatz (ID) finden

05/09/2007 - 08:08 von Thomas Hübner | Report spam
Hi Newsgroup

Ich bin zur Zeit an einer MiniApp (HTA) die ich eigentlich mit
Javascript schreibe. Da ich auch kein Problem mit VB Script Elementen
(bzw diese zu verwenden)habe stelle ich hier einfach mal meine Frage.

Warum liefert "SELECT @@Identity AS [lastOne] FROM Datenbank" genau
einen Datensatz mit rs!lastOne = 0? Ich kann Datesàtze inserten wie ich
will es kommt immer 0.

Ich weis, das in einem rs nach AddNew die ID bereits bekannt ist. Ich
will hier aber schreibenderweise nur mit SQL execute arbeiten und
recordsets weitestgehend vermeiden.

System:
Access MDB
App HTM(HTA) mit VBScript + Javascript
DAO36
 

Lesen sie die antworten

#1 Peter Fleischer
05/09/2007 - 08:52 | Warnen spam
Thomas Hübner wrote:
Hi Newsgroup

Ich bin zur Zeit an einer MiniApp (HTA) die ich eigentlich mit
Javascript schreibe. Da ich auch kein Problem mit VB Script Elementen
(bzw diese zu verwenden)habe stelle ich hier einfach mal meine Frage.

Warum liefert "SELECT @@Identity AS [lastOne] FROM Datenbank" genau
einen Datensatz mit rs!lastOne = 0? Ich kann Datesàtze inserten wie
ich will es kommt immer 0.

Ich weis, das in einem rs nach AddNew die ID bereits bekannt ist. Ich
will hier aber schreibenderweise nur mit SQL execute arbeiten und
recordsets weitestgehend vermeiden.

System:
Access MDB
App HTM(HTA) mit VBScript + Javascript
DAO36



Hi Thomas,
kann es sein, dass du zwischen INSERT und SELECT @@IDENTITY noch etwas
anderes machst?

Ich habe mal mit ADO getestet und kann kein Problem erkennen:

set cn = createobject("Adodb.connection")
with cn
.provider = "microsoft.jet.oledb.4.0"
.properties("data source") = "c:\me\vb6\test2k.mdb"
.open
end with
set cmd = createobject("Adodb.command")
with cmd
set .ActiveConnection = cn
.commandtext = "INSERT INTO Tab2(Feld2) VALUES('test')"
.execute
end with
with cmd
.commandtext = "SELECT @@IDENTITY AS [lastone]"
end with
set rs = createobject("Adodb.Recordset")
with rs
set .source = cmd
.open
end with
n = rs.fields("lastone")
WScript.Echo n


Viele Grüße

Peter

Ähnliche fragen