Avatar billede reklamefridk Nybegynder
20. juni 2003 - 13:45 Der er 5 kommentarer og
2 løsninger

Hente seneste ID?

Hej,
Jeg har 2 små spørgsmål ang. min ID (autonummerering) i min database.

1 - kan jeg lave en løkke som henter den seneste ID fra databasen, således at jeg kan angive hvor mange der har postet indlæg?

2 - kan jeg, inden jeg udgiver mine sider, nulstille autonummerering i min database og hvordan. Jeg har skrevet en del indlæg for at prøve det af, så hvis 1. er muligt vil jeg få et for højt tal.
Avatar billede mikkelbm Nybegynder
20. juni 2003 - 13:49 #1
Brug metoden Count() - den tæller alle rækker i tabellen.
Og nej, jeg mener ikke man kan nulstille en tabels autonummerering!
Avatar billede netro Nybegynder
20. juni 2003 - 13:50 #2
Du skal ikke tælle ud fra det sidste ID. Brug:

Set myrs = myConn.Execute("Select Count(*) As Antal From Tabel")
Response.Write myrs("Antal")
Avatar billede netro Nybegynder
20. juni 2003 - 13:52 #3
Nu du siger nulstille - mener du så hvordan du automatisk tildeler den første post i en tabel ID-værdien 1?
Avatar billede reklamefridk Nybegynder
20. juni 2003 - 13:56 #4
Okay - jeg kendte ikke den count som tæller tabelrækkerne, så er nr. 2 faktisk slet ikke nødvendig...

Jeg ville nulstille ID-tallet fordi jeg har forsøgt mig frem og brugt op til autonummer 40 for at teste indlæg. Så jeg ville bare nulstille id-tallet, hvilket jo ikke er nødvendigt med den metode I har foreslået. Tallet vil passe, da jeg har slettet mine test-rækker
Avatar billede reklamefridk Nybegynder
20. juni 2003 - 13:59 #5
Tak for svarene!

Jeg sætter koden ind på min response side, det er bare for at vise brugeren hvor mange som har postet indlæg før ham... så jeres løsning er ganske fin til mit brug!!
Avatar billede jhauge Nybegynder
20. juni 2003 - 14:01 #6
Nu skriver du ikke hvilken database du bruger, men her er et svar baseret på MS SQL server.

Du kan få det seneste oprettede ID i database vha. flg. forespørgsel:

SELECT @@IDENTITY from tblNavn

forudsat du på tabellen har et felt der er oprettet som ID med autoincrement.

Jeg bruger selv følgende ASP kode når jeg benytter funktionen:

Function DBCreateItem(intNewID)
  Dim sql, rs, booReorder
  Dim boo : boo = False
   
  sql = "SET NOCOUNT ON; " & _
        "INSERT INTO tblContents (fields)" & _
        "VALUES (fieldvalues)" & _
        "SELECT @@IDENTITY AS NewID;"

  Set rs = cnxn.Execute(sql, , adCmdText)
  If Not (rs.BOF Or rs.EOF) Then
    intNewID = rs("NewID")
    boo = True
  End If
  rs.Close
  Set rs = Nothing
       
  DBCreatePage = boo
   
End Function

Hvis du bruger en funktion som denne her, vil den returnere True, hvis det lykkes at oprette posten i databasen, og variablen du sender med vil indeholde det nye ID når du har oprettet posten.

Mht. databasen kan du i hvert fald på en MS SQL server få fremstillet et script der opretter databasen eller tabellen på ny, så jeg plejer bare at slette tabellen/databasen og oprette den igen når jeg skal sætte tingene i produktion.
Avatar billede reklamefridk Nybegynder
20. juni 2003 - 14:05 #7
ihauge > tak for kommentaren, men det viste sig ikke at være nødvendigt at nulstille den, jeg skal bare tælle rækkerne som beskrevet ovenfor.
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