[ASP ADO] Probleem bij INSERT in SQL-server 7

Pagina: 1
Acties:

  • jlrensen
  • Registratie: Oktober 2000
  • Laatst online: 05-08 22:47

jlrensen

plaatjes vullen geen gaatjes

Topicstarter
Hallo,

ik probeer met ASP wat informatie in een SQL-database te zetten. Het gaat om SQL-server7.

Ik heb de volgende code gebruikt:
code:
1
2
3
4
5
6
7
8
<%
const dbconnection = "Provider=SQLOLEDB;SERVER=sqlserver.provider.nl;UID=user;PWD=geheim;Database=database"
set conn = Server.CreateObject("ADODB.Connection")
set rs = createobject("adodb.recordset")
rs.open "INSERT INTO database (naam, adres, woonplaats)  VALUES ('mijnnaam', 'mijnadres', 'Utrecht')",dbconnection
rs.close
conn.close
%>

Dit geeft echter de volgende foutmelding:
code:
1
2
3
4
5
ADODB.Recordset error '800a0e78' 

Operation is not allowed when the object is closed. 

/Protected/0002/indbase.asp, line 96

regel 96 is de rs.close

de data staat daarna echter wel in de database.

Heeft iemand enig idee waar de fout vandaan komt, en vooral, hoe hij te voorkomen is?

Men moet het denken bijbrengen, niet wat al gedacht is. ~C. Gurlitt


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17-09 08:12

Crazy D

I think we should take a look.

Op dinsdag 30 oktober 2001 01:07 schreef jlrensen het volgende:
Hallo,
Hoi :)
Operation is not allowed when the object is closed.

/Protected/0002/indbase.asp, line 96 [/code]
regel 96 is de rs.close
Heeft iemand enig idee waar de fout vandaan komt
Zie de error :)
, en vooral, hoe hij te voorkomen is?
rs.Close weghalen :)

Een insert-query geeft geen records terug, dus je recordsetje is al geclosed als je rs.Close doet.
In dit geval kun je net zo makkelijk de Execute methode van je connectie object gebruiken, aangezien er geen records terugkomen is het zonde daar een recordset voor te gebruiken.

Exact expert nodig?


  • jlrensen
  • Registratie: Oktober 2000
  • Laatst online: 05-08 22:47

jlrensen

plaatjes vullen geen gaatjes

Topicstarter
Thankx, ik heb behalve rs.close ook conn.close weggehaald, en toen werkte het.

Men moet het denken bijbrengen, niet wat al gedacht is. ~C. Gurlitt


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17-09 08:12

Crazy D

I think we should take a look.

Op dinsdag 30 oktober 2001 01:21 schreef jlrensen het volgende:
ook conn.close weggehaald
Die moet je laten staan. Je maakt een connectie om te kunnen lullen met de database, die open je, dan moet je 'm ook weer sluiten (tenzij je thuis ook altijd alle deuren open laat :)).

Exact expert nodig?


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Op dinsdag 30 oktober 2001 01:34 schreef Crazy_D het volgende:

[..]

Die moet je laten staan. Je maakt een connectie om te kunnen lullen met de database, die open je, dan moet je 'm ook weer sluiten (tenzij je thuis ook altijd alle deuren open laat :)).
uhm, hij opent conn helemaal niet.
de code is dus van een behoorlijke ranzigheid (connectie-objectje aanmaken en die niet gebruiken, bah ;))

onderstaande is al een stukje beter:
code:
1
2
3
4
5
6
7
8
9
10
11
dim oConn, sQuery
const DB_CONNECTION_STRING = "Provider=SQLOLEDB;SERVER=sqlserver.provider.nl;UID=user;PWD=geheim;Database=database"

set oConn = Server.CreateObject("ADODB.Connection")
oConn.open DB_CONNECTION_STRING

sQuery = "INSERT INTO database (naam, adres, woonplaats)  VALUES ('mijnnaam', 'mijnadres', 'Utrecht')"
oConn.execute(sQuery)

oConn.close
set oConn = nothing

Today's subliminal thought is:


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
En gebruik is sprocs :)

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17-09 08:12

Crazy D

I think we should take a look.

Op dinsdag 30 oktober 2001 01:40 schreef Annie het volgende:
uhm, hij opent conn helemaal niet.
de code is dus van een behoorlijke ranzigheid (connectie-objectje aanmaken en die niet gebruiken, bah ;))
:D
Automatisme he.. connectie string... connectie object... dan zal 'ie 'm wel openen... :D

Exact expert nodig?

Pagina: 1