---
title: "Select @@identity"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/78683-select-identity"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Addeladde"
published: "2003-06-02T10:10:15.000Z"
updated: "2003-06-02T14:28:55.000Z"
replies: 9
views: 286
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/78683-select-identity"
---

# Select @@identity

## #1 — Addeladde, 2003-06-02T10:10Z

Varför får jag inget id efter insert?

```
		sqlString = "INSERT INTO Operators (O_CreateDate, O_Username, O_Password, O_Name, O_Icon, O_Email, O_Status, O_Feedback, O_TotalFeedback, O_TotalHandled, O_Activity) VALUES (" & _
			strDate & "," & _
			"'" & strInUsername & "'," & _
			"'" & strInPassword & "'," & _
			"'" & strInName & "'," & _
			"'" & strInIcon & "'," & _
			"'" & strInEmail & "'," & _
			"0,0,0,0,0)"

		objDB.Execute(sqlString)
		strSQL = "SELECT @@IDENTITY"
		Set ObjRS = objDB.execute(strSQL)
  		intOID = ObjRS(0)
		objDB.Close
```

Permalänk: https://www.webforum.nu/p/78683

## #2 — Addeladde, 2003-06-02T13:27Z

Får följande felmeddelande:

> Feltyp:
> Körningsfel i Microsoft VBScript (0x800A01A8)
> Objekt krävs.: 'objDB.Execute(...)'
> /konvercera/admin/clsOperators.asp, line 85

På denna kod. Den fetmarkerade raden är rad nummer 85

```
Dim sqlString, strDate, ObjRS

		sqlString = "INSERT INTO Operators (O_CreateDate, O_Username, O_Password, O_Name, O_Icon, O_Email, O_Status, O_Feedback, O_TotalFeedback, O_TotalHandled, O_Activity) VALUES (" & _
			strDate & "," & _
			"'" & strInUsername & "'," & _
			"'" & strInPassword & "'," & _
			"'" & strInName & "'," & _
			"'" & strInIcon & "'," & _
			"'" & strInEmail & "'," & _
			"0,0,0,0,0)"
		objDB.Execute(sqlString)
		Set ObjRS = objDB.execute("SELECT @@IDENTITY")
  		intOID = ObjRS(0)
```

Permalänk: https://www.webforum.nu/p/1072298

## #3 — @nders, 2003-06-02T13:30Z

Har du verkligen skapat connectionobjektet *objDb*?

Permalänk: https://www.webforum.nu/p/1072300

## #4 — Addeladde, 2003-06-02T13:34Z

Så här ser det ut:

```
Public objDB, objSettings

Set objDB = New DBObject
objDB.ConnectString = DBString
objDB.DBType = DBType

Set objSettings = New Real_Settings

Set objClear = New Real_ClearExpired
Set objClear = Nothing
```

Permalänk: https://www.webforum.nu/p/1072304

## #5 — @nders, 2003-06-02T13:37Z

Nu har jag inte en aning om vad allt det där betyder, men är objDB öppnat?

Vad innehåller variablerna DBType och DBString?

Permalänk: https://www.webforum.nu/p/1072307

## #6 — Addeladde, 2003-06-02T13:44Z

Det är riktigt klurigt för mig också, håller på mixtrar i redan befitlig kod och det är massor med olika includefiler med funktioner som anroppar funktioner i andra includefiler.

```
DBType = "Access"

' The Appropriate DSN or DSN-Less Connect String
DBString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & AccessDBPath & ";"
```

Permalänk: https://www.webforum.nu/p/1072310

## #7 — @nders, 2003-06-02T13:49Z

Ganska underligt sätt att skapa connectionobjekt på, och jag undrar om du inte måste ha med en .open någonstans, exempelvis:

```
Set objDB = New DBObject
objDB.ConnectString = DBString
objDB.DBType = DBType
objDB.Open
```

mvh

Permalänk: https://www.webforum.nu/p/1072317

## #8 — Addeladde, 2003-06-02T13:50Z

Det konstiga är att användaren läggs in i databasen men @@identity genereras inte.

När jag skapar en egen connection så funkar allt. Så det har definitivt med objdb att göra.

Permalänk: https://www.webforum.nu/p/1072318

## #9 — Addeladde, 2003-06-02T14:23Z

Mailade killen som skrivit koden och fick detta svar:

> objDB is a public object for a database abstraction class. There are several levels to the software, with most actual database work organized in classes. I would recommend you place your database work in the relevant class or create a new one to keep the code all organized in the same way.
> 
> About using the abstraction class, objDB.Execute is for executing a statement that returns nothing. That function will only execute and returns True/False for if the code was a success (no VBScript errors) or not (VBScript errors).
> 
> If you wish to open a recordset, you need to use the objDB.OpenRS function, passing first the recordset name and second the SQL statement. You will later need to close the recordset with objDB.CloseRS and close the database (but not the database abstraction class) with objDB.Close.
> 
> Ex:
> 
> sqlString = "SELECT @@IDENTITY"
> objDB.OpenRS objIdentRS, sqlString
> 
> If Not objIdentRS.EOF Then
> 	intIdent = objIdentRS(0)
> End If
> 
> objDB.CloseRS objIdentRS
> objDB.Close

Nu har jag försökt med detta:

```
		sqlString = "INSERT INTO Operators (O_CreateDate, O_Username, O_Password, O_Name, O_Icon, O_Email, O_Status, O_Feedback, O_TotalFeedback, O_TotalHandled, O_Activity) VALUES (" & _
			strDate & "," & _
			"'" & strInUsername & "'," & _
			"'" & strInPassword & "'," & _
			"'" & strInName & "'," & _
			"'" & strInIcon & "'," & _
			"'" & strInEmail & "'," & _
			"0,0,0,0,0)"
		objDB.Execute(sqlString)
		strSQL = "SELECT @@IDENTITY"
		objDB.OpenRS objhamtaIDRS, sqlString
		intOID = objhamtaIDRS(0)
```

Permalänk: https://www.webforum.nu/p/1072340

## #10 — Addeladde, 2003-06-02T14:28Z

Fått det att fungera nu också kanske jag ska säga

Permalänk: https://www.webforum.nu/p/1072348

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/78683-select-identity
