Avatar billede Slettet bruger
03. januar 2006 - 15:42 Der er 7 kommentarer og
1 løsning

Rs.AddNew og MySQL

Hej eksperter.

Jeg har et lille script, som opretter en ny record i min MySQL database. Scriptet forsøger at få fat værdien på den primære nøgle af den nye record, efter at rs.Update er kaldt.

Dette virker fint med Access og MS SQL Server. Men ikke med MySQL.

Nogle, der har et godt råd?

Her er et eksempel på hvad jeg prøver at gøre:

---------------

Set objRS = Server.CreateObject("ADODB.RecordSet")
        objRS.CursorLocation = adUseServer
        objRS.CursorType = adOpenDynamic 'adOpenKeySet
        objRS.LockType = adLockOptimistic
        objRS.Open minTabel, objUseConn, , , adCmdTable
        objRS.AddNew

objRS("navn") = "EtNavn"
objRS.Update

primarykey = objRS("ID")

objRS.close

--------------------

Problemet er, at "primarykey" variablen ikke har nogen værdi... den er Null.
Avatar billede medions Nybegynder
03. januar 2006 - 15:47 #1
Det kan du ikke... DU skal gære sådan her:

Set objConn = server.CreateObject("ADODB.Connection")
Conn = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=dinserver;DATABASE=dindatabase;UID=ditbrugernavn;PWD=ditpassword;"

strSQL = "INSERT INTO tabelnavn (felt1, felt2) VALUES ("tekst1", "teskst2");"
objConn.Execute(strSQL)

//>Rune
Avatar billede Slettet bruger
03. januar 2006 - 16:03 #2
Jeg kan fint indsætte records i MySQL med mit eget eksempel. JEg kan bare ikke få fat i den nyoprettede primærnøgle.

Jeg åben overfor andre metoder, men dit eksempel viser jo desværre ikke noget forslag til at få fat i den primary key, der indsættes.
Avatar billede arne_v Ekspert
03. januar 2006 - 21:28 #3
SELECT LAST_INSERT_ID()

bør give dig den key du leder efter
Avatar billede Slettet bruger
04. januar 2006 - 14:42 #4
Det er rigtigt hvad du siger arne_v

Jeg løste det ved at lave et nyt RecordSet objekt efter at have kaldt addnew, update, og close:

Set objRS2 = objConn.Execute("SELECT LAST_INSERT_ID() FROM mintabel")
primarykey = objRS2(0)

Dermed har "primarykey" variablen - forholdsvis smertefrit - fået den ønskede værdi.

Så tak for hjælpen arne_v. Jeg vil gerne give point.
Avatar billede arne_v Ekspert
04. januar 2006 - 14:43 #5
så ligger jeg et svar
Avatar billede Slettet bruger
04. januar 2006 - 15:22 #6
Tak... ligger du inde med en god oversigt over fuktioner i MySQL og/eller SQL?
Avatar billede arne_v Ekspert
04. januar 2006 - 15:40 #7
Avatar billede arne_v Ekspert
04. januar 2006 - 15:41 #8
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB