[ASP] Invalid procedure call or argument: 'Left'??

Pagina: 1
Acties:
  • 146 views sinds 30-01-2008
  • Reageer

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 26-05 22:23

NMe

Quia Ego Sic Dico.

Topicstarter
Ik heb een vaag probleempje in de volgende code:
ASP.NET Visual Basic:
1
2
3
4
    query = "DELETE * " &_
            "FROM artikel " &_
            "WHERE [artikel].[artikel] NOT IN (" & Left(opbouwquery, Len(opbouwquery) - 2) & ")"
    rs.Open query, conObj

opbouwquery is een string die netjes gedimd is, evenals query. opbouwquery bevat een aantal waardes in dit formaat:
'een', 'twee', 'drie', 'enz', <-- op het einde staan dus een komma en een spatie teveel, die moeten eruit. Maar ASP kent ineens haar eigen functies niet meer...:
Error:
code:
1
2
3
4
5
Microsoft VBScript runtime error '800a0005' 

Invalid procedure call or argument: 'Left' 

/nieuwe site/zoek/bouwindex.asp, line 366


Ik heb op Google wat afgezocht en vind veel mensen die hetzelfde probleem hebben met Left, Right en Mid, maar ik heb nergens een oplossing tussen gevonden, iedereen werkt er op de één of andere manier omheen. Maar ik wil dit gewoon zo doen... :P

Is dit een bug? Doe ik wat fout?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • party42
  • Registratie: Oktober 2000
  • Laatst online: 26-05 13:51
probeer dit 'es:
code:
1
2
3
4
5
6
dim tempvar
tempvar = Left(opbouwquery, Len(opbouwquery) - 2)
    query = "DELETE * " &_
            "FROM artikel " &_
            "WHERE [artikel].[artikel] NOT IN (" & tempvar & ")"
    rs.Open query, conObj

[ Voor 17% gewijzigd door party42 op 26-03-2004 13:05 ]

Everyday's an endless stream, of cigarettes and magazines...


  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

NMe84 schreef op 26 maart 2004 @ 12:46:
Maar ASP kent ineens haar eigen functies niet meer...:
Het is een vbscript functie, geen ASP functie :P

maar volgens mij doe je niks fout. Ik vermoed dan ook dat "opbouwquery" leeg is, door een typfout oid ;)

doe eens response.write(opbouwquery) en response.write(len(opbouwquery))

kaart != map && bottel != fles
Wacht op antwoord


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 26-05 22:23

NMe

Quia Ego Sic Dico.

Topicstarter
Temp var heb ik geprobeerd, sterker nog, zo werkte ik in mijn oorspronkelijke code.

En opbouwquery is gewoon gevuld zoals ie gevuld moet zijn... :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 18-05 15:53

Jaspertje

Max & Milo.. lief

j_du_pee schreef op 26 maart 2004 @ 13:08:
[...]

Het is een vbscript functie, geen ASP functie :P

maar volgens mij doe je niks fout. Ik vermoed dan ook dat "opbouwquery" leeg is, door een typfout oid ;)

doe eens response.write(opbouwquery) en response.write(len(opbouwquery))
en daarna ook nog ff

response.write(len(opbouwquery)-2)

evt:Left(opbouwquery, Len((opbouwquery)-2)) (extra haakjes)

  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

NMe84 schreef op 26 maart 2004 @ 15:49:
En opbouwquery is gewoon gevuld zoals ie gevuld moet zijn... :?
ik durf toch echt te beweren dat of de string leeg is, of hij is korter dan 2 characters waardoor -2 niet wil lukken.

Staat option explicit aan :?

kaart != map && bottel != fles
Wacht op antwoord


  • party42
  • Registratie: Oktober 2000
  • Laatst online: 26-05 13:51
Misschien wordt het tijd dat de TS zelf even weer wat antwoord gaat geven. Volgens mij met wat simpel debuggen is de uitkomst snel gevonden...

Voor hints over debuggen: P&W FAQ - ASP

Everyday's an endless stream, of cigarettes and magazines...


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 26-05 22:23

NMe

Quia Ego Sic Dico.

Topicstarter
Hmm, ik heb nog eens gekeken en nou blijkt dat opbouwquery toch leeg is (ik zou kunnen zweren dat er vanmiddag wat in stond... :?)

Ik heb de variabele bovenaan, buiten een functie of sub, dus de globale scope, gedefinieerd. Daar stel ik hem ook in op een lege string met opbouwquery = "". Vervolgens vul ik hem als volgt in een sub:
ASP.NET Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  Private Sub GetFiles(mapNaam)
    Dim map, bestand, submap
  
    Set map = fs.GetFolder(mapNaam)
    For Each bestand in map.Files       'Elk bestand afgaan
      opbouwquery = opbouwquery & Right(bestand, Len(bestand) - Len(hoofdmap) - 1) & ", "
    Next
 
    For Each submap in map.SubFolders
      Call GetFiles(submap)
    Next

    Set map = nothing
  End Sub


