|
| Se sidste id Fra : Flemming Jensen |
Dato : 25-06-03 15:50 |
|
Hejsa
Når man uploader en fil til min side indsættes data om filen i en tabel i
databasen, hvor der bl.a. er et ID felt som er autonummer og altså unikt.
Jeg vil gerne have filen omdøbt til den værdi autonummeret har i den post
der laves når man uploader en fil.
Så altså er det muligt at returnere id'et i en post man lige har indsat, min
kode ser sådan ud:
strSQL = "INSERT INTO PDF ("
strSQL = strSQL & "EmneID, "
strSQL = strSQL & "ForfatterEmail, "
strSQL = strSQL & "Beskrivelse) "
strSQL = strSQL & "values( "
strSQL = strSQL & "'"&strSelect&"',"
strSQL = strSQL & "'"&Session("Loginnavn")&"',"
strSQL = strSQL & "'"&strBeskrivelse&"')"
Conn.Execute(strSQL)
| |
Thomas Daugaard (25-06-2003)
| Kommentar Fra : Thomas Daugaard |
Dato : 25-06-03 16:43 |
|
"Flemming Jensen" <CyberOrc@tiscali.dk> wrote in message
news:lEiKa.29323$Jp3.1385313@news010.worldonline.dk...
> Hejsa
>
> Når man uploader en fil til min side indsættes data om filen i en tabel i
> databasen, hvor der bl.a. er et ID felt som er autonummer og altså unikt.
> Jeg vil gerne have filen omdøbt til den værdi autonummeret har i den post
> der laves når man uploader en fil.
>
> Så altså er det muligt at returnere id'et i en post man lige har indsat,
.... <klip>
Databasen er en .. ? (Access, MySQL, MSSQL .. ?) Anyway, til MySQL kan du
bruge:
"SELECT LAST_INSERT_ID()"
Men det betyder jo at du er nødt til at lave et kald mere ..
Access, der må du lave en:
"SELECT MAX(id) FROM tableName"
evt.
"SELECT id FROM tableName WHERE ForfatterEmail = '" & Session("Loginnavn") &
"'"
Hvis du vil være sikker på at du får ID'et på DEN record du lige indsatte ..
ved ikke om der kan opstå problemer
hvis flere tilføjer samtidigt mange gange osv.
MVh, Thomas Daugaard
>
>
| |
Flemming Jensen (25-06-2003)
| Kommentar Fra : Flemming Jensen |
Dato : 25-06-03 17:01 |
|
Jeg fandt en anden meget god måde på google.com.
Sådan her:
Set rsAddEntry = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM Tabel;"
rsAddEntry.CursorType = 2
rsAddEntry.LockType = 3
rsAddEntry.Open strSQL, Conn
rsAddEntry.AddNew
rsAddEntry.Fields("Felt1") = Værdi
rsAddEntry.Fields("Felt2") = Værdi
rsAddEntry.Update
ID = rsAddEntry("id")
rsAddEntry.Close
Set rsAddEntry = Nothing
Det er jo ret smart. Den kan vel ikke give fejl. Jeg har haft problemet før
hvor jeg løste det på en meget meget grim måde, men det her holder, skulle
jeg da mene.
--
Flemming Jensen
| |
Thomas Daugaard (25-06-2003)
| Kommentar Fra : Thomas Daugaard |
Dato : 25-06-03 20:34 |
|
"Flemming Jensen" <CyberOrc@tiscali.dk> wrote in message
news:2HjKa.29347$Jp3.1388861@news010.worldonline.dk...
> Jeg fandt en anden meget god måde på google.com.
>
> Sådan her:
>
[klip]
> rsAddEntry.AddNew
> rsAddEntry.Fields("Felt1") = Værdi
[klip]
>
> Det er jo ret smart. Den kan vel ikke give fejl. Jeg har haft problemet
før
> hvor jeg løste det på en meget meget grim måde, men det her holder, skulle
> jeg da mene.
Hvis man kan affinde sig med at bruge .AddNew og .Fields() måden at opdatere
felter på, så
er der vel intet galt i det.
Jeg er bare vant til at bruge MySQL i PHP, så der bruger jeg
LAST_INSERT_ID() (via mysql_insert_id() funktionen) -
derfor synes jeg ikke .AddNew er sååå pæn en metode at bruge .. men anyway -
det er individuelt hvad man synes
er bedst :)
Mvh, Thomas D.
>
> --
> Flemming Jensen
>
>
| |
Ukendt (26-06-2003)
| Kommentar Fra : Ukendt |
Dato : 26-06-03 09:39 |
|
"Thomas Daugaard" <news@overnusser.dk> skrev i en meddelelse
news:bdcteo$aea$1@sunsite.dk...
> "Flemming Jensen" <CyberOrc@tiscali.dk> wrote in message
> news:2HjKa.29347$Jp3.1388861@news010.worldonline.dk...
> > Jeg fandt en anden meget god måde på google.com.
> >
> > Sådan her:
> >
> [klip]
> > rsAddEntry.AddNew
> > rsAddEntry.Fields("Felt1") = Værdi
> [klip]
> >
> > Det er jo ret smart. Den kan vel ikke give fejl. Jeg har haft problemet
> før
> > hvor jeg løste det på en meget meget grim måde, men det her holder,
skulle
> > jeg da mene.
jo længere kode jo længere tid
>
> Hvis man kan affinde sig med at bruge .AddNew og .Fields() måden at
opdatere
> felter på, så
> er der vel intet galt i det.
>
> Jeg er bare vant til at bruge MySQL i PHP, så der bruger jeg
> LAST_INSERT_ID() (via mysql_insert_id() funktionen) -
> derfor synes jeg ikke .AddNew er sååå pæn en metode at bruge .. men
anyway -
> det er individuelt hvad man synes
> er bedst :)
>
> Mvh, Thomas D.
>
> >
> > --
> > Flemming Jensen
> >
> >
>
>
| |
Jørn Andersen (26-06-2003)
| Kommentar Fra : Jørn Andersen |
Dato : 26-06-03 12:59 |
|
On Wed, 25 Jun 2003 17:43:17 +0200, "Thomas Daugaard"
<news@overnusser.dk> wrote:
>Databasen er en .. ? (Access, MySQL, MSSQL .. ?) Anyway, til MySQL kan du
>bruge:
>
>"SELECT LAST_INSERT_ID()"
>
>Men det betyder jo at du er nødt til at lave et kald mere ..
>
>Access, der må du lave en:
>
>"SELECT MAX(id) FROM tableName"
>
>evt.
>
>"SELECT id FROM tableName WHERE ForfatterEmail = '" & Session("Loginnavn") &
>"'"
>
>Hvis du vil være sikker på at du får ID'et på DEN record du lige indsatte ..
>ved ikke om der kan opstå problemer
>hvis flere tilføjer samtidigt mange gange osv.
Hvis man kombinerer de to (altså MAX(id) og brugernavn), så skulle man
være så sikker som man kan blive.
--
Jørn Andersen,
Brønshøj
| |
Jakob Andersen (01-07-2003)
| Kommentar Fra : Jakob Andersen |
Dato : 01-07-03 11:46 |
|
Flemming Jensen skrev:
> Så altså er det muligt at returnere id'et i en post man lige har indsat, min
> kode ser sådan ud:
I MSSQL og Access er det muligt at benytte @@Identity variablen som er
specifik for dataforbindelsen hvorfro der ikke kan opstå konflikter,
altså:
'Åbn forbindelse
objConn.Execute("INSERT INTO(...) VALUES(...)")
Set objRS = objConn.Execute("SELECT @@Identity")
LastID = objRS(0)
'Luk forbindelse
Hvis det er MSSQL kan du også gøre det med en one-liner:
objConn.Execute("INSERT INTO(...) VALUES(...);SELECT @@Identity;")
--
Jakob Andersen
| |
|
|