hej jag ska lägga in en nyhet som inne håller följande tabell och kod. de jag vill göra är att kunna hämta mitt id på en news jag presis lagt in.. tack på förhand Hej, för sql-server fungerar ju det där klockrent men går det verkligen att använda @@identity i access? Jag tror faktiskt att du får köra en select max(id) i nästa vända när du är klar med din insert. Pelle: >>Hej, för sql-server fungerar ju det där klockrent men går det verkligen att använda @@identity i access? tack johan.nån som vet vad som är fel här? gäller sql och byref
News
newsID
title
ingress
body
dates
userID
categoryID
template
newsActive
nyheten läggs in men sen när jag ska hämta ut newsID och återandvända de så hämtar den inte.
jag andvänder denna kod i min function.. den när den kommer till hasrows så hoppar den förbi
Public Shared Function AddNews(ByRef n As NewsItem) As Boolean
Dim sql As String = "insert into News (title, ingress, body, userID, dates, categoryID, template, newsActive) values (@title, @ingress, @body, @dates, @userID, @category, @template, @newsActive);"
Dim list As New List(Of OleDbParameter)
list.Add(New OleDbParameter("@title", n.Title))
list.Add(New OleDbParameter("@ingress", n.Ingress))
list.Add(New OleDbParameter("@body", n.Body))
list.Add(New OleDbParameter("@userID", n.User.UserID))
list.Add(New OleDbParameter("@dates", n.Dates))
list.Add(New OleDbParameter("@category", n.Category.CategoryID))
list.Add(New OleDbParameter("@template", n.Template))
list.Add(New OleDbParameter("@newsActive", n.NewsActive))
Dim myConn As OleDbConnection = Nothing
Try
myConn = New OleDbConnection(DataAccess.ConnectionString)
Dim myCommand As New OleDbCommand(sql, myConn)
For Each p As OleDbParameter In list
myCommand.Parameters.Add(p)
Next
myConn.Open()
myCommand.ExecuteNonQuery()
sql = "SELECT @@IDENTITY AS CreatedID FROM News;"
Dim reader As OleDbDataReader = myCommand.ExecuteReader(CommandBehavior.SingleResult)
If reader.HasRows Then
reader.Read()
n.NewsID = CInt(reader.Item(0))
reader.Close()
Return True
End If
Catch ex As System.Exception
Finally
If myConn IsNot Nothing Then
myConn.Close()
End If
End Try
Return False
End FunctionSv: nån som vet vad som är fel här? gäller sql och byref
Chansen är ganska liten att det är 2 poster som skapas exakt samtidigt om det är ett normalt system vill säga. Någon får rätta mig om jag har fel här rörande just access..Sv: nån som vet vad som är fel här? gäller sql och byref
Du har fel ang. Access! ;)
Zoran:
När du hämtar readern använder du ditt "gamla" command-objekt utan att sätta den nya sql-frågan. Du exekverar alltså inte SELECT @@IDENTITY... Annars bör det fungera på detta sätt. Jag skulle dock använt ExecuteScalar istället för en reader...
/JohanSv:nån som vet vad som är fel här? gäller sql och byref
Japp det fungerar , har fungerat sedan access 2000 eller något i den stilen..Sv:nån som vet vad som är fel här? gäller sql och byref
stämmer bra att jag glömde bort att sätta commantext till mitt nya sql.
pelle det funkar bra @@IDENTITY i access :)
tack för era svar..