/ 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
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



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste