|
| Hente x antal tegn fra database Fra : Frederik Østeraa |
Dato : 15-09-03 20:58 |
|
Hejsa Gruppe.
Jeg er ved at lave en aktivitetskalender, hvor der kun skal hentes de første
hundrede tegn fra feltet 'aktivitet' i databasen.
Jeg prøver at hente de første hundrede tegn således:
-------------
Set database = Server.CreateObject ("ADODB.Connection")
database.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=<STI TIL
DATABASEN>")
Set hentAktivitet = Server.CreateObject ("ADODB.Recordset")
hentAktivitet.Open "SELECT dato, klokken, LEFT( aktivitet, 100 ) AS Teaser
FROM aktiviteter WHERE dato < date() ORDER BY dato" ,database
While not hentAktivitet.EOF
Response.Write hentAktivitet.Fields("dato") & " - " &
hentAktivitet.Fields("klokken") & " - " & hentAktivitet.Fields("aktivitet")
& "<br><br>"
hentAktivitet.MoveNext
Wend
-------------
Jeg får fejlen:
-------------
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name
or ordinal.
/aktivitetskalender/default.asp, line 61
-------------
Jeg er sikker på at felterne findes i databasen, og hvis jeg fjerner
'LEFT( aktivitet, 100 ) AS Teaser' og sætter 'aktivitet' ind i istedet,
virker det også fint, men så bliver alle felterne jo hentet fra databasen.
Er der nogle der kan hjælpe mig?
På forhånd tak.
Mvh Frederik Østeraa
| |
Peter Lykkegaard (15-09-2003)
| Kommentar Fra : Peter Lykkegaard |
Dato : 15-09-03 21:05 |
|
Frederik Østeraa wrote:
>
> Set hentAktivitet = Server.CreateObject ("ADODB.Recordset")
> hentAktivitet.Open "SELECT dato, klokken, LEFT( aktivitet, 100 ) AS
> Teaser FROM aktiviteter WHERE dato < date() ORDER BY dato" ,database
>
> While not hentAktivitet.EOF
> Response.Write hentAktivitet.Fields("dato") & " - " &
> hentAktivitet.Fields("klokken") & " - " &
> hentAktivitet.Fields("aktivitet") & "<br><br>"
----------------------^^^^^^^
Du ombøber feltnavnet til "teaser" i din SQL statement men bibeholder
"aktivitet" i din løkke
Enter skal det være
LEFT( aktivitet, 100 ) AS Aktivitet
Eller
Response.Write hentAktivitet.Fields("dato") & " - " & _
hentAktivitet.Fields("klokken") & " - " & _
hentAktivitet.Fields("teaser") & "<br><br>"
mvh/Peter Lykkegaard
| |
Christian M. Nielsen (15-09-2003)
| Kommentar Fra : Christian M. Nielsen |
Dato : 15-09-03 21:19 |
|
"Peter Lykkegaard" <polonline@hotmail.dk> wrote in message
news:3f661c50$0$32523$edfadb0f@dread16.news.tele.dk...
> Enter skal det være
> LEFT( aktivitet, 100 ) AS Aktivitet
>
> Eller
> Response.Write hentAktivitet.Fields("dato") & " - " & _
> hentAktivitet.Fields("klokken") & " - " & _
> hentAktivitet.Fields("teaser") & "<br><br>"
Alternativ:
Hent feltet som du skal, men udskriv kun de første 100 tegn på denne måde.
<%= left(oRS("aktivitet"),100)%>
Mvh / Regards
-=< Christian >=-
What capital has 164 letters in its name? See my web page to find out.
http://www.cmnielsen.dk ICQ: 25308942
"If you kneel at the fence by the priest, you get dog biscuits. Anna 6
years."
| |
Jørn Andersen (16-09-2003)
| Kommentar Fra : Jørn Andersen |
Dato : 16-09-03 01:54 |
|
On Mon, 15 Sep 2003 22:19:29 +0200, "Christian M. Nielsen"
<look_for_it@my.webpage> wrote:
>"Peter Lykkegaard" <polonline@hotmail.dk> wrote in message
>news:3f661c50$0$32523$edfadb0f@dread16.news.tele.dk...
>
>> Enter skal det være
>> LEFT( aktivitet, 100 ) AS Aktivitet
<snip>
>Hent feltet som du skal, men udskriv kun de første 100 tegn på denne måde.
>
><%= left(oRS("aktivitet"),100)%>
Af de to ville jeg klart vælge den første. Der er jo ingen grund til
at hente en masse ekstra hjem blot for at smide det væk, når SQL'en
kan nøjes med at hente lige præcis det man har brug for :)
--
Jørn Andersen,
Brønshøj
| |
Frederik Østeraa (16-09-2003)
| Kommentar Fra : Frederik Østeraa |
Dato : 16-09-03 12:19 |
|
"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:tkncmvouk5n3ia35bk1bbd6asvfetmmsil@4ax.com...
>
> Af de to ville jeg klart vælge den første. Der er jo ingen grund til
> at hente en masse ekstra hjem blot for at smide det væk, når SQL'en
> kan nøjes med at hente lige præcis det man har brug for :)
>
> --
> Jørn Andersen,
> Brønshøj
Det kan jeg sagtens forstå, men jeg kan altså kun få det til at virke med
den anden mulighed.
Hvad gør jeg forkert her?
hentAktivitet.Open "SELECT dato, klokkeslet, LEFT( aktivitet, 100 ) AS
Teaser FROM aktiviteter WHERE dato < date() ORDER BY dato" ,database
Jeg udskriver den med
Response.Write hentAktivitet.Fields("Teaser")
Jeg kan som sagt godt få det til at virke ved at hente hele feltet, og kun
udskrive de første 100 tegn, men hvis jeg kan få det til at virke på denne
måde vil jeg da hellere det :)
Så er der nogle der lige kan hjælpe mig helt igennem?
Mvh
Frederik Østeraa
| |
Jørn Andersen (16-09-2003)
| Kommentar Fra : Jørn Andersen |
Dato : 16-09-03 13:31 |
|
On Tue, 16 Sep 2003 13:19:19 +0200, "Frederik Østeraa"
<frederik@oesteraa.dk> wrote:
>Hvad gør jeg forkert her?
>
>hentAktivitet.Open "SELECT dato, klokkeslet, LEFT( aktivitet, 100 ) AS
>Teaser FROM aktiviteter WHERE dato < date() ORDER BY dato" ,database
>
>Jeg udskriver den med
>Response.Write hentAktivitet.Fields("Teaser")
>
>Jeg kan som sagt godt få det til at virke ved at hente hele feltet, og kun
>udskrive de første 100 tegn, men hvis jeg kan få det til at virke på denne
>måde vil jeg da hellere det :)
Jeg har for en sikkerheds skyld lige prøvet på en Access 2000 db, og
der fungerer det fuldstændig som du har skrevet det.
--
Jørn Andersen,
Brønshøj
| |
///JJ (16-09-2003)
| Kommentar Fra : ///JJ |
Dato : 16-09-03 16:58 |
|
"Frederik Østeraa" <frederik@oesteraa.dk> wrote in message
news:bk6rjn$l5a$1@sunsite.dk...
>
> "Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
> news:tkncmvouk5n3ia35bk1bbd6asvfetmmsil@4ax.com...
> >
> > Af de to ville jeg klart vælge den første. Der er jo ingen grund til
> > at hente en masse ekstra hjem blot for at smide det væk, når SQL'en
> > kan nøjes med at hente lige præcis det man har brug for :)
> >
> > --
> > Jørn Andersen,
> > Brønshøj
>
> Det kan jeg sagtens forstå, men jeg kan altså kun få det til at virke med
> den anden mulighed.
> Hvad gør jeg forkert her?
Medmindre du har ændret i kildekoden mens indlæggene er skrevet, ligger din
fejl her:
> hentAktivitet.Open "SELECT dato, klokkeslet, LEFT( aktivitet, 100 ) AS
> Teaser FROM aktiviteter WHERE dato < date() ORDER BY dato" ,database
> Response.Write hentAktivitet.Fields("dato") & " - " & _
> hentAktivitet.Fields("klokken") & " - " & _
> hentAktivitet.Fields("teaser") & "<br><br>"
Du selecter et felt ved navn "klokkeslet" men udskriver et felt ved navn
"klokken".
Fejlen (som du poster i det første indlæg) betyder i hvert fald at det felt
du beder ASP om at udskrive ikke findes i det recordset du arbejder med. Der
kan være sket en smutter da du skrev koden i dit oprindelige indlæg, for i
dit indlæg kl. 22.19 skriver du noget andet - men det kan jo også være at du
har ændret i koden. Anyway evt. post alt din kode igen og vi skal hjælpe
dig.
mvh
///JJ
| |
Jens Gyldenkærne Cla~ (16-09-2003)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 16-09-03 12:50 |
|
Frederik Østeraa skrev:
> Det kan jeg sagtens forstå, men jeg kan altså kun få det til
> at virke med den anden mulighed.
Hvilken database benytter du? Left-funktionen virker i MSSQL og
Access - men så vidt jeg husker ikke i MySQL. Funktionen findes
givetvis i alle normale databaser, men den kan godt hedde noget
andet end Left.
> hentAktivitet.Open "SELECT dato, klokkeslet, LEFT( aktivitet,
> 100 ) AS Teaser FROM aktiviteter WHERE dato < date() ORDER BY
> dato" ,database
Det ser udmærket ud. Hvilken fejl får du?
> Jeg udskriver den med
> Response.Write hentAktivitet.Fields("Teaser")
Det ser også rigtigt ud. Som ovenfor - det er uhyre vigtigt at vide
hvilken fejlmeddelelse du får.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Frederik Østeraa (16-09-2003)
| Kommentar Fra : Frederik Østeraa |
Dato : 16-09-03 13:40 |
|
"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
news:Xns93F88CB9B18ACjcdmfdk@gyrosmod.dtext.news.tele.dk...
>
> Hvilken database benytter du?
Acces
> Left-funktionen virker i MSSQL og
> Access - men så vidt jeg husker ikke i MySQL. Funktionen findes
> givetvis i alle normale databaser, men den kan godt hedde noget
> andet end Left.
Ja, på asp-faq.dk står der noget om at den kan hedde "substring".
> Det ser udmærket ud. Hvilken fejl får du?
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name
or ordinal.
/aktivitetskalender/default.asp, line 61
Kan du hjælpe mig?
For er virkelig lost...
Mvh
Frederik Østeraa
| |
Jens Gyldenkærne Cla~ (16-09-2003)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 16-09-03 13:56 |
|
Frederik Østeraa skrev:
> ADODB.Recordset error '800a0cc1'
> Item cannot be found in the collection corresponding to the
> requested name or ordinal.
> /aktivitetskalender/default.asp, line 61
Og linje 61 - er det den med Open? Angiv gerne hele linjen i
kildefilen.
Der er to muligheder - enten har du skrevet feltnavnet
("aktivitet") forkert i sql-sætningen, eller også er dit alias
("Teaser") skrevet forkert i udskriftslinjen.
Prøv at læse < http://asp-faq.dk/article/?id=41> for at se hvad der
er relevant at medtage i et spørgsmål.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
|
|