webForumDet fria alternativet

select @@identity

12 svar · 299 visningar · startad av Jacob

JacobMedlem sedan dec. 2000503 inlägg
#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

@ndersMedlem sedan juni 200032 969 inlägg
#2

Vad kör du för dbms?

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

JacobMedlem sedan dec. 2000503 inlägg
#3

ms sql 2000 server

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

@ndersMedlem sedan juni 200032 969 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!

JacobMedlem sedan dec. 2000503 inlägg
#5

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

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

JacobMedlem 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

@ndersMedlem sedan juni 200032 969 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!

LarsGMedlem 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

JacobMedlem 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]

@ndersMedlem sedan juni 200032 969 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!

JacobMedlem 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

@ndersMedlem sedan juni 200032 969 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!

JacobMedlem sedan dec. 2000503 inlägg
#13

Glasklart oklar ;) :h

Tack anders

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

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