/ 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
Ingen poster
Fra : bsn


Dato : 15-04-04 21:32

Hej NG
Denne sql sætning skulle give en post, da jeg har datoen 15-01-2004 i min
database.

sql = "SELECT * FROM tblValgAktivitet WHERE Dato=" & Datepart("m",Dato=aID)

"aID=1" er fra en requestquerystring"", og den bliver overført til asp
siden.

Help please...
Bjarne



 
 
Jacob Læssøe Nielsen (15-04-2004)
Kommentar
Fra : Jacob Læssøe Nielsen


Dato : 15-04-04 23:25

> sql = "SELECT * FROM tblValgAktivitet WHERE Dato=" &
Datepart("m",Dato=aID)

Måske: sql = "SELECT * FROM tblValgAktivitet WHERE Dato=" &
Datepart("m",Dato=" & Request("aID") & ")"



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.656 / Virus Database: 421 - Release Date: 09-04-2004



bsn (16-04-2004)
Kommentar
Fra : bsn


Dato : 16-04-04 12:07


"Jacob Læssøe Nielsen" <cobbe@webspeed.dk> skrev
> Måske: sql = "SELECT * FROM tblValgAktivitet WHERE Dato=" &
> Datepart("m",Dato=" & Request("aID") & ")"
Den giver denne fejl:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EE)
Tegnet ')' var ventet
/3kreds/aktivitetskalender/januar_.asp, line 25, column 84
sql = "SELECT * FROM tblValgAktivitet WHERE Dato=" & Datepart("m",Dato=" &
Request("aID") & ")"
----------------------------------------------------------------------------
-------^

Så har jeg prøvet denne:
sql = "SELECT * FROM tblValgAktivitet WHERE Dato=" & Datepart & "('m',Dato="
& (Request.Querystring("id")) & ")"
Den giver denne fejl:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01C2)
Antallet af argumenter er forkert eller egenskabstildelingen er ugyldig:
'Datepart'

Bjarne



Jacob .. (16-04-2004)
Kommentar
Fra : Jacob ..


Dato : 16-04-04 13:59

> Den giver denne fejl:
> Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EE)
> Tegnet ')' var ventet
> /3kreds/aktivitetskalender/januar_.asp, line 25, column 84

Jeg manglede lige et " &

Prøv:

