Avatar billede baitianlong Nybegynder
03. januar 2003 - 18:51 Der er 12 kommentarer og
2 løsninger

Udvid sql rutine

Hej. ER der ikke en der gider hjælpe mig med at rette denne her.. Den skal nemlig hente feltet guestid, og lægge en til det højeste tal, når den indsætter disse ting i databasen:

sub WriteForm
'indlægget skrives til databasen
    dim strSQL, objCMD
    strSQL = "INSERT INTO GuestBook " & _
            "(guestname, guestemail, guestmessage, datesubmitted) " & _
            "VALUES (" & _
            "'" & request("guestname") & "', " & _
            "'" & request("guestemail") & "', " & _
            "'" & request("guestmessage") & "', " & _
            "'" & date() & "')"
    set objCMD = server.createObject("ADODB.Command")
    with objCMD
        .ActiveConnection = strConnect
        .CommandType = adCmdText
        .CommandText = strSql
        .Execute
    end with
    set objCMD = Nothing
end sub
Avatar billede thomas_yde Nybegynder
03. januar 2003 - 21:06 #1
DU kan rende ind i et problem idet 2 på samme tid laver et indlæg.

Hvorfor bruger du ikke et fortløbende nummer ?
i mysql er det auto_increment
i access kan du sætter den til det med autonummering.
Avatar billede baitianlong Nybegynder
03. januar 2003 - 21:12 #2
Jeg bruger nu auto_increment, men det irriterer mig da jeg har slettet nogle indlæg, og derfor er der huller i nummereringen. Kan den ikke bare læse højeste guestid, lægge en til og gemme det i den nye post ?
Avatar billede hossein Nybegynder
03. januar 2003 - 21:31 #3
Prøv den her måde:
<%
Set oConn = Server.CreateObject("ADODB.Connection")
DSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("minDatabase.mdb")
oConn.Open DSN
cmd = "select max(ID) AS LastID FROM GuestBook "
set rs = oConn.Execute ( cmd )
NextID = CSTR ( rs("LastID") + 1 )
%>

<html><head><Title>Guest tilføjet</title></head>
<body>

<%
cmd = "insert into contacts _
(ID, guestemail, guestmessage, datesubmitted) values ( " _
  &      NextID            & ","  _
  & "'" & Request("guestmessage")    & "'," _
  & "'" & Request("Address") & "'," _
  & "'" &  date()    & "')"

' Response.Write ( cmd )

set rs = oConn.Execute ( cmd )
%>
<h1>Guest tilføjet</h1>
</body>
</html>

vh    hossein
Avatar billede hossein Nybegynder
03. januar 2003 - 21:32 #4
jeg kaldte guestID til ID så du kan rette den.
Avatar billede thomas_yde Nybegynder
03. januar 2003 - 22:05 #5
vil den ikke stadig lave huller i din kode ?
Det ændre jo ikke om du gør det eller den selv gør det
Avatar billede hossein Nybegynder
03. januar 2003 - 22:24 #6
Den laver ikke huller, når du sletter et record med fx ID=6 så har du 5 som højeste og næste gang du tilføjer en så er 6. om hvordan den ser ud ved jeg ikke noget om men det kan legende.dk tilrette den så har han ikke det problem.
Avatar billede thomas_yde Nybegynder
04. januar 2003 - 02:25 #7
hvad nu:
1
2
3
4 <-- Slettes
5
6

nu bliver det så
1
2
3

5
6
7 <-- det nye nummer
Avatar billede hossein Nybegynder
04. januar 2003 - 13:02 #8
thomas_yde, det er rigtig som du siger, men han vil ha':"Den skal nemlig hente feltet guestid, og lægge en til det højeste tal"
Avatar billede thomas_yde Nybegynder
04. januar 2003 - 13:40 #9
Ja du laver det sikkert også korrekt og det er der intet forkert i :)

Jeg vil bare sikre mig at han forstår den ikke udfylder hullerne, men pointene skal jeg nok holde mig fra :D
Avatar billede hossein Nybegynder
04. januar 2003 - 13:46 #10
Nej, det var ikke det jeg mente, hvad skal jeg bruge pointene til.

vh    hossein
Avatar billede baitianlong Nybegynder
05. januar 2003 - 05:57 #11
Slap nu af.... Der må være denne løsning

var temp = 0
while not EOF
  if guestid > temp
temp = guestid
insert into blabla osv...

Er det ikke løsningen ????
Avatar billede thomas_yde Nybegynder
05. januar 2003 - 12:02 #12
Jo det er nok en løsning men. Når det er en guestbook så regner jeg med at de nyeste indlæg kommer øverst og det bliver vel sorteret efter id når du nu har den. Hvis du sortere efter dato er id jo lidt overflødigt, derfor ville det ikke virke som en smart løsning at fylde hullerne ud.

Men det er nok bare min mening :))
Avatar billede baitianlong Nybegynder
05. januar 2003 - 20:34 #13
Hej. Jeg ved godt jeg er lidt tungnem - asp er ikke min stærke side, men jeg havde lidt håbet at en venlig person ville rette det script jeg har kopieret ind, så den gjorde det jeg ønsker. Jeg har gæstebogen fra en bog om ASP & SQL, og den virker fint. Jeg er bare træt af at den tæller videre når jeg sletter et indlæg. Problemet er især at dens frem og tilbageknapper henter de næste, forrige 5, efter guestid, og det kan være de poster ikke eksisterer, og det giver problemer
Avatar billede thomas_yde Nybegynder
05. januar 2003 - 22:54 #14
legende.dk >
Det kan jeg godt se problemet i. Du er ikke tungnem tværtimod du har allerede tænkt over en løsning til problemet. Men det er bare ikke hensigtsmæssigt at gøre det med en guestbook. Der er ikke nogen smart løsning end at rydde op i guestbooken engang i mellem med et script det løber din bog igennem og sætter nummerne på plads, men det er ikke en let løsning og sikkert heller ikke en der er behøv for.

Så desværre der findes ikke umiddelbart en nem løsning.
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