Vervolgens probeer ik opbouwquery na aanroep van die recursieve functie weer op te vragen in het hoofdprogramma. Dan zou ie toch gevuld moeten zijn? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 26-05 22:23

NMe

Quia Ego Sic Dico.

Topicstarter
*kick* Niemand die me kan helpen met die laatste vraag?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Yucon
  • Registratie: December 2000
  • Nu online

Yucon

*broem*

Zou goed moeten zijn.

edit:
Hier werkt het gewoon. Druk eens de naam van het bestand af in de foreach, misschien wordt door een rechtenkwestie niet goed geitereerd.

[ Voor 79% gewijzigd door Yucon op 28-03-2004 15:19 ]


  • party42
  • Registratie: Oktober 2000
  • Laatst online: 26-05 13:51
inderdaad, wat Yucon zegt. Probeer dit es:

ASP.NET Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  Private Sub GetFiles(mapNaam)
    Dim map, bestand, submap
  
    Set map = fs.GetFolder(mapNaam)
    For Each bestand in map.Files       'Elk bestand afgaan
       Response.write "bestand=" & bestand & "<BR>"
       Response.write "Len(bestand)=" & Len(bestand) & "<BR>"
       Response.write "Len(hoofdmap)=" & Len(hoofdmap) & "<BR>"
       Response.write "Totaal=" & Right(bestand, Len(bestand) - Len(hoofdmap) - 1) & "<BR>"
      'opbouwquery = opbouwquery & Right(bestand, Len(bestand) - Len(hoofdmap) - 1) & ", "
    Next
 
    For Each submap in map.SubFolders
      Call GetFiles(submap)
    Next

    Set map = nothing
  End Sub


Wat is de output?

Everyday's an endless stream, of cigarettes and magazines...


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 26-05 22:23

NMe

Quia Ego Sic Dico.

Topicstarter
Yucon schreef op 28 maart 2004 @ 15:15:
Zou goed moeten zijn.

edit:
Hier werkt het gewoon. Druk eens de naam van het bestand af in de foreach, misschien wordt door een rechtenkwestie niet goed geitereerd.
Als ik zeg wat eraan schortte dan krijg ik waarschijnlijk zo'n harde trap dat ik naar de maan en terug vlieg... Ik vergat die sub aan te roepen.... |:( |:(

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

NMe84 schreef op 29 maart 2004 @ 10:25:
[...]

Als ik zeg wat eraan schortte dan krijg ik waarschijnlijk zo'n harde trap dat ik naar de maan en terug vlieg... Ik vergat die sub aan te roepen.... |:( |:(
np, zulke problemen hebben we allemaal weleens gehad ;) als je er maar van leert :)

kaart != map && bottel != fles
Wacht op antwoord


  • Yucon
  • Registratie: December 2000
  • Nu online

Yucon

*broem*

NMe84 schreef op 29 maart 2004 @ 10:25:
[...]

Als ik zeg wat eraan schortte dan krijg ik waarschijnlijk zo'n harde trap dat ik naar de maan en terug vlieg... Ik vergat die sub aan te roepen.... |:( |:(
Nou, en uiteindelijk ben je daar dan toch zelf achtergekomen :)

heb eens 5 uur op een asp pagina gezeten.. 3 plaatjes naast elkaar, 2 werkten, 1 gaf een kruisje.. en de code was echt identiek... dacht ik dan. Tot ik zag dat ik <img scr="plaatje.gif"> gebruikt had. Wie het ziet mag het zeggen :P

[ Voor 3% gewijzigd door Yucon op 29-03-2004 14:05 ]


  • WvdWest
  • Registratie: Augustus 2002
  • Niet online
Yucon schreef op 29 maart 2004 @ 14:05:
[...]


Nou, en uiteindelijk ben je daar dan toch zelf achtergekomen :)

heb eens 5 uur op een asp pagina gezeten.. 3 plaatjes naast elkaar, 2 werkten, 1 gaf een kruisje.. en de code was echt identiek... dacht ik dan. Tot ik zag dat ik <img scr="plaatje.gif"> gebruikt had. Wie het ziet mag het zeggen :P
Ik ze het direct omdat ik ook eens tegen deze fout ben aangelopen. Je zoekt je rot.

I'm not a complete idiot - several parts are missing.


  • party42
  • Registratie: Oktober 2000
  • Laatst online: 26-05 13:51
Yucon schreef op 29 maart 2004 @ 14:05:
[...]


Nou, en uiteindelijk ben je daar dan toch zelf achtergekomen :)

heb eens 5 uur op een asp pagina gezeten.. 3 plaatjes naast elkaar, 2 werkten, 1 gaf een kruisje.. en de code was echt identiek... dacht ik dan. Tot ik zag dat ik <img scr="plaatje.gif"> gebruikt had. Wie het ziet mag het zeggen :P
:X
scr moet zijn src

:D

Everyday's an endless stream, of cigarettes and magazines...

Pagina: 1