16. marts 2007 - 11:28Der er
11 kommentarer og 1 løsning
Last_insert_ID() i ASP
Hej alle kloge hoveder,
jeg har brug for at få sidste ID fra en tabel hvor jeg laver en INSERT. Jeg bruger MySql, og jeg har testet følgende query i MySql-Front, hvor det virker. Hvorfor får jeg ikke noget ud i ASP? Jeg får heller ingen fejl.
INSERT INTO tbltext (Content) VALUES('Test');SELECT LAST_INSERT_ID()
Min auto-increment kolonne hedder 'ID'.
Jeg ved godt at det let kan gøres med to queries, men jeg synes det vil være langt bedre at nøjes med én.
Conn.Execute("INSERT INTO tbltext (Content) VALUES('Test')") Set rs = Conn.Execute("SELECT LAST_INSERT_ID()") iLastInsertID = rs(0)
Har læst mig frem til at LAST_INSERT_ID() er connection specifik. Altså kan jeg regne med at den indeholder AUTO_INCREMENT feltet for det der netop er sat ind fra denne forbindelse.
Det virker åbenbart bare ikke med flere SQL kald i én statement i ASP.
"set nocount on" skulle (så vidt jeg har forstået) betyde at sql sætninger der kun returnerer recordsets med en status for udførelsen, ikke returneres. Dvs. at sql´en med en INSERT ikke resulterer i at der sendes et recordset tilbage da denne kun ville indeholde en status for udførelsen af INSERT´en. Men derimod returneres der et recordset for sql´en med SELECT.
Med andre ord: Uden "set nocount on" ville der blive returneret 2 recordssets i stedet for som nu kun een.
Synes godt om
Ny brugerNybegynder
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.