/ 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
Henter tekst værdi fra variabel
Fra : Peter Jensen


Dato : 08-05-02 16:51

Hej
Hvordan henter man en tekst værdi ud af en variabel, hentet
fra et skema?

Jeg ønsker forøge feltet "bortgives" med 1
Feltet findes i databasen i tabelen "Adds"

Eks:

Felt("Category") = Request("Category")

AddCounter.Open "SELECT * FROM Adds",_
Connect,adOpenDynamic,adLockOptimistic
AddCounter("Category") = AddCounter("Category") + 1
AddCounter.Update

Jeg får fejlen meddelsen, at den ikke kan finde det
ønskede felt?

Udskifter jeg AddCounter("Category") med AddCounter("Bortgives")
forøger den fint feltet med 1?

Underligt når det ser ud til at "Category" har (tekst) værdien "Bortgives"





Mvh
Peter Jensen




 
 
Steffen Wogensen Jaq~ (08-05-2002)
Kommentar
Fra : Steffen Wogensen Jaq~


Dato : 08-05-02 22:07

Hej Peter,

Jeg må beklge at jeg slet ikke forstår dit spørgsmål som det er formuleret,
måske du kunne prøve igen?

Venlig hilsen/Kind Regards,


Steffen Wogensen Jaques

"Peter Jensen" <mail@icedesign.dk> wrote in message
news:3cd9497d$0$97295$edfadb0f@dspool01.news.tele.dk...
> Hej
> Hvordan henter man en tekst værdi ud af en variabel, hentet
> fra et skema?
>
> Jeg ønsker forøge feltet "bortgives" med 1
> Feltet findes i databasen i tabelen "Adds"
>
> Eks:
>
> Felt("Category") = Request("Category")
>
> AddCounter.Open "SELECT * FROM Adds",_
> Connect,adOpenDynamic,adLockOptimistic
> AddCounter("Category") = AddCounter("Category") + 1
> AddCounter.Update
>
> Jeg får fejlen meddelsen, at den ikke kan finde det
> ønskede felt?
>
> Udskifter jeg AddCounter("Category") med AddCounter("Bortgives")
> forøger den fint feltet med 1?
>
> Underligt når det ser ud til at "Category" har (tekst) værdien
"Bortgives"
>
>
>
>
>
> Mvh
> Peter Jensen
>
>
>



Peter Jensen (09-05-2002)
Kommentar
Fra : Peter Jensen


Dato : 09-05-02 10:58

Hejsa..

Tak for responsen..

> Jeg må beklge at jeg slet ikke forstår dit spørgsmål som det er
formuleret,
> måske du kunne prøve igen?

Jeg kan godt se at det er kryptisk formuleret, jeg vil forsøge om jeg ikke
kan gøre det bedere. Sagen er den at jeg er ved at lave et 'Køb/salg/bytte'
modul.

Når brugeren ønsker at oprette en annonce bliver vedkommende præsensteret
for et skema med spørsmål som pris, adresse, email, etc.
Jeg har oprettet 10 faste kategorier (Category) som
brugeren kan gemme deres annonce i.

I databasen har jeg oprette en tabel som holder styr på det samlede antal
annoncer samt i de enkelte kategorier. TotalAdd, Bortgives, Hus-Have etc.
Der er lige så mange kolonner som der er kategorier.

De faste kategorier vælges i skemaet vhj et 'rullegardin' og har derfor en
en fast værdi (Bortgives, Hus-Have etc)

I SaveAd.asp siden hvor jeg vil opdatere min database vil jeg have den til
at ligge 1 til den eksisterende værdi i kolonnen "Bortgives" hvis det er
den brugeren har valgt som kategori.

------------------------------------
DIM AddCounter
Set AddCounter = Server.CreateObject("ADODB.Recordset")
AddCounter.Open "SELECT * FROM Adds",_
Connect,adOpenDynamic,adLockOptimistic

AddCounter("Category") = Request("Category") **

AddCounter("TotalAdd") = AddCounter("TotalAdd") + 1
AddCounter("Category") = AddCounter("Category") + 1
AddCounter.Update
-------------------------------------

** Jeg vil mene at "Category" her får tildelt værdien "Bortgives"
og derfor også ved hvilken kolonne jeg ønsker at opdatere,
i tabellen "Adds"

Den forøger fint TotalAdd kolonnen med en, men ikke
Category som jo nu burde være "Bortgives" men den kan
ikke finde kolonnen?

Hvis jeg derimod direkte fortæller den kolonnennavnet
AddCounter("Bortgives") virker det. men da "Category" vil variere
alt efter hvilken kategori brugeren vælger at gemme annoncen i
er det jo ikke hensigtsmæssig

