/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
At omdanne RS til Array uden at ødelægge R~
Fra : Jakob Munck


Dato : 09-05-02 11:02

Jeg har noget velfungerende kode (se nedenfor), som skal gøre det muligt for
mig først at udskrive et antal records fra en database, og derefter sende en
intern mail via en database til disse personer. Men der er én ting galt,
nemlig den, at når jeg har omdannet recordsettet "rs" til en array med
følgende kode:

arrRecords7 = rs.getrows()

så bliver mit recordset ødelagt, og det skal bruges på et senere tidspunkt i
koden. Jeg har forsøgt at flytte ovenstånde linie til et andet sted i koden,
men så er der andre ting der går galt.

Problemet er altså, kort sagt, hvordan jeg får omdannet et recordset til en
array (som vist ovenfor) men samtidig bevarer recordsettet uforandret?

Er der nogen der har et godt råd?

v.h.
Jakob Munck

------------------------------------------

<%
'// qqq antal poster der skal vises pr. side (ret også andre linier med qqq)
const pagesize = 25

sConn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.Mappath("../../db/dbtopdating.mdb")

'// Funktioner og Sub til at varetage Side Bladrer
ScrollAction = Request.QueryString("ScrollAction")

if IsNumeric(ScrollAction) Then
PageNo = Cint(ScrollAction)
if PageNo < 1 Then
PageNo = 1
end if
else
PageNo = 1
end if

'// her laves listen med sidetallene nederst på siden:
Function Sidetaeller()
sTekst = ""

'// qqq tallene 2 linier under dette = antal records pr. side
if antalposter > pagesize Then
sidetaeller = int(PageNo / 25) * 25
i = sidetaeller
Tekst = "<table width=100% border=0><tr><td width=33% class=sort11>"

if i < 1 then
'// Hvis vi er på den første side
i = 1
End If

a1 = Session("koen")
a2 = Session("foto")
a3 = Session("alderMin")
a4 = Session("alderMax")
a5 = Session("bopael")
a6 = Session("religion")
a7 = Session("soeger")
a8 = Session("sLogin")

if PageNo > 1 then
sLeftNav = "<a href=""pagin.asp?koen=" & a1 & "&foto=" & a2 & "&alderMin="
& a3 & "&alderMax=" & a4 & "&bopael=" & a5 & "&religion=" & a6 & "&soeger="
& a7 & "&sLogin=" & a8 & "&scrollaction=" & PageNo-1 & sSoeg & """
target='_self'>&lt;&lt;Tilbage&lt;&lt;</a>"
Else
sLeftNav = "&lt;&lt;Tilbage&lt;&lt;"
End If

'// qqq taller der lægges til "antalposter" = records pr. side minus 1
'// qqq taller der lægges til "sidetæller" = antal records pr. side
while i * pagesize <= antalposter + 24 and i <= sidetaeller + 25

If i = PageNo Then
sNumNav = sNumNav & "<strong>" & i & "</strong> "
else

sNumNav = sNumNav & "<a href=""pagin.asp?koen=" & a1 & "&foto=" & a2 &
"&alderMin=" & a3 & "&alderMax=" & a4 & "&bopael=" & a5 & "&religion=" & a6
& "&soeger=" & a7 & "&sLogin=" & a8 & "&scrollaction=" & i & sSoeg & """
target='_self'>" & i & "</a> "

end IF

i = i + 1
wend

'// qqq taller som lægges til "antalposter" = records pr. side minus 1
if pagesize * PageNo + pagesize =< antalposter + 24 Then

