---
title: "Vad är det för fel...???"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/7838-vad-är-det-för-fel"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "devotion"
published: "2001-01-22T22:01:00.000Z"
updated: "2001-01-24T00:19:00.000Z"
replies: 3
views: 328
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/asp/7838-vad-är-det-för-fel"
---

# Vad är det för fel...???

## #1 — devotion, 2001-01-22T22:01Z

Hej!
Håller på och gör en CD-databas. Har skrivit lite kod som jag inte får att fungera... Funktionen ska i a f vara så här:
När man registrerar en ny skiva vill jag att scriptet kollar om artisten finns med i tabellen artist. Finns artisten med ska Recordsetet bara returnera artist_id. Finns artisten inte med ska artisten läggas till som en ny post.

Eftersom tabellerna relarterar till varandra ska det aktuella artist_id läggas in i tabellen album, där även annan albuminfo ska läggas in. Låter det krångligt??  Skicka i alla fall med koden:

```
 
<%@ Language = VBScript %>
<% Option Explicit %>
<!--#include virtual="\adovbs.inc"-->

<%
Dim objConn

Set objConn = Server.CreateObject("ADODB.Connection")

objConn.ConnectionString =  "DSN=mydb"
objConn.Open

Dim strAlbum_namn
Dim strArtist_namn

strAlbum_namn = Request.Form("album_namn")
strArtist_namn = Request.Form("artist_namn")

Dim strSQL
Dim strSQL2
Dim strSQL3
Dim strSQL4
Dim objRS
Dim objRS2
Dim objRS3
Dim objRS4

Set objRS = Server.CreateObject("ADODB.Recordset")
Set objRS2 = Server.CreateObject("ADODB.Recordset")
Set objRS3 = Server.CreateObject("ADODB.Recordset")
Set objRS4 = Server.CreateObject("ADODB.Recordset")

strSQL = "SELECT artist_name FROM artist WHERE artist_name = '" & strArtist_namn & "'"
objRS.Open strSQL, objConn, adOpenDynamic, adLockPessimistic, adCMDText
If objRS.EOF Then

strSQL2 = "INSERT INTO artist(artist_name) VALUES('" & strArtist_namn & "')"
objRS2.Open strSQL2, objConn, adOpenDynamic, adLockPessimistic, adCMDText

Else

strSQL3 = "SELECT artist_id FROM artist WHERE artist_name = '" & strArtist_namn & "'"

objRS3.Open strSQL3, objConn, adOpenDynamic, adLockPessimistic, adCMDText

Dim artist_id

artist_id = objRS3("artist_id")
Response.Write("artist_id")
End If

strSQL4= "INSERT INTO album(album_name, artist_id) Values('" & strAlbum_namn & "', '" & artist_id & "')"
objRS4.Open strSQL4, objConn, adOpenDynamic, adLockPessimistic, adCMDText

objRS.Close
objRS2.Close
objRS3.Close
objRS4.Close
objConn.Close
Set objRS = Nothing
Set objRS2 = Nothing
Set objRS3 = Nothing
Set objRS4 = Nothing
Set objConn = Nothing

%>
```

 

När jag kör scriptet får jag följande felmeddelande:
Feltyp:
ADODB.Recordset (0x800A0E78)
Åtgärden är inte tillåten när objektet är stängt.
/add.asp, line 56

Vad är det för fel???

/Henrik

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

## #2 — emission, 2001-01-22T22:33Z

Det beror på at tdu stänger ett recordset som aldrig öppnas (objRS3)

Du behöver inte skapa några recordset när du gör operationer som inte returnerar något (INSERT/UPDATE/DELETE).

```
<%@ Language = VBScript %>
<% Option Explicit %>
<%
Dim objConn

Set objConn = Server.CreateObject("ADODB.Connection")

objConn.ConnectionString = "DSN=mydb"
objConn.Open

Dim strAlbum_namn
Dim strArtist_namn
Dim artist_id
strAlbum_namn = Request.Form("album_namn")
strArtist_namn = Request.Form("artist_namn")

Dim strSQL
Dim objRS

Set objRS = Server.CreateObject("ADODB.Recordset")

strSQL = "SELECT artist_id,artist_name FROM artist WHERE artist_name = '" & strArtist_namn & "'"
objRS.Open strSQL, objConn, 3, 3
If objRS.EOF Then
	objRS.AddNew
	objRS("artist_name")=strArtist_namn
	objRS.Update
end if
artist_id=objRS("artist_id")

objRS.close

strSQL= "INSERT INTO album(album_name, artist_id) Values('" & strAlbum_namn & "', " & artist_id & ")"

objConn.Execute strSQL

objConn.Close
Set objRS = Nothing
Set objConn = Nothing

%>
```

\[r\]artist_id borde vara en räknare, så inga enkelfnuttar runt den....\[/r\]

\[Redigerat av emission den 22 jan 2001\]

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

## #3 — devotion, 2001-01-23T23:21Z

Hej!
Tackar ödmjukast!!  Nu fungerar det perfekt!!!!

/Henrik

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

## #4 — emission, 2001-01-24T00:19Z

Gött!

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/7838-vad-är-det-för-fel
