[ASP] ADODB.RecordSet hergebruiken

Pagina: 1
Acties:

  • Krooswijk.com
  • Registratie: Mei 2000
  • Laatst online: 17-08-2024
hallo, in mijn code doe ik het volgende:
code:
1
2
3
4
5
Set ResultSet = Server.CreateObject("ADODB.Recordset")
ResultSet.CursorLocation = 3
ResultSet.Open SQLString, ObjConnection

... met SQLSTRing een juiste SELECT en ook een juiste ObjConnection

nu werkt dit goed, ik kan mooi de hele resultset uitlezen. nu wil ik echter na dit lezen bv een waarde ophogen en weer wegschrijven. en ook nog in een andere tabel een rij inserten.

nu heb ik dus twee correcte SQL strings geformuleerd (voor update en insert). bij het uitvoeren gaat het mis. als ik het als volgt doe krijg ik een foutmelding.
code:
1
2
3
4
5
ResultSet.Open SQLStringUpdate,ObjConnection

of

ResultSet.Open SQLStringInsert,ObjConnection

Dus op dezelfde resultset weer een open. ik kan me enigzins voorstellen dat het mis gaat, maar heb nog nergens een oplossing kunnen vinden.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 08:14

Crazy D

I think we should take a look.

Waarom voer je een insert of update query uit met een recordset? Die geeft toch geen recordset terug, dus kun je net zo makkelijk connectieobject.Execute gebruiken.
Buiten dat, als je een recordset opent, sluit, en een nieuwe query uitvoert, werkt dat gewoon. Zo hergebruik ik regelmatig recordsets zonder problemen.

Exact expert nodig?


  • TlighT
  • Registratie: Mei 2000
  • Laatst online: 22-03 10:40
Eerst de recordset weer sluiten voordat je hem opnieuw opent???
code:
1
ResultSet.Close

  • Krooswijk.com
  • Registratie: Mei 2000
  • Laatst online: 17-08-2024
zo (close en open) heb ik gedaan, maar toen gaf ie ook de foutmelding...

ik weet overigens wel dat een update/insert los staat van de resultset, maar ik vind dit een nette oplossing

zal het nog maareens gaan poberen dan

Verwijderd

Set ResultSet = Server.CreateObject("ADODB.Recordset")
ResultSet.CursorLocation = 3
ResultSet.Open SQLString, ObjConnection

..
..
..

Set ResultSet = nothing
Set ResultSet = Server.CreateObject("ADODB.Recordset")
RestultSet.CursorLocation = 3
ResultSet.Open SQLAndereString, ObjConnection

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 08:37

pistole

Frutter

Op donderdag 21 maart 2002 09:05 schreef KingLois het volgende:
Set ResultSet = Server.CreateObject("ADODB.Recordset")
ResultSet.CursorLocation = 3
ResultSet.Open SQLString, ObjConnection

..
..
..

Set ResultSet = nothing
Set ResultSet = Server.CreateObject("ADODB.Recordset")
RestultSet.CursorLocation = 3
ResultSet.Open SQLAndereString, ObjConnection
Dit is geen hergebruiken..

Maar idd, zoals Crazy_D zegt, waarom gebruik je het connectie object daar niet voor? Die hergebruik je dan ook. Is ook netjes :)

Ik frut, dus ik epibreer


Verwijderd

Ik zou ook zeggen gebruik het connectie object. Een recordset is alleen handing als je specifieke recordset handelingen nodig hebt.
code:
1
2
3
4
5
6
7
8
9
10
11
12
'Openen van de database
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Provider = "MICROSOFT.JET.OLEDB.4.0"
Conn.Mode = 3
Conn.Open "c:\mijn_database\mdb"

'Uitvoeren selectie SQL
Conn.Execute(SQLString)
..
..
..
Conn.Execute(SQLAndereString)

Verwijderd

Wat gebruik je voor een database? Best interessant om te weten :)

  • Krooswijk.com
  • Registratie: Mei 2000
  • Laatst online: 17-08-2024
Op donderdag 21 maart 2002 09:31 schreef vanDee het volgende:
Ik zou ook zeggen gebruik het connectie object. Een recordset is alleen handing als je specifieke recordset handelingen nodig hebt.
code:
1
2
3
4
5
6
7
8
9
10
11
12
'Openen van de database
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Provider = "MICROSOFT.JET.OLEDB.4.0"
Conn.Mode = 3
Conn.Open "c:\mijn_database\mdb"

'Uitvoeren selectie SQL
Conn.Execute(SQLString)
..
..
..
Conn.Execute(SQLAndereString)
en als ik dan die eerste conn.execute doe, kan ik ddan wel met die resultset werken, bv checken of rijen gereturned worden. of velden uit een record checken?
normaal weet ik het wel, alleen niet in dit geval...

  • Yucon
  • Registratie: December 2000
  • Nu online

Yucon

*broem*

maar op bovenstaande manier kun je wel queries uitvoeren maar heb je nog geen recordset

Mijn std code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  Dim DB, cmdTemp, RS
  Set DB = Server.CreateObject("ADODB.Connection") 
  Set cmdTemp = Server.CreateObject("ADODB.Command")
  Set RS = Server.CreateObject("ADODB.Recordset")

  DB.Open [hier dus de connectionstring]

  
  cmdTemp.CommandText = [query  op deze plaats]
  cmdTemp.CommandType = 1
  Set cmdTemp.ActiveConnection = DB
  RS.Open cmdTemp, , 0, 1     ' (<-- of 3,3  voor update in de RS)
  
  [RS gebruiken]

  RS.Close

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 08:14

Crazy D

I think we should take a look.

Op vrijdag 22 maart 2002 13:12 schreef Yucon het volgende:
maar op bovenstaande manier kun je wel queries uitvoeren maar heb je nog geen recordset
Een update/insert geeft ook geen recordset terug...

Exact expert nodig?


  • Yucon
  • Registratie: December 2000
  • Nu online

Yucon

*broem*

Een update/insert geeft ook geen recordset terug...
Dat is zo,
...nu wil ik echter na dit lezen bv een waarde ophogen en weer wegschrijven...
maar dat heeft hij toch nodig geloof ik..

Verwijderd

Wat gebruik je voor een database? Best interessant om te weten :)
|:( |:( ik denken dat het zomaar Access zou zijn....
...nu wil ik echter na dit lezen bv een waarde ophogen en weer wegschrijven
Wat is dan het probleem:
-waarde uitlezen
-waarde ophogen
-waarde wegschrijven

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 08:14

Crazy D

I think we should take a look.

Op vrijdag 22 maart 2002 14:25 schreef Yucon het volgende:
maar dat heeft hij toch nodig geloof ik..
update tabel
set veldje1 = veldje1 + 1
where idveldje = de_juiste_id
:?
:)

Maar misschien snap ik ondertussen niet meer wat nou precies het probleem is ;)
* Crazy D wil graag :z :)

Exact expert nodig?


  • Yucon
  • Registratie: December 2000
  • Nu online

Yucon

*broem*

hmm

update query.. natuurlijk... duh..

* Yucon heeft duidelijk een wat mindere dag

en houdt daarom verder maar z'n mond ;)
Pagina: 1