SQL/ASP syntax vraag - Datediff (vervolg)

Pagina: 1
Acties:

  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
Lo, was ik weer

Eerst ff naar dusty, mooi en aardig dat je over mij gaat klachen, maar lees eerst eens wat voordat je wat sluit. Output is niet belangrijk, want ik weet dat de lus gaat werken (ja noem het echo of wat dan ook!).
Het is een pure syntac fout, dus netjes gezegd ga niet over output zeuren als het niet nodig is.

En ik doe wel moeite, dacht je dat ik zin had om de topic hier te posten. Nee het was een laaste redmiddel.

En wat het grotendeel niet snapt of weigert te lezen (jij dus ook!) is dat ik dus vraag hoe ik een datediff moet declareren in SQL met ASP. Iedereen die zegt zo werkt de datediff functie, mooi en aardig en dit waardeer ik, maar daar ligt het probleem dus NIET.

Meer weer ontopic:

http://www.database-design-2000.com/dateDiff.htm, deze werkt ook niet in SQL in ASP.

Dus nogmaals, ik zou graag willen weten, hoe declareer ik een SQL datediff van mijn select statement in ASP.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Over lezen gesproken, deze bal kan je terugverwachten.. :)
Je topic is dicht en het is onterecht? Lees hier!
Kortom, mailen met dusty.

En nu weer terug naar je probleem
ASP:
1
sqlTest = "SELECT * FROM Test WHERE DATEDIFF(dd,'" & now()& "','12-05-2003') >1 "

Met als foutmelding:
Er zijn te weinig parameters. Het verwachte aantal is: 1.
<h1>Dit betekent dat er een fout zit in je SQL statement!!!!</h1>

En niet alleen ik, maar nog tig anderen hebben je gevraagd om het schermresultaat van deze variabele (sqlTest), door middel van een response.write, neer te zetten. :)

Als jij dat niet doet, dan houdt het voor mij hierbij op. Als jij denkt dat iedereen het beter weet, be my guest. Als jij van mening bent dat iedereen verkeerd leest, ook goed. :)
Als jij denkt dat het daaraan niet ligt, maar nog veel anderen wel. Dan wens ik je veel succes met de overige oplossingen die in het topic gegeven worden. :)
http://www.database-design-2000.com/dateDiff.htm, deze werkt ook niet in SQL in ASP.

Dus nogmaals, ik zou graag willen weten, hoe declareer ik een SQL datediff van mijn select statement in ASP.
Is mijn vraag vervolgens. Het werkt niet is nogal vaag.. wat werkt er niet. Wat zijn de foutmeldingen? Bij het tweede gedeelte: Googielover gaf hier de keywords, wat geeft Google verder voor links?

[ Voor 78% gewijzigd door gorgi_19 op 02-05-2003 20:20 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
MMh snap jij het dan niet, het resultaat is dus een parameter te weinig (zucht).
En wat ik dus zeg het is een syntac fout, hallo dus tuurlijk is mijn SQL string fout (sorry dat ik duh zeg maar duh).
En het resultaat is de foutmelding een parameter te weinig, mooi en aardig maar wat veranderd het neerzetten van het sql gedoe ervan ja ik ben een teken vergeten, maar wat :?
En wat werkt er niet... mijn code en de foutmelding is dus dat er 1 parameter te weinig is, maar ja watvoor een :). Bedoel als ik het zelf zou weten dan zou ik het er neerzetten.

Wil nu ook zeker niet arrogant reageren, maar heb deze foutmelding wel eens eerder gehad met datum velden, toen was de simpele oplossing # er om heen zetten (gevonden hier op GoT). Nu heb ik dezelfde fout ook met een datumveld maar de #,' etc. doen niet veel. Dus vraag ik aan de mensen hier van nou hebben jullie misschien al eens een SQL datediff op een ASP gebruikt (want de syntac is hier anders). Zo ja, zou je mij kunnen vertellen watvoor teken ik ben vergeten, want ik kon er zo niets over vinden.

Snap je dat de output dus helemaal niet relevant is, aangezien de SQL code zovere in SQL wel werkt, maar zogauw ik hem dus in ASP neer knal is het de betreffende foutmelding. Wat dus inhoud teken vergeten/verkeerd teken (dit is dus de output > 0x80040E10). Tot nu toe hebben mijn zoekactie's op google/GoT alleen nog maar laten zien hoe ik datediff in SQL declareer of hoe ik VBscript datediff moet gebruiken.


P.S de foutmelding is dus 1 parameter te weinig :)

