Avatar billede harryfink Praktikant
06. maj 2003 - 16:41 Der er 14 kommentarer og
2 løsninger

RecordCount giver -1...!?

Hej!

Hvorfor udskrives der "-1" her?? Der ER minimum tre poster i tabellen... Det er jeg helt sikker på!

Håber I kan hjælpe - synes ikke just RecordCount plejer at volde mig så mange problemer!!

Hilsen Mikkel :)


<%
Set objConn = Server.CreateObject("ADODB.Connection")
NoDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb")
objConn.OPEN NoDSN

Set objRS = Server.CreateObject("ADODB.Recordset")
strQuery = "SELECT * FROM nyt ORDER BY id DESC"
objRS.OPEN strQuery, objConn, adopenstatic

objRS.movefirst

response.Write(objRS.RecordCount)
%>
Avatar billede -master-d- Nybegynder
06. maj 2003 - 16:44 #1
Har du prøvet med dette :

<%
Set objConn = Server.CreateObject("ADODB.Connection")
NoDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb")
objConn.OPEN NoDSN

Set objRS = Server.CreateObject("ADODB.Recordset")
strQuery = "SELECT Count(id)AS Records FROM nyt ORDER BY id DESC"
objRS.OPEN strQuery, objConn, adopenstatic

objRS.movefirst

response.Write(objRS("Records"))
%>
Avatar billede eagleeye Praktikant
06. maj 2003 - 16:45 #2
Prøv at rette denne linjer:

objRS.OPEN strQuery, objConn, adopenstatic

til:

objRS.OPEN strQuery, objConn, 1
Avatar billede harryfink Praktikant
06. maj 2003 - 16:47 #3
Desværre duer det heller ikke:

Fejltype:
ADODB.Recordset (0x800A0CC1)
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.
Avatar billede harryfink Praktikant
06. maj 2003 - 16:48 #4
Ups... den var til MasterD... tjekker din nu eagleeye!
Avatar billede harryfink Praktikant
06. maj 2003 - 16:51 #5
Det virker heller ikke... Det er vel adopenKeyset istedet for adopenStatic du mener?
Avatar billede harryfink Praktikant
06. maj 2003 - 16:53 #6
Hvor mærkeligt... Hvis jeg inkluderer adovbs.inc, så skriver den:

Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den anmodede handling kræver en aktuel post.

Men hvis jeg fjerner den, så eksekverer den siden, dog stadig med -1! Er det ikke meget mystisk??
Avatar billede eagleeye Praktikant
06. maj 2003 - 16:56 #7
Ja det var det jeg mente.

Det lyder meget underligt.
Avatar billede harryfink Praktikant
06. maj 2003 - 16:59 #8
Jeg kører i øvrigt med IIS på Windows XP, helt almindelig ASP og en Access 2000 database - har disse ting noget at skulle have sagt?
Avatar billede eagleeye Praktikant
06. maj 2003 - 17:04 #9
Når den skriver -1 ud skriver den så også de records ud du har i databasen?
Avatar billede harryfink Praktikant
06. maj 2003 - 17:08 #10
Jeps! Jeg skal bruge RecordCount til et loop, der skal køre tre gange... Men hvis der nu er under 3 poster, skal den køre det antal gange der er poster. :)
Avatar billede eagleeye Praktikant
06. maj 2003 - 17:10 #11
Normalt vil man lave et loop og tjekke på EOF status:

do while not objRS.EOF
  'UDSKRIV HER
 
  objRS.MoveNext
loop
Avatar billede harryfink Praktikant
06. maj 2003 - 17:26 #12
Sådan her, helt præcist! :)

---
i = 0

do until objRS.eof OR i = 3
%>
<a href="nyt.asp" class="darklink"><%=objRS("overskrift")%></a>
<%
if i < 2 then
%>
<font color="8BA05D">///</font>
<%
end if

i=i+1
objRS.movenext
loop
---

Tak for hjælpen dog! :) Hvad gør vi med pointsene?? Spørgsmålet er jo reelt set ikke besvaret... :\
Avatar billede eagleeye Praktikant
06. maj 2003 - 17:29 #13
Så tag dem selv, ved at acceptere dit svar.

Det enste jeg kan komme med er at prøv forskigge kombinationer af de konstanter man sætter efter.

objRS.OPEN strQuery, objConn, 1
eller
objRS.OPEN strQuery, objConn, 1,1
eller
objRS.OPEN strQuery, objConn, 1,3
med flere

du kan se dem her:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adoce31/html/ado30ref_28.asp

Det bør virker.
Avatar billede harryfink Praktikant
06. maj 2003 - 17:33 #14
Problemet er der reelt stadigvæk - "///" skal, som du nok kan se, IKKE skrives ud efter den sidste! Sådan som det ser ud nu virker det fint med 3 og derover... Men ved 2 kommer der "///" efter den sidste. Nogen ide til dette? Meget gerne uden om RecordCount! :)
Avatar billede eagleeye Praktikant
06. maj 2003 - 17:37 #15
Hvis du vil skrive "///" efter hver undtagen den sidste så bruge et tjek på EOF sådan her og drop i for hvis du har mere end 3 så skriver den ikke "///" ud.:

do until objRS.eof
%>
<a href="nyt.asp" class="darklink"><%=objRS("overskrift")%></a>
<%
  objRS.movenext
  if not objRS.EOF then
  %>
<font color="8BA05D">///</font>
  <%
  end if
loop
Avatar billede harryfink Praktikant
06. maj 2003 - 17:46 #16
Ja sgu!! Genialt! Tak! Du får 2/3 af pointsene, for det her var meget smartere og jeg lærte også noget ved det! :)
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