Det må være fordi jeg henter "Category" forkert ud fra skemaet
eller syntaksen er forkert når jeg ønsker at gemme ?


Håber det belyser problemt bedere denne gang...

Mvh
Peter Jensen




Kim Bach Petersen (09-05-2002)
Kommentar
Fra : Kim Bach Petersen


Dato : 09-05-02 16:47

> I databasen har jeg oprette en tabel som holder styr på det samlede antal
> annoncer samt i de enkelte kategorier. TotalAdd, Bortgives, Hus-Have etc.
> Der er lige så mange kolonner som der er kategorier.

I stedet for at lave en særskilt tabel, som holder styr på antallet af
annoncer, var det måske lettere blot at tælle, hvor mange annoncer, du
aktuelt har i tabellen med annoncerne - det vil sige et kald i stil med:

SELECT COUNT(*) FROM AnnonceTabel WHERE (Category = 'Bortgives')

På den måde slipper du for at holde dobbelt regnskab og de fejlmuligheder,
det giver.

Men ellers:

>AddCounter("Category") = Request("Category") **
>
>AddCounter("TotalAdd") = AddCounter("TotalAdd") + 1
>AddCounter("Category") = AddCounter("Category") + 1
>AddCounter.Update
>-------------------------------------
>
>** Jeg vil mene at "Category" her får tildelt værdien "Bortgives"
>og derfor også ved hvilken kolonne jeg ønsker at opdatere,
>i tabellen "Adds"
>
>Den forøger fint TotalAdd kolonnen med en, men ikke
>Category som jo nu burde være "Bortgives" men den kan
>ikke finde kolonnen?
>
>Hvis jeg derimod direkte fortæller den kolonnennavnet
>AddCounter("Bortgives") virker det. men da "Category" vil variere
>alt efter hvilken kategori brugeren vælger at gemme annoncen i
>er det jo ikke hensigtsmæssig

AddCounter("Category") peger på dit recordset og da du ikke har en kolonne,
der hedder 'Category' slår det fejl. 'Category' er en streng (derfor
citationstegnene) der altså peger på en kolonne, ikke en variabel, og derfor
kan den heller ikke sættes til noget anden værdi. Det du formodentlig gerne
vil, er derfor at kunne udskifte strengen "Category" med den aktuelle
kategori. Noget i stil med AddCounter(Request.Form("Category")) skulle være
en mulighed.

Kim
--
· www.kensho.dk · psykologi og spiritualitet ·



Peter Jensen (09-05-2002)
Kommentar
Fra : Peter Jensen


Dato : 09-05-02 23:07


Hejsa Kim

> I stedet for at lave en særskilt tabel, som holder styr på antallet af
> annoncer, var det måske lettere blot at tælle, hvor mange annoncer, du
> aktuelt har i tabellen med annoncerne - det vil sige et kald i stil med:
>
> SELECT COUNT(*) FROM AnnonceTabel WHERE (Category = 'Bortgives')

Hvis jeg benytter den metode, skal den gennemgå tabellen, og tælle lige
så mange gange som jeg har kategorier. Jeg tror det vil tag 'lang' tid hvis
der
det samlede annonce-antal er +1000. Med 10 kategorier bliver det til
10000 tællinger?

Jeg ønsker at vise det samlede annoncer antal (og i de enkelte kategorier)

forsiden, så det bliver til mange gennemløb i løbet af dagen hvis modulet
bliver
fligtigt brugt

Jeg ved ikke hvor meget det betyder på hastigheden/performance, men vælger
jeg 'min metode' skal/kan den skive kategori-annonce-antallet samtidig med
at den
opretter den nye annonce.

Derefter kan jeg 'nøjes' med at aflæse kategori værdien fra tabellen "adds"
- kan være jeg tager fejl hvis jeg antager at det vil gå hurtigere.

> kategori. Noget i stil med AddCounter(Request.Form("Category")) skulle
være

Tak for hintet, jeg fik det til at virke, den skulle helt præsist hedde:
AddCounter("" & Request("Category") & "") = AddCounter("" &
Request("Category") & "") + 1
førend det fungerede

Jeg kan godt se at metode ikke er den smarteste. Jeg kan allerede nu se jeg
får
problemer senere, da jeg havde tænkt mig at indbygge et dato udlusning
filter
på annoncer der er mere end 30 dage gamle...

Hmm... der kunne jeg jo bruge metoden som du forslog
SELECT COUNT(*) FROM AnnonceTabel WHERE (Category = 'Bortgives')
og samtidig holde kategori anonnce antallet up to date - den
oprydningsprocedure
kan jo nøjes med at blive afviklet én gang i døgnet......

