webForumDet fria alternativet

ID efter insert

10 svar · 434 visningar · startad av Sharkie

SharkieMedlem sedan okt. 2003865 inlägg
#1

Hoj!

Ett litet problem i ASP-stugan här, blir knäpp så det står härliga till ;)

Jag försöker med
Kod:
Set rstLastID = Conn.Execute("SELECT @@IDENTITY")
lngLastID = rstLastID(0)
Set rstLastID = Nothing

(funnen här på aspsidan) och försöka få fram det senaste IDt.
Innan har jag en INSERT-SQL och använder Conn.execute(SQL),,128
därefter kommer den koden.

Kruxxet (eller?) är att jag vill ta ut UserID (är primärnyckel) som innehåller räknare med {1209-912kjds-asödj-9u2dkj-aösdjk} etc...
Går det/går det inte på nått vis?

Det ska skickas med ett mail direkt och det ger då 0 hela tiden men i databasen står det ett nytt ID och all information jag skapat precis innan.

Använder Access.

Har efter besök på annat forum testat "vanlig" databaskoppling och med JET (ODBC och OleDB) men ger fortfarande bara 0 som resultat.

@ndersMedlem sedan juni 200026 914 inlägg
#2

Du får ha en räknare och hämta ut den enligt metoden du beskriver. Sedan är det bara att ställa en ny SQL-fråga med ID:t som villkor. Om inte det går att göra något sånt här, kanske:

SELECT UserID FROM tabellen WHERE ID = @@IDENTITY

Har inte testat, så jag vet inte riktigt, men prova kan du ju alltid.

mvh

PoffeMedlem sedan apr. 20022 935 inlägg
#3

Möjligt att @nders kod fungerar men detta vet jag gör det iallafall :)

Set objRs = objCon.Execute("Select @@identity")
	lngID = objRs(0)
objRs.Close: Set objRs = Nothing

Kör detta direkt efter din Insert.

@ndersMedlem sedan juni 200026 914 inlägg
#4

Poffe, det är ju den koden Sharkie använder idag, så det tillför inte så mycket. ;)

PoffeMedlem sedan apr. 20022 935 inlägg
#5

Hehe, oj :r

Den koden fungerar i alla fall utmärkt för mig, så varför den inte fungerar för Sharkie vette fan :l

@ndersMedlem sedan juni 200026 914 inlägg
#6

Poffe skrev:

så varför den inte fungerar för Sharkie vette fan :l

Det beror på att den endast returnerar ID för en vanlig heltalsräknare, inte replikerings-ID.

SharkieMedlem sedan okt. 2003865 inlägg
#7

Replikerings-ID - där va ordet :P

Jag ska pröva @nders kod lite senare i eftermiddag/kväll, återkommer då när det inte funkar ;)

SharkieMedlem sedan okt. 2003865 inlägg
#8

Felmeddelande skrev:

Syntaxfel (operator saknas) i frågeuttrycket 'ID = @@IDENTITY'.

:OO

La till en ny kolumn med ID, satte den som räknare med långt heltal och lät även den vara Primärnyckel.
Ovanstående fel uppkommer.

IDet = "SELECT UserID,ID FROM tabell WHERE ID = @@IDENTITY"

Så är min kod.

@ndersMedlem sedan juni 200026 914 inlägg
#9

Då får du nog göra som jag skrev ovan, dvs innan "om inte".

Mvh

SharkieMedlem sedan okt. 2003865 inlägg
#10

Det hänger jag inte med på faktiskt riktigt... förklara gärna lite närmare. Ska sätta mig i morgon igen och försöka igen, kanske hinner lösa det innan nån reagerar här ;)

@ndersMedlem sedan juni 200026 914 inlägg
#11

SQL-fråga för att hämta ut räknarvärdet:

strSQL = "SELECT @@IDENTITY"
set objRS = objConn.Execute (strSQL)

SQL-fråga med räknarvärdet som villkor:

strSQL = "SELECT * FROM tabellen WHERE ID = " & objRS(0)
Genererad på 395 ms · cache AV · v20260730165559-full.f96bc7eb