webForumDet fria alternativet

select @@IDENTITY

3 svar · 398 visningar · startad av Gimbo

GimboMedlem sedan dec. 20001 630 inlägg
#1

Tja,

jag har följande sql sats i min asp kod:

SQL = "INSERT INTO tblSubmittedForms (FormID, SubmitDate) VALUES (" & FormID & ", getDate()) SELECT @@IDENTITY as 'identity'"
	response.write SQL
	set rsAdd = conn.Execute(SQL)
	AddSubmittedForm = rsAdd(0)
response.write "submitted form: "&AddSubmittedForm&"":response.end

men jag får följande felmeddelande:

Item cannot be found in the collection corresponding to the requested name or ordinal.

när jag kör sql satsen som skrivs ut i management studio så får jag ut ett värde som heter identity, men hur kommer det sig att jag får det felmeddelandet jag får? jag har även testat med

AddSubmittedForm = rsAdd("identity")

men det fungerar heller inte?? blir tokig snart

@ndersMedlem sedan juni 200026 914 inlägg
#2

Du ska inte ha apostrofer runt fältnamnet "identity", som i övrigt är ett reserverat ord.

Ditt största problem är dock att du faktiskt får två recordsets (det första är tomt och skapas av din insert-fråga), och du vill ha värdet från det andra. Därför, inled med SET NOCOUNT ON.

SQL = "SET NOCOUNT ON" & vbCrlf & _
      "INSERT INTO tblSubmittedForms (FormID, SubmitDate) VALUES (" & FormID & ", getDate())" & vbcrlf & _
      "SELECT @@IDENTITY"
	response.write SQL
	set rsAdd = conn.Execute(SQL)
	AddSubmittedForm = rsAdd(0)

Jag brukar ta för vana att separera delfrågorna med radbrytning, som du ser ovan.

GimboMedlem sedan dec. 20001 630 inlägg
#3

klockrent...tusen tack!!

LarsGMedlem sedan dec. 200012 465 inlägg
#4

Flyttas från ASP

Genererad på 362 ms · cache AV · v20260730165559-full.f96bc7eb