webForumDet fria alternativet

ID efter insert

ASP

10 svar · 436 visningar · startad av Sharkie

Medlem sedan okt. 20031 000 inlägg
Frågan#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.

Medlem sedan juni 200032 967 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

Medlem sedan apr. 20022 743 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.

Medlem sedan juni 200032 967 inlägg
#4

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

Medlem sedan apr. 20022 743 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

Medlem sedan juni 200032 967 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.

Medlem sedan okt. 20031 000 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 ;)

Medlem sedan okt. 20031 000 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.

Medlem sedan juni 200032 967 inlägg
#9

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

Mvh

Medlem sedan okt. 20031 000 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 ;)

Medlem sedan juni 200032 967 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)
261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)