[SQL] record id opvragen van ingevoerde record

Pagina: 1
Acties:

  • thesvr
  • Registratie: Oktober 2001
  • Niet online
Ik wil record id opvragen van ingevoerde record. Invoeren gebeurt met asp met volgende sql query:
code:
1
2
3
4
5
6
7
8
sql = "Insert into tabel set var = 'var'"
Set conn =  Server.CreateObject("ADODB.Connection")
conn.ConnectionString = "DRIVER={MySQL};SERVER="&se_database_server&";DATABASE="&se_database&";UID="&se_database_user&";PWD="&se_database_paswoord&"; OPTION=35"
conn.Open
Set RS = conn.Execute(SQL)
id = rs("recordid")
Set rs = nothing
conn.close


Dit gedeelte id = rs("recordid") werkt niet.

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Lees even de P&W Quickstart aub:
Welkom in P&W -> Quickstart om snel aan de slag te kunnen

Daarin staat vermeld hoe je een goed topic opent dat bestaanswaarde heeft in P&W.

Bekijk ook uw code nog eens goed. Je voert een sql statement uit dat geen recordset teruggeeft. Daarna wil je een waarde uit uw recordset halen (die je dus niet hebt)....
Gaat er een lichtje branden?

Anders kun je ook eens de MSDN of een tutorial doornemen....
Succes. :)

https://fgheysels.github.io/


  • thesvr
  • Registratie: Oktober 2001
  • Niet online
whoami schreef op 14 augustus 2002 @ 23:04:
Lees even de P&W Quickstart aub:
Welkom in P&W -> Quickstart om snel aan de slag te kunnen

Daarin staat vermeld hoe je een goed topic opent dat bestaanswaarde heeft in P&W.

Bekijk ook uw code nog eens goed. Je voert een sql statement uit dat geen recordset teruggeeft. Daarna wil je een waarde uit uw recordset halen (die je dus niet hebt)....
Gaat er een lichtje branden?

Anders kun je ook eens de MSDN of een tutorial doornemen....
Succes. :)
Ik wil niet brutaal zijn maar dat wist ik al, misschien was ik niet echt duidelijk maar ik wil zo snel en 100% zeker weten dat ik het goede record id heb. ik kan wel zeggen als volgende sql: select * from tabel order by id desc limit 1.

Het probleem is hierbij echter dat het mogelijk is dat er weer een ander record is ingevoerd en dat er weer een sql handeling bij moet. Het voldoent dus niet aan beide eisen.

Ik gebruik btw mysql en asp.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:42

gorgi_19

Kruimeltjes zijn weer op :9

Sowieso nog een hint:
Met Access de laatst ingevoerde recordID (met SQL Server: @@Identity) bepalen, is lastig.
Een 'workaround' is om de addnew method van het Recordset-object te gebruiken.

Een klein voorbeeldje:
Rs.Open
Rs.AddNew
RS("Name") = Request.form("name")
RS.Update

Id = Rs("Id") ' This Returns the Id of the record that was just inserted.
En de rest mag je zelf verzinnen.. :)

Daarnaast moet ik whoami gelijk geven: Na een Insert-query kan je NIET direct iets uit je Recordset halen; hier moet je een nieuwe query voor uitvoeren.
Met jouw methode kan je sowieso niet je laatste record ophalen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • J.apiooo
  • Registratie: Oktober 2000
  • Laatst online: 21-07 10:36

J.apiooo

FWN

Dat doe je met de @@IDENTITY-constante.

Zoiets dus:
DIM IdVanNetIngevoerdeRecord

Set RS = Conn.Execute( "SELECT @@IDENTITY" )
IdVanNetIngevoerdeRecord = RS(0)

Succes

Jaap


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
De topicstarter maakt gebruik van MySQL.
Ik geloof dat MySQL daar een functie voor heeft, om het laatste id op te halen?

https://fgheysels.github.io/


  • thesvr
  • Registratie: Oktober 2001
  • Niet online
gorgi_19 schreef op 14 augustus 2002 @ 23:09:
Sowieso nog een hint:
Met Access de laatst ingevoerde recordID (met SQL Server: @@Identity) bepalen, is lastig.
Een 'workaround' is om de addnew method van het Recordset-object te gebruiken.

Een klein voorbeeldje:


[...]


En de rest mag je zelf verzinnen.. :)
DIt voldoent aan de zekerheids eis maar is dit niet langzamer?
whoami schreef op 14 augustus 2002 @ 23:13:
De topicstarter maakt gebruik van MySQL.
Ik geloof dat MySQL daar een functie voor heeft, om het laatste id op te halen?
Dit dacht ik ook maar ik kon het niet echt vinden op mysql.com en mijn engels is niet zo goed dat ik de goede trefwoorden weet om het te vinden mbv de zoek functie.

ik heb het onder tussen van een vriend, het schijnt: LAST_INSERT_ID() in de sql query te zijn.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:42

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 14 augustus 2002 @ 23:13:
De topicstarter maakt gebruik van MySQL.
Ik geloof dat MySQL daar een functie voor heeft, om het laatste id op te halen?
|:( Begint nu maar bedtijd voor Gorgi te worden...... ;)
Sorry....

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • thesvr
  • Registratie: Oktober 2001
  • Niet online
gorgi_19 schreef op 14 augustus 2002 @ 23:17:
[...]

|:( Begint nu maar bedtijd voor Gorgi te worden...... ;)
Sorry....
Ik weet niet wat jij bedoelt maar hij heeft gewoon gelijk er is een functie voor, dat jij hem niet weet, daar kan hij niks aan doen.

  • rool
  • Registratie: Juli 2002
  • Laatst online: 08:31
whoami schreef op 14 augustus 2002 @ 23:13:
De topicstarter maakt gebruik van MySQL.
Ik geloof dat MySQL daar een functie voor heeft, om het laatste id op te halen?
Klopt, mysql_insert_id().

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:42

gorgi_19

Kruimeltjes zijn weer op :9

thesvr schreef op 14 augustus 2002 @ 23:19:
[...]

Ik weet niet wat jij bedoelt maar hij heeft gewoon gelijk er is een functie voor, dat jij hem niet weet, daar kan hij niks aan doen.
offtopic:
Ik bedoelde dat ik DIT
[quote]
DRIVER={MySQL};
[/quote]
stukje over het hoofd had gezien... :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
rool schreef op 14 augustus 2002 @ 23:20:
[...]


Klopt, mysql_insert_id().


Ik ging het aan de topicstarter overlaten om dat zelf uit te zoeken... Zo'n moeite is dat voor hem niet... Gewoon even de reference van MySQL erbij pakken. ;)

https://fgheysels.github.io/

Pagina: 1