Avatar billede totalpc Seniormester
19. april 2005 - 19:30 Der er 5 kommentarer og
1 løsning

+1 i et felt , men skal først læse den højeste

Hej..nedenstående kode bruger jeg til at gemme mine data i en tabel i databasen med. Men jeg vil gerne havde det sådan at den inden den skriver læser hvilket tal der er det højeste i feltet kommentar_nr og adderer 1 til og det nye tal skal den så skrive i feltet kommentar_nr i den nye record her... hvem kan hjælpe ?

<%
'Dimension variables
Dim adoCon              'Holds the Database Connection Object
Dim rsAddComments      'Holds the recordset for the new record to be added
Dim SQL                  'Holds the SQL query to query the database

'Create an ADO connection object
Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../databaser/news.mdb")

'Create an ADO recordset object
Set rsAddComments = Server.CreateObject("ADODB.Recordset")

'Initialise the strSQL variable with an SQL statement to query the database
SQL = "SELECT * FROM kommentar;"

'Set the cursor type we are using so we can navigate through the recordset
rsAddComments.CursorType = 2

'Set the lock type so that the record is locked by ADO when it is updated
rsAddComments.LockType = 3

'Open the recordset with the SQL query
rsAddComments.Open SQL, adoCon

'Tell the recordset we are adding a new record to it
rsAddComments.AddNew

'Add a new record to the recordset
rsAddComments.Fields("forfatter") = Request.Form("forfatter")
rsAddComments.Fields("overskrift") = Request.Form("overskrift")
rsAddComments.Fields("tekst") = Request.Form("tekst")
rsAddComments.Fields("nyhed_id") = Request.Form("id")
rsAddComments.Fields("kommentar_nr") = ?????
'Write the updated recordset to the database
rsAddComments.Update


'find id som vi lige har sat ind.
'sqlo = "SELECT max(ID_no) FROM beretningtabel"
'Set rso = adocon.Execute(sqlo)   

'oid = Cint(rso(0))

'Reset server objects
rsAddComments.Close
Set rsAddComments = Nothing
Set adoCon = Nothing



%>
Avatar billede jamfighter Nybegynder
19. april 2005 - 19:40 #1
Hvis du har lavet kommentar_nr til at være et tal som type i din db, så er  det ikke noget problem bare at lægge én til.

Det bliver noget i retning af
rsAddComments.Fields("kommentar_nr") = rsAddComments("kommentar_nr") +1

Er ikek helt sikker på dette her, men det skulle gerne virke således hvis ellers cellen er af typen tal...
Avatar billede thoko Nybegynder
19. april 2005 - 19:53 #2
Lav en ekstra tabel der kun skal have 1 record og et felt for hver nummerserie du vil holde styr på. Brug derefter kode som følgende:

sqlserv = "select ornr FROM service WHERE recnr = 1 "
set rsserv = conn.execute(sqlserv)
rsserv.movefirst
glornr = rsserv("ornr")
ornr = glornr + 1
SQL = "UPDATE service SET ornr = "&ornr&" WHERE recnr = 1"
Conn.Execute(SQL)
session("svornr") = ornr

Den er måske ikke særlig fancy, men den funker
Avatar billede kalp Novice
19. april 2005 - 23:19 #3
SELECT MAX(kommentar_nr)

Du husker id'en til den

og du får den med det højeste.

"UPDATE dinTabel SET kommentar_nr = kommentar_nr + 1 WHERE id = '" & request(id) & "'"

lig 1 til den med det højeste. lig mærke til vi anvender id'en fra før.

Vel bare det der skal til?
Avatar billede totalpc Seniormester
20. april 2005 - 10:15 #4
jamfighter > der vil jo stå 0 i forvejen så vil alle kommenter_nr blive til 1
Det var jo ik meningen. Jeg skal som de andre er inde på først finde max(kommentar_nr) hvor nyhed_id er lig den id jeg gemmer her rsAddComments.Fields("nyhed_id") = Request.Form("id")

Men jeg skal bruge lidt mere hjælp gutter....jeg er ik den store kodehaj
Avatar billede kalp Novice
22. april 2005 - 09:58 #5
kan se ingen har tænkt sig at hjælpe.. så må jeg jo.

forfra.. du vil hente den feltet med den største værdi.. ligge 1 til og få vist den frem?
Avatar billede totalpc Seniormester
20. maj 2005 - 08:40 #6
Ellers tak...lavede en tæller der lagde 1 til hver post den læser ud!
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