Ga naar inhoud

[asp] fout in script


Aanbevolen berichten

hey, ik heb het volgende script [code:1:8cef864b14] <% Dim MyConnection Dim MyRecordset Set MyConnection = Server.CreateObject("ADODB.Connection") Set MyRecordset = Server.CreateObject("ADODB.Recordset") Call Myconnection.open ( _ "Driver={microsoft Access Driver (*.mdb)};" & _ "DBQ=" & DB_FILE) Call MyRecordset.Open ("SELECT * FROM user WHERE usernummer = " & request("paramusernummer"), MyConnection) intPage = Request.QueryString("nummer") MyRecordset.PageSize = 1 MyRecordset.AbsolutePage = intPage <<<< REGEL 30 <<<<<< For intRecord = 1 To MyRecordset.PageSize Response.Write(MyRecordset.Fields("Naam").Value) MyRecordset.MoveNext If MyRecordset.EOF Then Exit For Next If intpage > 1 Then Response.Write("<a href=""gebruikers2.asp?nummer="&intpage-1&""">Vorige record</a>") End If If intpage < MyRecordset.Recordcount Then Response.Write("<a href=""gebruikers2.asp?nummer="&intpage+1&""">Volgende record</a>") End If %> [/code:1:8cef864b14] maar ik krijg de volgende foutmelding: [code:1:8cef864b14] ADODB.Recordset error '800a0bb9' Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another. /poolmate/beheerder/gebruikers2.asp, line 30 [/code:1:8cef864b14] Weet iemand wat ik fout doe?[/code]
Link naar reactie
intPage is geen (geldige) integer of de waarde valt buiten de reeks waarden die geldig zijn in deze situatie. m.a.w. [i:bb511e39c9]response.write[/i:bb511e39c9] de waarde eens om te kijken of deze inderdaad de waarde bevat die je daar verwacht en/of maak er een integer van met [i:bb511e39c9]CInt()[/i:bb511e39c9]
Link naar reactie
Hey je had gelijk, maar nu heb ik een andere melding namelijk deze [code:1:25b0e3fd16] Microsoft JET Database Engine error '80040e14' Syntax error in FROM clause. /poolmate/beheerder/gebruikers2.asp, line 28 [/code:1:25b0e3fd16] de code zelf is alvolgt [code:1:25b0e3fd16] <% Dim MyConnection Dim MyRecordset ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DB_FILE & ";Persist Security Info=False" Set MyConnection = Server.CreateObject("ADODB.Connection") Myconnection.Open ConnectionString strSQL = "SELECT * " _ & "FROM user " _ & "WHERE usernummer = " & request("paramusernummer") Set MyRecordset = Server.CreateObject("ADODB.Recordset") MyRecordset.Open strSQL, MyConnection, 3, 1 <<<<LINE 28 <<<<< If Request.QueryString("nummer") = "" Then intPage = 1 Else intPage = Request.QueryString("nummer") End If MyRecordset.PageSize = 1 MyRecordset.AbsolutePage = intPage For intRecord = 1 To MyRecordset.PageSize Response.Write(MyRecordset.Fields("Naam").Value) MyRecordset.MoveNext If MyRecordset.EOF Then Exit For Next If intPage > 1 Then Response.Write("<a href=""gebruikers2.asp?nummer="&intPage-1&""">Vorigerecord</a>") End If If intPage < MyRecordset.Recordcount Then Response.Write("<a href=""gebruikers2.asp?nummer="&intPage+1&""">Volgende record</a>") End If MyRecordset.Close Set MyRecordset = Nothing MyConnection.Close Set MyConnection = Nothing %>[/code:1:25b0e3fd16]
Link naar reactie
Het beste wat je kan doen bij fouten in je query is deze even wegschrijven naar het scherm. Vaak zie daar al waar het aan ligt (bijvoorbeeld variabelen die leeg zijn). En anders kan je de query kopieren & plakken in je database software om te kijken of deze daar wel foutloos uitgevoerd wordt of misschien een duidelijkere foutmelding geeft. Zo op het eerste gezicht zie ik overigens niet iets wat er fout kan zijn in je query (tenzij [i:46b4797a7e]paramusernummer[/i:46b4797a7e] leeg is, maar dan had ik een andere foutmelding verwacht). zomaar een gok: misschien dat [i:46b4797a7e]user[/i:46b4797a7e] een reserved word is --> probeer eens [i:46b4797a7e][user][/i:46b4797a7e] Het is overigens nooit een goed idee om rechtstreeks user-input ([i:46b4797a7e]request object[/i:46b4797a7e]) in te voeren in de database. Data wat van de client komt kan je het best bij voorbaat wantrouwen ;). M.a.w. eerst zelf controleren/parsen/casten/whatever. Succes.
Link naar reactie
Je moet kijken of je de tabelnamen niet verkeerd heb gespelt. Ook is het beter de request("paramusernummer") eerst in een variabele te zetten. Dus i.p.v. strSQL = "SELECT * " _ & "FROM user " _ & "WHERE usernummer = " & request("paramusernummer") maar: parnum = request("paramusernummer") strSQL = "SELECT * " _ & "FROM user " _ & "WHERE usernummer = " & parnum
Link naar reactie
[quote:595dc6a56e="HarrySnotter"]Je moet kijken of je de tabelnamen niet verkeerd [color=red:595dc6a56e]heb gespelt[/color:595dc6a56e].[/quote:595dc6a56e] *LOL* :D [quote:595dc6a56e="HarrySnotter"]Ook is het beter de request("paramusernummer") eerst in een variabele te zetten. Dus i.p.v. [..stukje code..] [/quote:595dc6a56e]Of je voorbeeld is een beetje ongelukkig gekozen. Of je hebt niet echt een idee waar je mee bezig bent. (No offence) Kan je even uitleggen waarom de tweede methode beter is?
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...