sql = "SELECT * FROM tblValgAktivitet WHERE Dato=" & Datepart("m",Dato=" &
Request("aID") & ") & ""


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

Jens Gyldenkærne Cla~ (16-04-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 16-04-04 13:41

bsn skrev:

> Denne sql sætning skulle give en post, da jeg har datoen
> 15-01-2004 i min database.
>
> sql = "SELECT * FROM tblValgAktivitet WHERE Dato=" &
> Datepart("m",Dato=aID)

Prøv at udskrive din sql-sætning (se hvordan her:
   <http://asp-faq.dk/article/?id=41>)

Når man arbejder med datoer, er det farligt at overføre værdier som
tekst - som du gør her. Hvis du er ude efter at finde poster fra en
bestemt måned, så lad Datepart-funktionen (ikke resultatet af den)
indgå i sql-sætningen:


SELECT * FROM tblValgAktivitet WHERE Datepart('m', dindato) = 1

På den måde slipper du for at tænke på datoformatet på webserveren
og i databasen.
--
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

bsn (16-04-2004)
Kommentar
Fra : bsn


Dato : 16-04-04 15:30


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev

> Når man arbejder med datoer, er det farligt at overføre værdier som
> tekst - som du gør her. Hvis du er ude efter at finde poster fra en
> bestemt måned, så lad Datepart-funktionen (ikke resultatet af den)
> indgå i sql-sætningen:
>
>
> SELECT * FROM tblValgAktivitet WHERE Datepart('m', dindato) = 1

Min sql udskrevet:
SELECT * FROM tblValgAktivitet WHERE Datepart('m', Dato) = 1
Fejl:
ADODB.Recordset (0x800A0BB9)
Argumenterne har en forkert type eller er uden for det angivne område, eller
der er opstået en konflikt mellem dem.
/3kreds/aktivitetskalender/januar_.asp, line 32

Bjarne



Jens Gyldenkærne Cla~ (16-04-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 16-04-04 15:47

bsn skrev:

> Min sql udskrevet:
> SELECT * FROM tblValgAktivitet WHERE Datepart('m', Dato) = 1

"Dato" kan ikke opfattes som en gyldig dato. Hvilken dato er det du
vil have ind her? Hvis det er den aktuelle, kan du skrive Date
eller Now i stedet.

Forresten så kan du bruge Month(datoværdi) som svarer helt til
Datepart('m', datoværdi). Det hjælper ikke på dit aktuelle problem
- for "datoværdi" skal stadig være noget der kan opfattes som en
dato, uanset om det er den ene eller den anden funktion du
benytter.
--
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

bsn (16-04-2004)
Kommentar
Fra : bsn


Dato : 16-04-04 16:13


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
news:Xns94CDAAB80A76Ejcdmfdk@gyrosmod.dtext.news.tele.dk...
> bsn skrev:
>
> > Min sql udskrevet:
> > SELECT * FROM tblValgAktivitet WHERE Datepart('m', Dato) = 1
>
> "Dato" kan ikke opfattes som en gyldig dato. Hvilken dato er det du
> vil have ind her? Hvis det er den aktuelle, kan du skrive Date
> eller Now i stedet.
Jeg vil trække alle de arrangementer ud, som foregår i Januar måned...
Bjarne



bsn (16-04-2004)
Kommentar
Fra : bsn


Dato : 16-04-04 16:22

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev
> > bsn skrev:
> >
> > > Min sql udskrevet:
> > > SELECT * FROM tblValgAktivitet WHERE Datepart('m', Dato) = 1
> >
> > "Dato" kan ikke opfattes som en gyldig dato. Hvilken dato er det du
> > vil have ind her?
"Dato" er et felt i min tabel.
Bjarne




Jens Gyldenkærne Cla~ (16-04-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 16-04-04 21:49

bsn skrev:

> "Dato" er et felt i min tabel.

O.k. - hvilken datatype har feltet?

Jeg har lige prøvet at lave en eksempeldatabase med et Dato-felt af
typen "Dato og klokkeslæt". Her virker følgende sql-sætning fint:

   SELECT * FROM tblDato WHERE DatePart('m', Dato) = 1

Denne variant virker også fint:

   SELECT * FROM tblDato WHERE Month(Dato) = 1

Begge sætninger er testet i Access 2000.

NB: Sætningen finder alle poster med en dato hvor måneden er 1
(januar) - uanset hvilket år der er tale om.
--
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

bsn (17-04-2004)
Kommentar
Fra : bsn


Dato : 17-04-04 07:48


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
news:Xns94CDE80944904jcdmfdk@gyrosmod.cybercity.dk...
> bsn skrev:
>
> > "Dato" er et felt i min tabel.
>
> O.k. - hvilken datatype har feltet?
"Dato og klokkeslæt".

> Jeg har lige prøvet at lave en eksempeldatabase med et Dato-felt af
> typen "Dato og klokkeslæt". Her virker følgende sql-sætning fint:
>
> SELECT * FROM tblDato WHERE DatePart('m', Dato) = 1
Det virker også fint her hos mig, når jeg prøver sql'en i databasen.

> Denne variant virker også fint:
>
> SELECT * FROM tblDato WHERE Month(Dato) = 1
Giver flg. fejl:
ADODB.Recordset (0x800A0BB9)
Argumenterne har en forkert type eller er uden for det angivne område, eller
der er opstået en konflikt mellem dem.

> Begge sætninger er testet i Access 2000.
Jeg bruger Office 2003.

> NB: Sætningen finder alle poster med en dato hvor måneden er 1
> (januar) - uanset hvilket år der er tale om.
Jeg skal kun bruge inden for det aktuelle år.
Bjarne.



Jens Gyldenkærne Cla~ (17-04-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 17-04-04 10:15

bsn skrev:

>> SELECT * FROM tblDato WHERE Month(Dato) = 1
> Giver flg. fejl:
> ADODB.Recordset (0x800A0BB9)
> Argumenterne har en forkert type eller er uden for det angivne
> område, eller der er opstået en konflikt mellem dem.

Mærkeligt. Prøv at poste de relevante linjer i asp-filen (den linje
der fejler og de linjer hvor du opbygger og udskriver sql-
variablen.

> Jeg skal kun bruge inden for det aktuelle år.

Så skal du nok udvide forespørgslen med Year(Dato) = Year(Now())
--
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

bsn (17-04-2004)
Kommentar
Fra : bsn


Dato : 17-04-04 11:03


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev
> Mærkeligt. Prøv at poste de relevante linjer i asp-filen (den linje
> der fejler og de linjer hvor du opbygger og udskriver sql-
> variablen.
Nu virker det, efter jeg fik nærstuderet koden. "sql" var byttet ud med
"sgl" - godmorgen...)

> > Jeg skal kun bruge inden for det aktuelle år.
>
> Så skal du nok udvide forespørgslen med Year(Dato) = Year(Now())
Ok
Mange tak for den vedvarende entusiasme...
Bjarne



Jens Gyldenkærne Cla~ (18-04-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-04-04 20:07

bsn skrev:

> Nu virker det, efter jeg fik nærstuderet koden. "sql" var
> byttet ud med "sgl"

Ah - det forklarer jo noget. Bemærk at den type fejl (næsten) kan
elimineres ved at bruge Option Explicit i asp-filerne.

Se mere i artiklen her: <http://asp-faq.dk/article/?id=9>.
--
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

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

Månedens bedste
Årets bedste
Sidste års bedste