/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
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

Søg
Reklame
Statistik
Spørgsmål : 177502
Tips : 31968
Nyheder : 719565
Indlæg : 6408534
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste