|
| Hente data fra en celle i en db tabel Fra : Bjørn |
Dato : 18-01-02 13:52 |
|
Jeg har prøvet på at hente data fra min tabel, hvor jeg kun skal
bruge dataen fra en celle... jeg er nået frem til dette... men
det virker ik.
'hent fra tabel brnr ved id=1
strSQL = "Select * From brnr Where Id = '1'"
Set rs = Conn.Execute(strSQL)
Response.Write rs("nr")
hvad er det galt, jeg har forbindelsen til db'en iorden, har
skrevet i den
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Jørn Andersen (18-01-2002)
| Kommentar Fra : Jørn Andersen |
Dato : 18-01-02 14:10 |
|
On Fri, 18 Jan 2002 12:52:19 +0000 (UTC), Bjørn
<support@service2001.dk> wrote:
>Jeg har prøvet på at hente data fra min tabel, hvor jeg kun skal
>bruge dataen fra en celle... jeg er nået frem til dette... men
>det virker ik.
>
>'hent fra tabel brnr ved id=1
>strSQL = "Select * From brnr Where Id = '1'"
>
>Set rs = Conn.Execute(strSQL)
>
>Response.Write rs("nr")
>
>hvad er det galt, jeg har forbindelsen til db'en iorden, har
>skrevet i den
Det er lidt svært at svare på, når vi ikke ved, hvad problemet er:
Får du en fejlmeddelelse - eller bare ikke noget resultat?
En skud i tågen: Hvis din Id er numerisk, skal du ikke have glyfferne
med:
strSQL = "Select * From brnr Where Id = 1"
Noget andet er, at hvis du kun skal bruge "nr"-feltet, så er der jo
ingen grund til at belaste databasen med at hente alle felter i posten
- så prøv med:
strSQL = "Select nr From brnr Where Id = 1"
- det gør også koden lidt mere gennemskuelig.
Good luck,
Jørn
| |
Bjørn (19-01-2002)
| Kommentar Fra : Bjørn |
Dato : 19-01-02 12:54 |
|
Jeg har prøvet men det virker ik... trist... problemet er at jeg vil slå
en cookie ind i.... men selv uden cookie'en virker det ikke... her er
hele min kode.....
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN &
"DBQ=D:\websider\global\service2001.dk\service2001.dk\db\counter.mdb"
Conn.Open DSN
Function fixQuotes( theString )
fixQuotes = Replace( theString, "'", "''" )
End Function
strSQL = "Select nr From brnr Where Id = 1"
Set rs = Conn.Execute(strSQL)
' Informationer lagres i cookien
Response.Cookies("service2001")("nr") = rs
' Cookien skal leve i 24 timer
Response.Cookies("service2001").Expires = Date+365
' Cookien skal kun kunne læses af www.service2001.dk
Response.Cookies("service2001").Domain = " www.service2001.dk"
' Cookien skal kun kunne læses af sider som ligger i denne mappe
Response.Cookies("service2001").Path = "/"
' Skriv informationerne til klienten
strTekst = Request.Cookies("service2001")("nr")
Response.Write "<p>" & strTekst
con.close
set con = nothing
%>
fejlmeddelsen lyder...
Siden kan ikke vises
Der er problemer med den side, du prøver at åbne, og den kan ikke vises.
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Jørn Andersen (19-01-2002)
| Kommentar Fra : Jørn Andersen |
Dato : 19-01-02 14:13 |
|
On Sat, 19 Jan 2002 11:53:51 +0000 (UTC), Bjørn
<support@service2001.dk> wrote:
Hej Bjørn,
Lige et par fif til, hvordan du *selv* kan lede efter fejl :)
1. Når du har en fejlmeddelelse som:
>fejlmeddelsen lyder...
>Siden kan ikke vises
>Der er problemer med den side, du prøver at åbne, og den kan ikke vises.
- så skal du slå "Friendly HTTP Error messages" (eller noget i den
retning *fra* i din browser (MSIE) (under Avanceret i
Internet-indstillinger).
Så får du nogle mere sigende fejlmeddelelser.
2. Når du har en ASP-side, som ender med at give en fejl, handler det
om at indgrænse *hvilken del* af scriptet det går galt i.
Hvis du går scriptet igennem, så er det helt sikkert nogle steder
undervejs, hvor du har en nogenlunde idé om, hvad resultatet af en
beregning el. lign. skal være.
Her skal du så udskrive resultatet for at se, om det nu også er som du
forventer.
Det gøres ved at indsætte Response.Write pasende steder - fx:
<SNIP>
>
>Function fixQuotes( theString )
> fixQuotes = Replace( theString, "'", "''" )
>End Function
>
>strSQL = "Select nr From brnr Where Id = 1"
Response.Write strSQL
Response.End
- altså inden Execute
(i dette tilfæde er det lidt meningsløst, da der ikke er nogen
variable i SQL-strengen, men ellers er det tit her, ting går galt)
Hvis det ser OK ud, så fjern (eller udkommentér) de to linier - og hop
videre til næste:
>Set rs = Conn.Execute(strSQL)
Hvis vi lige indskyder:
intNr = rs("nr")
- og så udskriver:
Response.Write intNr
Response.End
Her skal det så vise sig, om du får dit forventede "nr" ud. Hvis du
gør det, kan du fortsætte med at lagre den i Cookien osv.
>' Informationer lagres i cookien
>Response.Cookies("service2001")("nr") = rs
Det er nok her det går galt. Nu er jeg ikke så stiv i Cookies, men mon
ikke syntaksen er:
Response.Cookies("service2001")("nr") = rs("nr")
<SNIP>
>con.close
>set con = nothing
Husk også:
rs.Close
Set rs = Nothing
Til slut:
Metoden her er altså at dele scriptet op i smådele og teste hver del
for sig, inden du går videre.
Good luck,
Jørn
| |
Jørn Andersen (19-01-2002)
| Kommentar Fra : Jørn Andersen |
Dato : 19-01-02 14:24 |
|
On Sat, 19 Jan 2002 11:53:51 +0000 (UTC), Bjørn
<support@service2001.dk> wrote:
Hej Bjørn,
Lige et par fif til, hvordan du *selv* kan lede efter fejl :)
1. Når du har en fejlmeddelelse som:
>fejlmeddelsen lyder...
>Siden kan ikke vises
>Der er problemer med den side, du prøver at åbne, og den kan ikke vises.
- så skal du slå "Friendly HTTP Error messages" (eller noget i den
retning *fra* i din browser (MSIE) (under Avanceret i
Internet-indstillinger).
Så får du nogle mere sigende fejlmeddelelser.
2. Når du har en ASP-side, som ender med at give en fejl, handler det
om at indgrænse *hvilken del* af scriptet det går galt i.
Hvis du går scriptet igennem, så er det helt sikkert nogle steder
undervejs, hvor du har en nogenlunde idé om, hvad resultatet af en
beregning el. lign. skal være.
Her skal du så udskrive resultatet for at se, om det nu også er som du
forventer.
Det gøres ved at indsætte Response.Write pasende steder - fx:
<SNIP>
>strSQL = "Select nr From brnr Where Id = 1"
Response.Write strSQL
Response.End
- altså inden Execute
(i dette tilfæde er det lidt meningsløst, da der ikke er nogen
variable i SQL-strengen, men ellers er det tit her, ting går galt)
Hvis det ser OK ud, så fjern (eller udkommentér) de to linier - og hop
videre til næste:
>Set rs = Conn.Execute(strSQL)
Hvis vi lige indskyder:
intNr = rs("nr")
- og så udskriver:
Response.Write intNr
Response.End
Her skal det så vise sig, om du får dit forventede "nr" ud. Hvis du
gør det, kan du fortsætte med at lagre den i Cookien osv.
>' Informationer lagres i cookien
>Response.Cookies("service2001")("nr") = rs
Det er nok her det går galt. Nu er jeg ikke så stiv i Cookies, men mon
ikke syntaksen er:
Response.Cookies("service2001")("nr") = rs("nr")
<SNIP>
>con.close
>set con = nothing
Du åbnede Conn, men lukker Con :(
Husk også:
rs.Close
Set rs = Nothing
--------------
Metoden her er altså at dele scriptet op i smådele og teste hver del
for sig, inden du går videre.
Et tip til når du får det til at køre:
Det er altid en god idé at databseforbindelsen er åben så kort tid som
muligt. I dette tilfælde, hvor den kun skal hente én værdi, kan vi
straks gemme værdien i en variabel og så lukke databaseforbindelsen
med det samme:
Set rs = Conn.Execute(strSQL)
intNr = rs("nr")
Conn.Close
Set Conn = Nothing
rs.Close
Set rs = Nothing
- du kan så herefter bruge værdien - intNr - på alle mulige måder
(beregne på den, udskrive den, gemme den i en Cookie) - altsammen uden
at databaseforbindelsen er åben.
Det giver mindre belastning af serveren og dermed hurtigere afvikling.
I dette simple tilfælde er forskellen nok ikke mærkbar, men har du
mange brugere, kan det hurtigt få betydning.
Vend tilbage, når du har fået nogle mere beskrivende fejlmeddelser :)
Good luck,
Jørn
| |
Bjørn (19-01-2002)
| Kommentar Fra : Bjørn |
Dato : 19-01-02 15:22 |
|
Jeg siger mange tak... jeg har fuldt dig råd og det virkede... endnu en gang
tak
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Jørn Andersen (19-01-2002)
| Kommentar Fra : Jørn Andersen |
Dato : 19-01-02 15:29 |
|
On Sat, 19 Jan 2002 14:22:26 +0000 (UTC), Bjørn
<support@service2001.dk> wrote:
>Jeg siger mange tak... jeg har fuldt dig råd og det virkede... endnu en gang
>tak
Hvad var fejlen så?
Mvh. Jørn
| |
Bjørn (19-01-2002)
| Kommentar Fra : Bjørn |
Dato : 19-01-02 15:42 |
|
fejlen var at jeg ikke havde fået ("nr") på denne linie
' Informationer lagres i cookien
Response.Cookies("service2001")("nr") = rs("nr")
men den ville ikke godtage...hvorfor ved jeg ikke
Set rs = Conn.Execute(strSQL)
intNr = rs("nr")
og at jeg ik fik lukket rs
rs.Close
Set rs = Nothing
samt at jeg ikke fik lukket db'en som jeg havde åbnet den med
conn.close
set conn = nothing
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Bjørn (18-01-2002)
| Kommentar Fra : Bjørn |
Dato : 18-01-02 14:13 |
|
"Bjørn" <support@service2001.dk> wrote in message
news:a295q3$m4n$1@sunsite.dk...
> Jeg har prøvet på at hente data fra min tabel, hvor jeg kun skal
> bruge dataen fra en celle... jeg er nået frem til dette... men
> det virker ik.
>
> 'hent fra tabel brnr ved id=1
> strSQL = "Select * From brnr Where Id = '1'"
>
> Set rs = Conn.Execute(strSQL)
>
> Response.Write rs("nr")
Forventer du mere end et svar fra databasen?
Hvis ja, kun du evt gøre fådan
While Not RS.EOF
Response.Write rs("nr")
Wend
--
Bjørn (åbenbart ikke den eneste af slagsen)
Bil- og computernød
| |
Jakob Andersen (18-01-2002)
| Kommentar Fra : Jakob Andersen |
Dato : 18-01-02 14:09 |
|
"Bjørn" <support@service2001.dk> wrote in message
news:a295q3$m4n$1@sunsite.dk...
> Jeg har prøvet på at hente data fra min tabel, hvor jeg kun skal
> bruge dataen fra en celle... jeg er nået frem til dette... men
> det virker ik.
>
> 'hent fra tabel brnr ved id=1
> strSQL = "Select * From brnr Where Id = '1'"
Hvis du kun skal bruge den ene celle så nøjes med:
strSQL = "Select nr From brnr Where Id = '1'"
> Set rs = Conn.Execute(strSQL)
>
> Response.Write rs("nr")
>
> hvad er det galt, jeg har forbindelsen til db'en iorden, har
> skrevet i den
Hvilken fejl får du?
--
Jakob Andersen
| |
|
|