Toon posts:

[ASP + access] foutmelding asp bij maken recordset

Pagina: 1
Acties:

Verwijderd

Topicstarter
De foutmelding =
-----------------
ADODB.Recordset (0x800A0BB9)
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/ammsys/werknemer_dyn.asp, line 164
---------------
Ik heb een datum veld nodig in het where gedeelte van de query.
In de help van access kwam ik erachter dat dat tussen pound (#) tekens moest.
Diezelfde query doet het als ik het in access zelf probeer.
code:
1
SELECT soort_dv, positie FROM dienstverb_per WHERE werkgever_id = 12345678 AND sector_id = 24 AND branche_id = 40 AND bdat_dv = #12/15/1999# AND sofi_nr ='174584490'

Iemand een idee?

Verwijderd

post de code es waarmee je dat recordset opend?

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Kloppen die hekjes wel bij die datum?
Probeer altijd eerst even de query gewoon uit te voeren in access zelf, dat geeft meestal redelijk duidelijke foutmeldingen.

Verwijderd

Topicstarter
De code waaarmee ik de query maak is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
teller = 0
While teller <= top
StrSQLDV = "SELECT bdat_dv FROM dienstverband WHERE " &_
       "werkgever_id = " &wg_id(teller) &_
         " AND sector_id = " &sector_id(teller) &_
         " AND branche_id = " & branche_id(teller) &_
         " AND sofi_nr ='" &sofi_nr &"'"
Set rstDV = Server.CreateObject("ADODB.Recordset")
rstDV.open strSQLDV, Application("database")
redim preserve bdat_dv(teller)
bdat_dv(teller) = rstDV("bdat_dv")

teller = teller + 1
Wend


teller = 0   
strSQLDVP = "SELECT soort_dv, positie FROM dienstverb_per " &_
       "WHERE " &_
       "werkgever_id = " &wg_id(teller) &_
         " AND sector_id = " &sector_id(teller) &_
         " AND branche_id = " & branche_id(teller) &_
         " AND bdat_dv = #" &bdat_dv(teller) &"#" &_
         " AND sofi_nr ='" &sofi_nr &"'"
         
response.Write(strSQLDVP)
'response.end    
set rstDVP = Server.CreateObject("ADODB.Recordset")
rstDVP.open srtSQLDVP, Application("database")

De resulterende query heb ik al geplaatst en met cut en paste doet ie het gewoon in access zelf. Niks mis met de query, die hekjes heb ik uit de help van access, maar misschien moet er iets omheen zodat asp het accepteerd.

Verwijderd

Ik denk dat er iets mis gaat met het openen van het RecordSet object in de lus.

Ik denk dat ofwel de connection string zoals die in het application object staat niet helemaal jofel is, of dat ASP niet blij is dat je tig recordset objecten open, allemaal met een nieuwe connectie en zonder ze netjes af te sluiten.

Dus doe de volgende dinge:
1) print je connection string eens uit
2) maak eens een connection object aan met die connect string en kijk of dat goed gaat
3) verander de code zodat alle recordset objecten binnen de lus gebruik maken van het connection object dat je buiten de lus al geopend hebt
4) sluit alle recordsets af voor het einde van de loop
5 sluit het connection object af als je hem niet meer nodig hebt.

HTH :)

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

misschien wel handig om 1 enkel rs-object aan te maken en deze telkens te herbruiken binnen de lus (wel telkens netjes openen en afsluiten). Dat is sowieso sneller.

En in navolging van MrX: sluit al je objecten netjes af als je ze niet meer gebruikt, bijv:
recordset.close
set recordset = nothing

Today's subliminal thought is:


  • Frenzy
  • Registratie: November 1999
  • Laatst online: 22-12-2025
de connectie gaat sowieso goed, anders krijg je -deze- error niet. Dat is het dus niet. Waarschijnlijk vind access de datum niet lief. Kijk even naar je system locale van de IIS bak en de date instelling van je access db. Overigens vind ik het een hele wause query.

selecteer bdat_dv waarbij alle velden in de where clausule x zijn en hoog x op.. Of te wel alleen resultaat als alle velden 1, 2, 3, 4, etc zijn... Klopt dat?

  • Grum
  • Registratie: Juni 2001
  • Niet online
zou het niet de meest voor de hand liggende optie zijn dat et getal wat ie erin probeert te stoppen er niet in past ? :)

(ik heb dus GEEN clue van access etc en ik wil geen clue van ASP >:) so dont blame me als dit niet klopt ;P )

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
AND bdat_dv = #12/15/1999#

moeten hier geen "" omheen :?

  • Frenzy
  • Registratie: November 1999
  • Laatst online: 22-12-2025
dat probeer ik ook te zeggen... als je date veld dit verwacht

dd/mm/yyyy

en je stop er

12/15/1999

in.. Tja, maand 15... ik weet het niet hoor?

Verwijderd

Op dinsdag 03 juli 2001 00:54 schreef Frenzy het volgende:
dat probeer ik ook te zeggen... als je date veld dit verwacht

dd/mm/yyyy

en je stop er

12/15/1999

in.. Tja, maand 15... ik weet het niet hoor?
Waarschijnlijk is het een engelse datum notatie! Dus dan is het gewoon mm/dd/yyyy :)

  • KoeKk
  • Registratie: September 2000
  • Laatst online: 30-08 21:36
code:
1
SELECT soort_dv, positie FROM dienstverb_per WHERE werkgever_id = 12345678 AND sector_id = 24 AND branche_id = 40 AND bdat_dv = #12/15/1999# AND sofi_nr ='174584490'

Kijk eens naar de laatste AND, het lijkt mij dat sofi nr een number veld in je db is, wat doen die kwootjes daar dan omheen?


iedreen zit wel te kijken naar die datum, maar die is gewoon goed...

Verwijderd

Moet volgens mij zijn:
code:
1
2
3
4
5
6
7
SELECT soort_dv, positie 
FROM dienstverb_per 
WHERE werkgever_id = 12345678 
AND sector_id = 24 
AND branche_id = 40 
AND bdat_dv = '12/15/1999' 
AND sofi_nr ='174584490'

en misschien AND sofi_nr = 174584490
maar dat ligt aan je data model.

Data zijn via ASP in Access altijd strings. Dus de #-tjes moeten '-tjes worden. En of het 12/15/1999 of 12-15-1999 of weet ik veel hoe moet zijn ligt aan je regionalsettings.

Ik zou trouwens de dag maand en jaar appart in nummerieke velden zetten. Als je je code en database nou overhuist naar een andere server kan het hele datum gebeuren op zijn spreekwoordlijke bek gaan omdat die server net iets anders is ingesteld.

[tip]
Een query die in Access wel werkt hoeft per definitie niet via ASP te werken :?
[/tip]


-edit:
Typo..
toch leuk hoe een 'o' in plaats van een 'i' een zin heel anders kan maken :)
Pagina: 1