/ 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
Dato > Dato2 giver problemer i SQL
Fra : Allan Gorm Pedersen


Dato : 04-07-08 22:28

Hej

Jeg har lavet følgende script som giver mig problemer:

Først og fremmest er min access database under kollonnen
osamopdateret sat til datatypen Dato og klokkeslet (standard
datoformat)

Der findes masser af data hvor osamopdateret > Maerkedato

UDSNIT AF SCRIPT
----------------

strSQL = "Select Top 1 * From totalermaerke Where brugerid = '" &
intMedlemsid & "' Order By id desc"

Set rs = Conn.Execute(strSQL)

Maerkedato = rs("maerkedato")
Response.Write Maerkedato & "<br>"

strSQL = "Select * From samling Where osamopdateret > Maerkedato
Order By systemid"
Response.Write strSQL & "<br>"


Fejlmeddelelse på skærm
-----------------------

15-06-2008 22:32:24
Select * From samling Where osamopdateret > Maerkedato Order By
systemid

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters.
Expected 1.

/stamp/medlem/minsamling-tilgang.asp, line 65

Delløsning
----------

Bruger jeg i stedet for: osamopdateret < Now()
Kan jeg godt hente et recordsæt.
Derfor virker det som om at Maerkedato ikke accepteres i SQL
sætningen.

Håber nogen kan hjælpe mig
Allan Gorm Pedersen



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

 
 
Stig Johansen (05-07-2008)
Kommentar
Fra : Stig Johansen


Dato : 05-07-08 05:35

Allan Gorm Pedersen wrote:

> strSQL = "Select Top 1 * From totalermaerke Where brugerid = '" &

Her er tabellen: totalermaerke

> strSQL = "Select * From samling Where osamopdateret > Maerkedato

Her er tabellen: samling

> Derfor virker det som om at Maerkedato ikke accepteres i SQL
> sætningen.

Det er fordi feltet maerkedato ikke findes i tabellen samling.

Du skal have fat i en JOIN på de to tabeller for at kunne lave det.
Hvis du skal have hjælp til det må du lige skrive lidt om de 2
tabelstrukturer.

--
Med venlig hilsen
Stig Johansen

Allan Gorm Pedersen (05-07-2008)
Kommentar
Fra : Allan Gorm Pedersen


Dato : 05-07-08 09:46

Hej Stig

Maerkedato findes tabellen totalermaerke, og hentes ud af første SQL.
Maerkedato er derfor en varabel der bruges i næste SQL.

Tabellen osamopdateret er som beskrevet sat til datatypen Dato og
klokkeslet (standard datoformat)

Hilsen Allan Gorm Pedersen

SCRIPT
------
strSQL = "Select Top 1 * From totalermaerke Where brugerid = '" &
intMedlemsid & "' Order By id desc"

Set rs = Conn.Execute(strSQL)

Maerkedato = rs("maerkedato")
Response.Write Maerkedato & "<br>"

strSQL = "Select * From samling Where osamopdateret > Maerkedato
Order By systemid"
Response.Write strSQL & "<br>"


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

Christian Kragh (06-07-2008)
Kommentar
Fra : Christian Kragh


Dato : 06-07-08 08:10

> strSQL = "Select Top 1 * From totalermaerke Where brugerid = '" &
> intMedlemsid & "' Order By id desc"

Her henter du den første ud fra totalermaerke hvis medlemsid er lig
intmedlemsid som ligger i en variabel

> Set rs = Conn.Execute(strSQL)

Du kører scriptet.

> Maerkedato = rs("maerkedato")
> Response.Write Maerkedato & "<br>"

Du gemmer mærkets navn i en variabel Maerkedato.
Derudover skriver du også Maerkedato ud således at brugerne kan se den.

> strSQL = "Select * From samling Where osamopdateret > Maerkedato
> Order By systemid"
> Response.Write strSQL & "<br>"

Her vil du søge efter alle samlinger der indeholder dette mærke, men du
søger ikke efter mærket, men efter et eleemt kaldet maerkedato.

Derfor skal du søge efter en variabel så brug følgende istedet.

strSQL = "Select * From samling Where osamopdateret > #" & Maerkedato &
"# Order By systemid"

Når du bruger ## rundt om et felt i SQL bruges feltet som en dato.
Derudover får du trukket den variable med ind i SQL strengen ved at
brugr metoden til at sætte flere strenge sammen, ligesom du gjorde i den
første SQL sætning.
" & variabel & "

Venlig Hilsen
Christian

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

Stig Johansen (06-07-2008)
Kommentar
Fra : Stig Johansen


Dato : 06-07-08 11:53

Christian Kragh wrote:

> Når du bruger ## rundt om et felt i SQL bruges feltet som en dato.

Bare lige til orientering: ## er en MS Access specifik ting, og forefindes
ikke i de andre RDBMS'er jeg kender, der bruger ANSI SQL.

--
Med venlig hilsen
Stig Johansen

Allan Gorm Pedersen (06-07-2008)
Kommentar
Fra : Allan Gorm Pedersen


Dato : 06-07-08 12:07

Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> Christian Kragh wrote:
>
> > Når du bruger ## rundt om et felt i SQL bruges feltet som en dato.
>
> Bare lige til orientering: ## er en MS Access specifik ting, og forefindes
> ikke i de andre RDBMS'er jeg kender, der bruger ANSI SQL.
>
> --
> Med venlig hilsen
> Stig Johansen

Hej Stig
Det er Access jeg bruger og det kører helt perfekt.
Det giver et mere enkelt og overskueligt script.
Du får mange tak for hjælpen

HILSEN Allan Gorm Pedersen


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

Allan Gorm Pedersen (06-07-2008)
Kommentar
Fra : Allan Gorm Pedersen


Dato : 06-07-08 12:10

Hej Christian

Det virker!
Det er en meget fin og enkel måde du beskriver løsningen

Tak for hjælpen

HILSEN Allan Gorm Pedersen

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

Allan Gorm Pedersen (06-07-2008)
Kommentar
Fra : Allan Gorm Pedersen


Dato : 06-07-08 00:13

Hej
Tak for interessen omkring mit problem.
Efter flere timers søgen på nettet har jeg fundet en løsning med
Date- & TimeSerial

SQL kommer til at se sådan ud:
------------------------------
Function DateToSql(Value)
DateToSql = "DateSerial(" & Year(Value) & ", " & Month(Value) & ",
" & Day(Value) & ") "
End Function
Function TimeToSql(Value)
TimeToSql = "TimeSerial(" & Hour(Value) & ", " & Minute(Value) &
", " & Second(Value) & ")"
End Function

strSQL = "Select * From samling Where (osamopdateret > " &
DateToSql(Maerkedato) & ") Or (osamopdateret = " &
DateToSql(Maerkedato) & " And osamopdateret > " &
TimeToSql(Maerkedato) & ") Order By systemid"



HILSEN
Allan Gorm Pedersen


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