Avatar billede xcover Nybegynder
19. august 2003 - 18:14 Der er 9 kommentarer og
1 løsning

Tilbage-Frem knapper

Hejsa...

Jeg har lige lavet et billede system... Hvor alle billeder ligger i en database.
Billedet biver vist i et pupop vindu.
Men nu er problemmet det at jeg vil have en "Tilbage" og en "Frem" knap sådan at man kan se et billedet af gange ved at trykke frem... frem... osv...

Jeg har prøvet med:
rs.movenext

Det virker også fint nok men den laver bare fejl ved det sidste billede...

Nogle der har en færdig kode som virker ?
Avatar billede nmh Nybegynder
19. august 2003 - 18:21 #1
while not rs.eod
....
  rs.movenext
wend
Avatar billede nmh Nybegynder
19. august 2003 - 18:22 #2
rettelse: while not rs.eof
            ....
Avatar billede nmh Nybegynder
19. august 2003 - 18:24 #3
rs.eof er sand, så snart det sidste billede er læst, og med denne ændring skulle dit problem forsvinde.
Avatar billede xcover Nybegynder
19. august 2003 - 18:34 #4
Jamen jeg prøvet bare sådan:
rs.movenext
idnext = rs("id")
rs.close

Men jeg mangler jo stadig en Tilbage funktion...
Avatar billede xcover Nybegynder
19. august 2003 - 18:40 #5
Jeg er ikke så god til asp...

Kan du ikke smide funktionen ind i denne kode ?:

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM bgalleri WHERE (ID = " & hentid & ")"
rs.Open strSQL, Conn, 1, 3
If Not (rs.BOF Or rs.EOF) Then
strBillede = rs("Billede")
rs.Close
Set rs = Nothing
End If
Avatar billede nmh Nybegynder
19. august 2003 - 18:54 #6
man kan i de fleste tilfælde ikke flytte tilbage i et recordset.
Så vidt jeg husker kan man flytte til start.
rs.movefirst.
Du kunne dog nøjes med at hente billedernes numre op.
(hvert billede har vel et ID-nummer)
select ID from bgalleri ...
Anbring alle disse ID-numre i et array A.
Nu kan du så hente et billede frem ad gangen ud fra ID-nummeret lige som du gør nu.
Men hvis det aktuelle billede har ID=A(N), så vil det forrig have ID-nummer lig A(n-1), og det næste A(i+1)
At hente det forrige betyde så at hente billedet med ID=A(n-1)
Avatar billede soes Nybegynder
19. august 2003 - 23:06 #7
lidt om cursors, altså hvordan du åbner dit recordset.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/pg_ado_cursors_4.asp

til dit problem.
når du laver dit link kan du så ikke teste på om dit recordset om det er den første eller sidste post?

If rs.Bof Then
  Response.Write(Link) ' Inaktiv
Else
  Response.Write(Link) ' Aktiv
End If

og ligeledes når du laver dit link til at gå fremad med

If rs.Eof Then
  Response.Write(Link) ' Inaktiv
Else
  Response.Write(Link) ' Aktiv
End If

Dette kan selvfølgelig skrives i en funktion så det kommer til at se meget pænere ud, men det er umiddel bart mit forslag.
Avatar billede thomas_yde Nybegynder
20. august 2003 - 06:34 #8
Du kan godt flytte tilbage i et recordset:
rs.MovePrevious
rs.MoveNext
rs.MoveFirst
rs.MoveLast
Avatar billede nmh Nybegynder
20. august 2003 - 08:16 #9
thomas>>Det afhænger af hvilken type cursor man har, og det er ikke det normale ved f.eks access-databasen.
moveprevious vikrer normalt ikke!
Avatar billede soes Nybegynder
20. august 2003 - 09:38 #10
ok, vi prøver igen, lidt om hvordan man åbner sit recordset.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/pg_ado_providers_5.asp

recordset.Open Source, ActiveConnection, CursorType, LockType, Options

Source: Vores Sql sætning
ActiveConnection: Forbindelsen til DB'en
CursorType: skal sættes til 3 (adOpenStatic)
LockType: skal sættes til 3 (adLockOptimistic)

herefter skulle det være muligt at bruge de førnævnte rs.move... da vi har en Static cursor!
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