[ Voor 8% gewijzigd door blijhoofd_bennie op 02-05-2003 20:35 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

blijhoofd_bennie schreef op 02 May 2003 @ 20:33:
Wil nu ook zeker niet arrogant reageren, maar heb deze foutmelding wel eens eerder gehad met datum velden, toen was de simpele oplossing # er om heen zetten (gevonden hier op GoT). Nu heb ik dezelfde fout ook met een datumveld maar de #,' etc. doen niet veel.
En wat is dit? Juist.. Een fout in je SQL statement... En aangezien ik het niet snap, ga ik me maar verder niet mee bemoeien.. :)
(dit is dus de output > 0x80040E10).
Da's dus niet de output die we wilden zien...

[ Voor 20% gewijzigd door gorgi_19 op 02-05-2003 20:37 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • blijhoofd_bennie
  • Registratie: Maart 2000
  • Niet online

blijhoofd_bennie

Wasser für alle!!

Topicstarter
gorgi_19 schreef op 02 May 2003 @ 20:35:
[...]

En wat is dit? Juist.. Een fout in je SQL statement... En aangezien ik het niet snap, ga ik me maar verder niet mee bemoeien.. :)
Ok, bedankt voor je hulp (serieus). Maar wat je nu zei (ik ook) is gedeeltelijk correct. Kijk het is een fout SQL statement in ASP, weet niet echt hoe ik het moet omschrijven maar een SQL in ASP is anders dan een SQL in SQL (door ASP tekens en weet ik veel wat). Bedoel ik heb echt zat werkende datediff functies hier in een SQL boekie staan, maar dit betekend niet dat dit SQL statement ook direct werkt in ASP. Hier zit dus het hele probleem.

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
1) Doorgaan na een slotje is niet gewenst. Als volgens jou Dusty een fout maakt, mail hem dan, dan gaat het topic gewoon weer open if so.
2) Juist om het verschil tussen SQL in een console en SQL in programma code met variablen maakt het de moeite waard om de SQL query te printen. Je weet dan immers pas precies welke query los gaat naar de database :) Zie ook het stuk over debuggen in de P&W faq.

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

hmm, heb je een kolom die DATEDIFF heet?..

Als ik je query vertaal naar nomale mensen taal dan staat er dit:
SQL:
1
Selecteer alles uit tabel test waar x > 1

En die x dat moet dan de verschillende waarde zijn tussen twee data..
En dat kan niet. Je moet die where clausule (spellingscontrole, idee voor GoT :)) wel koppelen aan een kolom.. en niet zomaar in de wilde weg gebruiken. dat is de fout.

[ Voor 7% gewijzigd door Jaspertje op 02-05-2003 22:15 ]


  • guyvdn
  • Registratie: Maart 2003
  • Laatst online: 18-06 20:15

guyvdn

Eagle

Je moet er gewoon voor zorgen dat er een veldnaam in je DateDiff functie staat anders heeft het ook niet veel zin om deze functie te gebruiken

VB: SELECT Table1.datum FROM Table1 WHERE DateDiff("d",#2003/05/02#,[DatumVeld])>1
Je kan de datum best noteren yyyy/mm/dd zo zal er altijd juist gerekend worden, dd/mm kan al een doorheen gehaald worden.

Als je de huidige datum wil gebruiken
SELECT Table1.datum FROM Table1 WHERE DateDiff("d",Date(),[Datum])>1
Gebruik de Date() functie ipv de Now() functie als je in de database ook de tijd moest bijhouden (datetime veld) dan kan je records missen als je Now() gebruikt

Dit zijn wel voorbeelden die ik getest heb in Access maar het principe is net het zelfde op SQL Server

To deny our own impulses is to deny the very thing that makes us human


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 14-08 12:38

Crazy D

I think we should take a look.

Ik begrijp ondertussen het probleem niet zo, maar omdat ik aardig ben (:P) heb ik wat getest...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
    Dim c As New Connection
    Dim r As New Recordset
    c.Open scon
    r.Open "select *, datediff(""d"", Datum, Date()) as test from table2 " & _
           "where datediff(""d"", Datum, Date()) > 2", c
    Do While Not r.EOF
        Stop
        r.MoveNext
    Loop
    r.Close
    c.Close
    Set r = Nothing
    Set c = Nothing

scon is een connectiestring naar een Access database (Provider=Microsoft.Jet.OLEDB.4.0;). En dat werkt prima (datum is een datum-veld).
Ik kan me niet voorstellen dat dit in ASP niet werkt, en in VB wel (aangezien je in beide gevallen de ADODB componenten gebruikt om een verbinding te maken).
Let wel op, DateDiff werkt in Access omdat je VBA in je query mag opnemen....

Volgens mij had ik de oplossing in het andere topic ook al gegeven: de d om aan te geven dat je het verschil in dagen wilt, moet een string zijn. "d" dus. En dat wordt in een string dus ""d"" omdat je een " escaped door er 2 neer te zetten...

Exact expert nodig?

Pagina: 1