09. februar 2004 - 17:21Der er
11 kommentarer og 1 løsning
getrows og aktive links
Hej - jeg skal trække mails ud fra min access database med deltagerne fra 7 forskellige projekter. Jeg regnede med at prøve at bruge getrows - men har i den forbindelse 2 problemer.
Kode:
<% Set RS = server.createobject ("ADODB.recordset") SQL = "SELECT email FROM deltagere WHERE project1 = true ORDER by email asc" ConnString= "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database.mdb") RS.open SQL, ConnString, 1
if not rs.eof then alldata=rs.getrows
For i=0 to UBound(alldata,2) emails = alldata(0,i) & "," finalstring = finalstring & emails Next finalstring = left(finalstring,len(finalstring)-1) response.write "Emails: " & finalstring & ""
end if
RS.Close Set RS = Nothing
%>
Problemer:
1) Jeg vil gerne at emails'ene kommer udsom EET aktivt mailto-link - sådan at jeg kan emaile til alle ved at klikke på EET link.
2) Jeg skal som sagt trække ud fra 7 projekter - skal det laves med 7 udgaver af ovenstående kode - eller kan genbruge database-åbningen eller sådan - det er jo kun SQL'en der er forskellig? Der vil jeg meget gerne se et eksempel med flere udtræk...
for i = 1 to 7 step 1 SQL = "SELECT email FROM deltagere WHERE project" & i & " = true ORDER by email asc" RS.open SQL, ConnString, 1 finalString = "mailto:" while not RS.EOF finalstring = finalString & RS("email") & "," RS.MoveNext wend Response.write finalString next %>
måske jeg har misforstået
/nute
Synes godt om
Slettet bruger
09. februar 2004 - 17:34#2
Som jeg forstår det er getrows god hvis det eks. drejer sig om _mange_ poster der skal trækkes ud.
Ift. din løsning så skal mail-adresserne ikke samles for alle 7 projekter - men for hvert projekt - og så altså i EET aktivt mailto-link...
det eneste getRows gør, er at kopiere multiple rækker, fra et recordset, ind i en 2-dimentional array. kan ikke helt se pointet med at du bruger det her, for det eneste du gør, er at løbe alle records igennem for at læse ud emailadresser. det er en omvej at skulle først hive ud alle records, lægge dem ind i en array for så at læse dem ud fra din array.
min løsning vil give et resultat ála:
mailadresse for projekt1 = mailto:[mange aresser for projekt1] mailadresse for projekt2 = mailto:[mange aresser for projekt2] ... mailadresse for projekt7 = mailto:[mange aresser for projekt7]
Aha, nej, din løsning kan for så vidt godt bruges - men der må være en glitch i det loop - for jeg får "Operation is not allowed when the object is open." - men du åbner vel også bare igen og igen - som det ser ud nu?
Synes godt om
Slettet bruger
09. februar 2004 - 17:52#5
Hov - ja i øvrigt - jeg vil faktisk gerne have begge løsninger - en for hvert projekt - og een samlet med ALLE som du angiver det...
mailadresse for projekt1 = mailto:[mange aresser for projekt1] mailadresse for projekt2 = mailto:[mange aresser for projekt2] ... mailadresse for projekt7 = mailto:[mange aresser for projekt7]
Altså : dette virker jo sådan set - her kun for projekt1... men jeg vil jo helst ikke skulle åbne nye database connections hver gang. Hvis du kan klare det - så er pointene dine:
ja, jeg har nok lige glemt at lukke mit RS inden jeg prøver at åbne det igen. en anden lille ændring, vil så være at lægge alle adresser ind i en array. jeg prøvet lidt med getRows metoden for dette, men jeg fik den ikke umiddelbart til at fungere, så jeg har gjort det lidt anderledes (har ikke tid til at lege for meget med det)
<% Set RS = server.createobject ("ADODB.recordset")
for i = 0 to 6 step 1 SQL = "SELECT email FROM deltagere WHERE project" & ( i + 1 ) & " = true ORDER by email asc" RS.open SQL, ConnString, 1 mailString = "" while not RS.EOF mailString = mailString & RS("navn") RS.MoveNext if( i < 6 ) then mailString = mailString & "," else if( not RS.EOF ) then mailString = mailString & "," end if end if wend RS.Close arrMailRecipients(i) = mailString next for i = 0 to 6 step 1 Response.Write( "<a href=""mailto:" & arrMailRecipients( i ) & """>Projekt " & ( i + 1 ) & "</a><br>" ) next %> <a href="mailto:<%= JOIN( arrMailRecipients ) %>">alle projekter</a>
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.