'''sRightNav = "<a href=""pagin.asp?mode=" & soegn2 & "&scrollaction=" &
PageNo+1 & sSoeg & """ target='_self'>&gt;&gt;Frem&gt;&gt;</a></td>"

sRightNav = "<a href=""pagin.asp?koen=" & a1 & "&foto=" & a2 & "&alderMin="
& a3 & "&alderMax=" & a4 & "&bopael=" & a5 & "&religion=" & a6 & "&soeger="
& a7 & "&sLogin=" & a8 & "&scrollaction=" & PageNo+1 & sSoeg & """
target='_self'>&gt;&gt;Frem&gt;&gt;</a></td>"

Else
sRightNav = "&gt;&gt;Frem&gt;&gt;</td>"
End If

'// tallene hedder "sNumNav"
'//her laves tabellen, som sidetallene står i (
sTekst = "<table border=0 color=FF0000><TR><td width=20% align=left
class=sort11>"
sTekst = sTekst & sLeftNav
sTekst = sTekst & "<td align=center class=sort11>"
sTekst = sTekst & sNumNav
sTekst = sTekst & "<td width=20% align=right class=sort11>"
sTekst = sTekst & sRightNav
sTekst = sTekst & "</TD></TR></TABLE>"
Sidetaeller = sTekst
End IF
End Function

koen = Request.QueryString("koen")
if koen = 99 then
koen2 = "%"
Else koen2 = koen
End if
Session("koen") = koen

foto = Request.QueryString("foto")
if foto = "" then
foto2 = ""
else
foto2 = "intet_billede.jpg"
End if
Session("foto") = foto

alderMin = Request.QueryString("alderMin")
If IsNumeric(alderMin) Then
alderMin2 = CInt(alderMin) - 1
Else
alderMin2 = 0
End If
Session("alderMin") = alderMin

alderMax = Request.QueryString("alderMax")
If IsNumeric(alderMax) Then
alderMax2 = CInt(alderMax) + 1
Else
alderMax2 = 100
End If
Session("alderMax") = alderMax

bopael = Request.QueryString("bopael")
if bopael = 99 then
bopael2 = "%"
Else bopael2 = bopael
End if
Session("bopael") = bopael

religion = Request.QueryString("religion")
if religion = 99 then
religion2 = "%"
Else religion2 = religion
End if
Session("religion") = religion

soeger = Request.QueryString("soeger")
if soeger = 99 then
soeger2 = "%"
Else soeger2 = soeger
End if
Session("soeger") = soeger

sLogin = Request.QueryString("sLogin")
Session("sLogin") = sLogin

'// fungerer ok:
'koen2 = "%"
'foto2 = ""
'alderMin2 = 15
'alderMax2 = 55
'bopael2 = "%"
'religion2 = "%"
'soeger2 = "%"
'sLogin = 1000

sSql = "SELECT * FROM bruger where"

sSql = sSql & " (koen LIKE '" & koen2 & "')"
sSql = sSql & " AND (brugerFilename NOT LIKE '" & foto2 & "')"
sSql = sSql & " AND (alder > " & alderMin2 & ")"
sSql = sSql & " AND (alder < " & alderMax2 & ")"
sSql = sSql & " AND (bopael LIKE '" & bopael2 & "')"
sSql = sSql & " AND (religion LIKE '" & religion2 & "')"
sSql = sSql & " AND (hvadsoegerdu LIKE '" & soeger2 & "')"
sSql = sSql & " AND (DateDiff('d', sidsteBesoeg, Now) < " & sLogin & ")
order by alder, bopael"

'// Funktioner og Sub til Databasen
Sub dbConnect()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open sConn
'arrRecords7 = GetRecordSet.getrows()

End Sub

Sub dbClose
'Conn.Close
set conn = nothing
End Sub

'// denne funktion, skal den slutte med at sætte recordsæt = "nothing"?
Function GetRecordSet()
Dim oRs
set oRs = Server.CreateObject("ADODB.Recordset")
oRs.pagesize = pagesize
oRs.Open sSql, sConn,1,1,1
set GetRecordSet = oRs
'arrRecords7 = GetRecordSet.getrows()
set oRs = nothing
End function

'// Funktioner og Sub til Læsevenlig udskrift af HTML koder
Sub WriteLine(strText)
Response.Write strText & vbCrLf

End Sub

' her udskrives oplysninger fra db
Sub VisIndhold()
if not rs.eof then
RS.AbsolutePage = PageNo
RowCount = pagesize
RecordNr = (pagesize * PageNo) - pagesize + 1

Do While Not rs.EOF and rowcount > 0

If RecordNr/2 = Int(RecordNr/2) Then
WriteLine "<tr bgcolor=ccff99><td class=sort11>"
Else
WriteLine "<tr bgcolor=ffffcc><td class=sort11>"
End if

WriteLine "&nbsp;" & RecordNr & ")&nbsp;"

WriteLine "</td><td class=sort11>"

Response.Write "<a href=""" & "topdating.asp?mode=big&id=" &
rs.Fields("brugerId") & """ target='_self'>" & rs.Fields("brugerNavn") &
"</a>"
Response.Write "</td><td align=center class=sort11>"

if rs.Fields("koen") = 1 then
Response.Write "<font face='Arial, Verdana, Helvetica'
color='0000ff'>M</font>"
else
Response.Write "<font face='Arial, Verdana, Helvetica'
color='ff00ff'>K</font>"
end if

Response.Write "</td><td align=center class=sort11>"

if rs.Fields("brugerFilename") = "intet_billede.jpg" then
Response.Write "<img src='../symboler/symbol_intet_foto.gif'>"
else
Response.Write "<img src='../symboler/symbol_foto.gif'>"
end if

Response.Write "</td><td align=center class=sort11>"
Response.Write rs.Fields("alder")

Response.Write "</td><td class=sort11>"

%>

<!-- #INCLUDE FILE="../bopael.asp" -->
<!-- #INCLUDE FILE="../uddarbejde.asp" -->

<%
Response.Write bopael2
Response.Write "</td><td class=sort11>"
Response.Write uddarbejde2
Response.Write "</td></tr><tr><td>"

RowCount = RowCount - 1
RecordNr = RecordNr + 1

rs.MoveNext

loop

end if
End Sub

dbConnect
set rs = GetRecordSet()

antalposter = rs.recordCount
numNav = Sidetaeller()

'// her er problemet:
arrRecords7 = rs.getrows()
Application.Contents("arrRecords7") = arrRecords7

'//her udskrives det hele:
Response.Write "<br>"
Response.write "<center><font face='Verdana, Arial' size='5'
color='ff0000'>" & "Her er " & antalposter & " profiler:" &
"</font></center><br>"
response.write "<table bordercolor='ff0000' border='0' width='95%'
align='center' cellpadding='3' cellspacing='0'><tr bgcolor='666699'
align='center'><td class='hvid11' width='8%'
align='left'>&nbsp;<b>Nr</b></td><td class='hvid11' width='18%'
align='left'><b>Brugernavn</b></td><td class='hvid11'
width='8%'><b>Køn</b></td><td class='hvid11' width='8%'><b>Foto</b></td><td
class='hvid11' width='15%'><b>Alder</b></td><td class='hvid11' width='21%'
align='left'><b>Bopæl</b></td><td class='hvid11' width='22%'
align='left'><b>Udd./arbejde</b></td></tr>"

VisIndhold()

'// her indsættes brevene ikke!!
'arrRecords7 = rs.getrows()
'Application.Contents("arrRecords7") = arrRecords7

response.write "</td></tr></table>"

if antalposter > pagesize then
Response.Write "<br><hr width='92%' size='1' color='606060'><center>"
end if

Response.Write numNav

Response.Write "<br><a href='soegeform.htm' target='_self'>Søg igen !</a>"
Response.Write "<br><br>"
Response.Write "<a href='2brevform.asp' target='_self'>Send brev til
disse</a><br>"
Response.Write "</center>"
%>

<br><br></TD></TR></TABLE>
<br>

<%
rs.close
set rs = nothing
dbClose
%>

</body>
</html>



 
 
Peter Lykkegaard (10-05-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 10-05-02 10:32


"Jakob Munck" <jakob.munck@tdcadsl.dk> wrote in message
news:3cda4594$0$18614$edfadb0f@dspool01.news.tele.dk...
> Jeg har noget velfungerende kode (se nedenfor), som skal gøre det muligt
for
> mig først at udskrive et antal records fra en database, og derefter sende
en
> intern mail via en database til disse personer. Men der er én ting galt,
> nemlig den, at når jeg har omdannet recordsettet "rs" til en array med
> følgende kode:
>
> arrRecords7 = rs.getrows()
>
> så bliver mit recordset ødelagt,

Smid en movefirst efter, det skulle klare det
Evt kan du bruge clone metoden

mvh/Peter Lykkegaard



N/A (10-05-2002)
Kommentar
Fra : N/A


Dato : 10-05-02 19:44



Jørn Andersen (10-05-2002)
Kommentar
Fra : Jørn Andersen


Dato : 10-05-02 19:44

On Fri, 10 May 2002 16:47:11 +0200, "Jakob Munck"
<jakob.munck@tdcadsl.dk> wrote:

>Tusind tak !
>
>"rs.MoveFirst" løse problemerne, men jeg forstår - desværre - ikke hvorfor
>"rs.MoveFirst" gør en forskel her. Hvis du eller en anden kan give en kort
>forklaring til berigelse af min forstand, så vil jeg være glad.

..getrows svarer til at gennemløbe dit recordset for at hente data over
i et array. Når det er gennemløbet står cursoren på positionen .eof -
altså efter den sidste record. .MoveFirst flytter så cursoren op til
den første record.

Mvh. Jørn


--
Jørn Andersen,
Brønshøj

Jakob Munck (10-05-2002)
Kommentar
Fra : Jakob Munck


Dato : 10-05-02 21:06

Således oplyst.

Mange Tak !

v.h.
Jakob Munck



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste