/ 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
Sum af felt i database via asp
Fra : JonZ


Dato : 18-12-07 08:25

Hej

Jeg skal lægge tallene i et felt sammen, og har skrevet følgende
linje:

Set rs = conn.execute("select sum(feltnavn) as lodretsum from
TABEL where XXXX = '" cp1 "'" )

Men får en fejl der siger:

En standardegenskab for objektet blev ikke fundet.


Felt typen er tal.

Nogen der kan hjælpe?

Hilsen JonZ

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Philip Nunnegaard (18-12-2007)
Kommentar
Fra : Philip Nunnegaard


Dato : 18-12-07 09:44

"JonZ" <jonz@ofir.dk> skrev :

> Set rs = conn.execute("select sum(feltnavn) as lodretsum from
> TABEL where XXXX = '" cp1 "'" )

Hvad bliver SQL-sætningen, når du udskriver den?
Mit gæt er:
select sum(feltnavn) as lodretsum from TABEL where XXXX = '

Har du forsøgt dette?
Set rs = conn.execute("select sum(feltnavn) as lodretsum from TABEL where
XXXX = '" & cp1 & "'" )

Eneste forskel er &-tegnene.


JonZ (18-12-2007)
Kommentar
Fra : JonZ


Dato : 18-12-07 10:17

Philip Nunnegaard wrote in dk.edb.internet.webdesign.serverside.asp:
>
> Har du forsøgt dette?
> Set rs = conn.execute("select sum(feltnavn) as lodretsum from TABEL where
> XXXX = '" & cp1 & "'" )
>
> Eneste forskel er &-tegnene.
>

Hej Philip

Det er faktisk sådan min linje ser ud, jeg havde bare ikke fået dem skrevet
herinde. ;o(

Så linjen ser altså således ud.

Set rs = conn.execute("select sum(feltnavn) as lodretsum from TABEL where
XXXX = '" & cp1 & "'" )

Men jeg får stadig fejlen.

Hilsen JonZ

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Philip Nunnegaard (18-12-2007)
Kommentar
Fra : Philip Nunnegaard


Dato : 18-12-07 16:32

"JonZ" <jonz@ofir.dk> skrev:

> Set rs = conn.execute("select sum(feltnavn) as lodretsum from TABEL where
> XXXX = '" & cp1 & "'" )

Så gentager jeg: Hvilket output giver SQL-sætningen - altså hvis du FØR
conn.execute-linien skriver:
response.write "select sum(feltnavn) as lodretsum from TABEL where XXXX = '"
& cp1 & "'"

Den burde - hvis den er fejlfri - give noget i retning af:
select sum(feltnavn) as lodretsum from TABEL where XXXX = '67'

http://asp-faq.dk/article/?id=41

En anden mulighed, såfremt det er XXXX der er et tal-felt: Fjern
aprostrofferne omkring tallet, så det bliver:
Set rs = conn.execute("select sum(feltnavn) as lodretsum from TABEL where
XXXX = " & cp1)


JonZ (18-12-2007)
Kommentar
Fra : JonZ


Dato : 18-12-07 18:16

Philip Nunnegaard wrote in dk.edb.internet.webdesign.serverside.asp:
> Så gentager jeg: Hvilket output giver SQL-sætningen - altså hvis du FØR
> conn.execute-linien skriver:
> response.write "select sum(feltnavn) as lodretsum from TABEL where XXXX = '"
> & cp1 & "'"
>
> Den burde - hvis den er fejlfri - give noget i retning af:
> select sum(feltnavn) as lodretsum from TABEL where XXXX = '67'

Det er præsis sådan den ser ud.

>
> http://asp-faq.dk/article/?id=41
>
> En anden mulighed, såfremt det er XXXX der er et tal-felt: Fjern
> aprostrofferne omkring tallet, så det bliver:
> Set rs = conn.execute("select sum(feltnavn) as lodretsum from TABEL where
> XXXX = " & cp1)
>
Jeg har prøvet at fjerne oprostrofferne så før jeg følgende fejl:

Datatyperne stemmer ikke overens i kriterieudtrykket.

XXXX er et tal felt.

Hilsen JonZ


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Philip Nunnegaard (18-12-2007)
Kommentar
Fra : Philip Nunnegaard


Dato : 18-12-07 21:15

"JonZ" <jonz@ofir.dk> skrev i meddelelsen
news:4768004e$0$90265$14726298@news.sunsite.dk...

> Jeg har prøvet at fjerne oprostrofferne så før jeg følgende fejl:
>
> Datatyperne stemmer ikke overens i kriterieudtrykket.
>
> XXXX er et tal felt.

Hmmm... Så er gode dyr rådne.
Nogle gange kan den ikke rigtigt forstå, om værdien af en variabel er et tal
eller en streng, der tilfældigvis ligner et tal.
Jeg har gerne klaret den ved at lægge 0 (nul) til for at få den til at
fatte, at det er et tal.

I dit tilfælde:
cp1 = cp1 + 0


Jørn Andersen (19-12-2007)
Kommentar
Fra : Jørn Andersen


Dato : 19-12-07 05:07

On Tue, 18 Dec 2007 21:15:22 +0100, "Philip Nunnegaard"
<philip@fjerndettehitsurf.dk> wrote:

>Jeg har gerne klaret den ved at lægge 0 (nul) til for at få den til at
>fatte, at det er et tal.
>
>I dit tilfælde:
>cp1 = cp1 + 0

Det er rigtigt, at det ASP-mæssigt vil gøre det til en tal-type (hvis
cp1 vel at mærke er et tal - ellers får du en fejl).

Men den rigtge måde at "type-caste" på er ved at bruge de funktioner,
der er beregenet til formålet, fx: CInt, CDbl osv. afhængigt af hvilket
tal det er.

Men i JonZ's tilfælde er det jo ikke problemet, da det alligevel er en
del af en SQL-*streng*.


Mvh. Jørn

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

Jørn Andersen (19-12-2007)
Kommentar
Fra : Jørn Andersen


Dato : 19-12-07 05:39

On 18 Dec 2007 07:25:18 GMT, JonZ <jonz@ofir.dk> wrote:

>Jeg skal lægge tallene i et felt sammen, og har skrevet følgende
>linje:
>
>Set rs = conn.execute("select sum(feltnavn) as lodretsum from
>TABEL where XXXX = '" cp1 "'" )
>
>Men får en fejl der siger:
>
>En standardegenskab for objektet blev ikke fundet.

Har fejlen et nummer?
Kan du ikke poste det?

>Felt typen er tal.

Som Philip skriver, mangler du et par &'er, og hvis XXXX er et tal-felt,
skal der ikke være '-er om. Desuden vil jeg helt generelt foreslå, at
lægge SQL-strenge ind i en variabel:

strSql = SELECT sum(feltnavn) AS lodretsum" & _
" FROM tabel WHERE XXXX = " & cp1
Set rs = conn.execute(strSql)

Så ville du have fundet de manglende &-tegn først og løst det - fordi du
så først ville få fejlmeldingen i linien, der starter med strSql = ...

Hvis du så stadig får fejl i den næste linie (Set rs ...), så kan der
generelt være tale om:
- ASP-script-fejl
- database-fejl (forkert SQL - fx '' om talfelters indhold eller andet)
- fejl i forbindelse med dannelse af objektet
(eller andet)

Hvis du mistænker SQL-strengen (men ikke er sikker), så start med at
lave en SQL-streng, du er sikker på virker - fx:
strSql = "SELECT feltnavn FROM tabel WHERE XXXX = 67"

Hvis det stadig ikke virker, så er det nok ikke SQL-strengen ...

I dit tilfælde ser det ud til, at det er under dannelsen af objektet,
det går galt. ("En standardegenskab for objektet blev ikke fundet.")

Hvis du har fejl-nummeret (fx noget der ligner: 80020003), kan du slå
fejlen op på:
<url: http://www.aspfaq.com/>

Et gæt kunne være, at du ikke har åbnet conn-objektet.
Først:
Set conn = Server.CreateObject("ADODB.connection")
- som definerer objektet

Så:
Conn.Open strDsn
- hvor strDsn er din DSN-streng.

Men det er bare et skud i tågen ...

Pointen i den "pædagogiske" smøre er, at du er havnet i en situation,
hvor der kan være flere fejl i samme linie. Så det at "skille linien
ad", simplificere og gå logisk frem er en god måde at komme videre på.


Good luck!

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

JonZ (19-12-2007)
Kommentar
Fra : JonZ


Dato : 19-12-07 09:53

Jørn Andersen wrote in dk.edb.internet.webdesign.serverside.asp:
> >
> >En standardegenskab for objektet blev ikke fundet.
>
> Har fejlen et nummer?

8002000E

>
> Hvis du har fejl-nummeret (fx noget der ligner: 80020003), kan du slå
> fejlen op på:
> <url: http://www.aspfaq.com/>
>

Jeg har selv prøvet at søge og jeg har fundet ud af at det er min måde at
skrive resultatet ud på, der er noget galt med. Jeg skriver

Response.write (rs)

Hvis jeg fjerne linjen, så får jeg ikke nogen fejl, blot en hvid side. Men
hvordan skriver jeg så resultatet ud?

Hilsen JonZ

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (19-12-2007)
Kommentar
Fra : Jørn Andersen


Dato : 19-12-07 10:33

On 19 Dec 2007 08:53:13 GMT, JonZ <jonz@ofir.dk> wrote:

>> Har fejlen et nummer?
>
>8002000E

Det var da tæt på mit gæt

>> Hvis du har fejl-nummeret (fx noget der ligner: 80020003), kan du slå
>> fejlen op på:
>> <url: http://www.aspfaq.com/>
>>
>
>Jeg har selv prøvet at søge og jeg har fundet ud af at det er min måde at
>skrive resultatet ud på, der er noget galt med. Jeg skriver
>
>Response.write (rs)

Yes, det er forkert.

>Hvis jeg fjerne linjen, så får jeg ikke nogen fejl, blot en hvid side.

Godt, så ved du, at det andet virker.

>Men hvordan skriver jeg så resultatet ud?

Response.Write rs("feltnavn")
- eller hvis man ikke kender feltnavn:
Response.Write rs(0) ' Eller et andet nummer på feltet (1, 2, ...)

Men ofte har man brug for at gemme værdien og behandle værdien, inden
man skriver ud:
strFelt = rs("feltnavn")
' Gør et eller andet
Response.Write strFelt

Nogle gange skal man fx checke, om der er en Null-værdi:
strFelt = rs("feltnavn")
If IsNull(strFelt) Then
Response.Write "-"
Else
Response.Write strFelt
End If

- bare et eksempel ...

OBS:
Feltnavnt i den SQL du angav er "lodretsum" - så:
intLodretSum = rs("lodretsum")
(og en Sum-værdi skulle ikke gerne kunne blive Null)


Good luck!

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

JonZ (19-12-2007)
Kommentar
Fra : JonZ


Dato : 19-12-07 12:03

Jørn Andersen wrote in dk.edb.internet.webdesign.serverside.asp:

>
> >Men hvordan skriver jeg så resultatet ud?
>
> Response.Write rs("feltnavn")
> - eller hvis man ikke kender feltnavn:
> Response.Write rs(0) ' Eller et andet nummer på feltet (1, 2, ...)
>
Tusind tak for hjælpen begge 2, nu virker det.

Hilsen JonZ

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

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

Månedens bedste
Årets bedste
Sidste års bedste