edebroMedlem sedan aug. 2001261 inlägg För att välja ut räknaren (ID:t) i SQL Server gör man ju så här:
SQL = "set nocount on INSERT INTO tabell (Column1, Column2) VALUES ('hej', 'då') select @@identity"
Men hur gör man i MySQL, jag märkte att denna kod inte fungerade.
Väldigt tacksam för svar!
@ndersMedlem sedan juni 200032 969 inlägg SELECT last_insert_id()
(Prova att söka annars, har diskuterats mången gång på wF)
Mvh,
edebroMedlem sedan aug. 2001261 inlägg Jag har nu denna koden:
' öppna databasen
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open = Application("db_databaskopplingen")
' släng in ett nytt foruminlägg
strSQL = "INSERT INTO forumposts (cPostedBy, cHeadline, cMessage, cForumID, cDate, cLastPost, cLastPostName, cNotification, cViewed, cAnswered)"
strSQL = strSQL & " VALUES ('" & Session("userName") & "','" & strHeadline & "','" & strMessage & "'," & intForumID & ",'" & dateDatum & "','" & dateDatum & "','" & Session("userName") & "','" & strNotification & "','','" & Session("userID") & "')"
Connect.Execute(strSQL)
'Response.Write strSQL
' ta ut senaste ID
Set RecSet = Connect.Execute("SELECT LAST_INSERT_ID()")
readID = RecSet(0)
Men detta fungerar inte. Jag har sökt här på webForum och detta är koden jag fick fram.
En grej jag undrar är hur detta kan fungera när man inte specifierar vilken tabell i databasen det gäller, bör inte SQL-satsen se ut så här:
SELECT LAST_INSERT_ID() FROM tabellen
Eller? Jag har givetvis också provat detta utan resultat. Variabeln readID sätts bara till noll (0) i båda fallen.
Nån som har en bra lösning?
LarsGMedlem sedan dec. 200012 464 inlägg Det ärså det är tänkt att fungera. Du måste göra selecten direkt efter insert på en tabell med en auto_increment kolumn och det skall inte vara något tabellnamn med.