Mange tak for hjælpen

Mvh
Peter Jensen

"I live my life where it takes me, I am what it makes me"



Jakob Andersen (09-05-2002)
Kommentar
Fra : Jakob Andersen


Dato : 09-05-02 23:37

"Peter Jensen" <mail@icedesign.dk> wrote in message
news:3cdaf316$0$18620$edfadb0f@dspool01.news.tele.dk...
> > SELECT COUNT(*) FROM AnnonceTabel WHERE (Category = 'Bortgives')
>
> Hvis jeg benytter den metode, skal den gennemgå tabellen, og tælle lige
> så mange gange som jeg har kategorier. Jeg tror det vil tag 'lang' tid
hvis
> der
> det samlede annonce-antal er +1000. Med 10 kategorier bliver det til
> 10000 tællinger?

Hvis det er noget du bruger ofte vil jeg anbefale dig at ligge antallet i en
Application variabel istedet, og så i din global.asp hente en SELECT
COUNT(*) når applikationen starter. Herefter tælles application variablen en
op og ned hver gang der tilføjes eller slettes en post.

--
Jakob Andersen



N/A (10-05-2002)
Kommentar
Fra : N/A


Dato : 10-05-02 16:56



Jakob Andersen (10-05-2002)
Kommentar
Fra : Jakob Andersen


Dato : 10-05-02 16:56

"Peter Jensen" <mail@icedesign.dk> wrote in message
news:3cdbe03b$0$18598$edfadb0f@dspool01.news.tele.dk...
> Hvordan kalder man feks en database derfra?
> og hvordan mainipulere man med Aplication's
> variabler fra asp?

Din Global.asa fil kan f.eks. se sådan her ud:

<script language="vbscript" runat="server">
Sub Application_OnStart
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "Din connectionstring"
objConn.Open()
Set objRS = objConn.Execute( "SELECT COUNT(*) FROM tabelnavn" )
iAntal = objRS(0)
objConn.Close
Set objConn = Nothing
Application.Lock
Application("Antal") = iAntal
Application.UnLock
End Sub
</script>

Og når du så skal slette gør du sådan her:
<%
Application.Lock
Application("Antal") = Application("Antal") - 1
Application.UnLock
%>

--
Jakob Andersen



Peter Jensen (10-05-2002)
Kommentar
Fra : Peter Jensen


Dato : 10-05-02 21:44

Hejsa Jacob

>>

Din Global.asa fil kan f.eks. se sådan her ud:
------------- k l i p --------------
Og når du så skal slette gør du sådan her:
<%
Application.Lock
Application("Antal") = Application("Antal") - 1
Application.UnLock
%>
------- S t o p k l i p --------

<<

Tak for tippet jeg vil straks afprøve om det fungere
Oplysningen giver grobund for yderligere muligheder

Som jeg forstår det, vil ventetiden og tællingen
kun foregå hver gang serveren genstartes?

Det undre mig forøvrigt at man skal låse
Applicationen (Lock) før man udføre en
handling, og ikke omvendt

Mvh
Peter Jensen





Jakob Andersen (10-05-2002)
Kommentar
Fra : Jakob Andersen


Dato : 10-05-02 22:20

"Peter Jensen" <mail@icedesign.dk> wrote in message
news:3cdc30ff$0$97328$edfadb0f@dspool01.news.tele.dk...
> Som jeg forstår det, vil ventetiden og tællingen
> kun foregå hver gang serveren genstartes?

Det er korrekt.

> Det undre mig forøvrigt at man skal låse
> Applicationen (Lock) før man udføre en
> handling, og ikke omvendt

Man låser application varieblen så der ikke er flere der prøver at skrive i
den på en gang, istedet bliver de forskellige sider der prøver at tilgå
variablen så at sige sat i kø.

--
Jakob Andersen



Kim Bach Petersen (09-05-2002)
Kommentar
Fra : Kim Bach Petersen


Dato : 09-05-02 09:41

> Jeg får fejlen meddelsen, at den ikke kan finde det
> ønskede felt?

Spørgsmålet er ikke helt klart, men for mig ser det ud til, at du så at sige
blander kolonner og rækker.

AddCounter("Category") henviser til kolonnen 'Category' i databasen.

Derfor vil

AddCounter("Category") = AddCounter("Category") + 1

forsøge at lægge én til indfoldet af dette felt.

Men hvis det passer at

> "Category" har (tekst) værdien "Bortgives"

laver du et type-mismatch, da du ikke kan lægge tal til en streng...

Kim
--
· www.kensho.dk · psykologi og spiritualitet ·





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

Månedens bedste
Årets bedste
Sidste års bedste