webForumDet fria alternativet

select @@identity

ASPur ASP

12 svar · 299 visningar · startad av Jacob

Medlem sedan dec. 2000503 inlägg
Frågan#1

Varför fungerar inte detta?

 
conn.execute(butik)
set butikid=conn.execute("select @@identity")
id=butikid(0)
Response.write(id)

Det kommer inga felmess och butik läggs verkligen till i databasen.

------------------
ja©ob

Medlem sedan juni 200032 967 inlägg
#2

Vad kör du för dbms?

------------------
Don't panic!

Medlem sedan dec. 2000503 inlägg
#3

ms sql 2000 server

------------------
ja©ob

Medlem sedan juni 200032 967 inlägg
#4

Ja, då borde det sannerligen fungera.

Jag antar att butik är en SQL-fråga? Hur ser den ut?

------------------
Don't panic!

Medlem sedan dec. 2000503 inlägg
#5

det fungerar när man kör det i Enteprise Manger

------------------
ja©ob

Medlem sedan dec. 2000503 inlägg
#6

Japp, det är inget fel på den.
typ:
insert into butik (namn, gata, postnummer, ort, userid, email) values('test', 'sdsss', 7897, 'kjhkj', 1, 'hej@da.se')

------------------
ja©ob

Medlem sedan juni 200032 967 inlägg
#7

Om du slänger ihop allt till en query då?

butik = "set nocount on" & vbcrlf & butik & vbcrlf & "select @@identity"
set butikid=conn.execute(butik)
id=butikid(0)
Response.write(id)

Mvh,

------------------
Don't panic!

Medlem sedan dec. 200012 464 inlägg
#8

Vad får du ut om du testar detta?

conn.execute(butik)
set butikid=conn.execute("select @@identity")
if isnull(butikid(0)) then
   response.write "null"
else
Response.write(butikid(0))
end if

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 2000503 inlägg
#9

@nders:
Nu fattar jag ingenting, det fungerade perfekt.

Vad gjorde jag för fel?

[Redigerat av Jacob den 28 nov 2001]

Medlem sedan juni 200032 967 inlägg
#10

Jag har tyvärr ingen aning. Det känns som att det du skrev helt klart borde fungera nämligen.

Man får testa lite omvägar/genvägar ibland. Jag föredrar iofs den query jag gav dig, eftersom det räcker med ett statement.

Mvh,

------------------
Don't panic!

Medlem sedan dec. 2000503 inlägg
#11

ok tack, men vad är det som du gör när du tar genvägen/omvägen

------------------
ja©ob

Medlem sedan juni 200032 967 inlägg
#12

Först och främst stänger jag av funktionen i SQL Server som säger "1 row(s) affected by last query". Den informationen får du nämligen normalt när du gör insert/update/delete i en tabell. Dock använder du den aldrig, och den här gången vill du inte ens ha den med, eftersom den så att säga 'kommer före' ditt recordset.

Lägger ihop den med radbrytning och de två frågor du ställde löst mot databasen.

Resultatet är samma sak som att i Query Analyzer skriva dina två frågor på varsin rad, exekvera frågan och hoppa över informationen om insert-resultatet.

Allt för att göra hela kittet i ett statement och vara helt säker på att du verkligen besitter samma connection som när du gjorde din insert.

Var jag tillräckligt oklar? ;)

Mvh,

------------------
Don't panic!

Medlem sedan dec. 2000503 inlägg
#13

Glasklart oklar ;) :h

Tack anders

------------------
ja©ob

135 ms totalt · 3 externa anrop · v20260731065814-full.19008ce9
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)