Likes Likes:  0
Resultaten 1 tot 2 van de 2
Geen
  1. #1
    lammert
    Microsoft OLE DB Provider for ODBC Drivers fout '80040e10'
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

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

    Goede avond allemaal,

    Ik heb een probleempje. Ik heb een beheer menu (beveiligd met
    wachtwoord en gebruikersnaam) voor een site gemaakt. Een functie
    controleert alle keren wanneer je de pagina opent of je een wachtwoord
    en gebruikersnaam hebt ingevoerd. Maar als ik deze functie uitvoer
    krijg ik hieronder staande melding.
    Ik hoop dat er mensen zijn die zo slim zijn die dit probleem weten op
    te lossen, want dan kan ik weer verder.
    Alvast bedankt voor de genomen moeite.

    Groetjes,
    Lammert
    Vinke


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

    [Microsoft][ODBC Microsoft Access-stuurprogramma] Er zijn te weinig
    parameters. Het verwachte aantal is: 1.

    D:\WEBSITE\WWW\BEHEER\..\pages\include\common.inc, regel 291

    CODE

    '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''
    ' Routine: Geautoriseerd()
    '
    ' Purpose: Checks the autorisatiion of a user to use a function
    ' Takes into account if maintenance is allowed at this
    moment
    '
    ' Inputs : Argument : FunCode
    ' DataType : Variant String
    ' Description : ID of the function
    '
    ' Argument : UsrNaam
    ' DataType : Variant String
    ' Description : Name of the user
    '
    ' Returns: True if user is authorised, false if not
    '
    ' Sample Usage :
    ' booVal = Geautoriseerd("activiteitenbeheer","janssen")
    '
    ' Author : Dirk Bok, January 8, 2003
    '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''
    Function Geautoriseerd(byval FunCode, byval UsrNaam)
    Geautoriseerd = false

    if ApplicatieInstelling("BeheerOpen") = true or _
    usrNaam = ApplicatieInstelling("SuperUserNaam") then

    strSQL = "SELECT count(*) FROM tblFuncties as F, tblAutorisatie as A,
    tblGebruikers as G " & _
    "WHERE F.FunID = A.FunID and A.UsrID = G.UsrID " & _
    "AND lcase(F.FunCode) = '" & lcase(FunCode) & "' " & _
    "AND G.UsrNaam = '" & UsrNaam & "';"
    Set rstCheckAutorisatie = Server.CreateObject("ADODB.Recordset")

    De volgende regel is lijn 291
    rstCheckAutorisatie.Open strSQL, CONN_STRING_website, adOpenKeyset,
    adLockOptimistic, adCmdText
    iRecordCount = rstCheckAutorisatie.Fields(0).Value
    rstCheckAutorisatie.Close
    Set rstCheckAutorisatie = Nothing

    if iRecordCount >0 then
    Geautoriseerd = true
    end if

    end if

    End Function

  2. #2
    Robrecht Jacques
    Microsoft OLE DB Provider for ODBC Drivers fout '80040e10'
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Microsoft OLE DB Provider for ODBC Drivers fout '80040e10'

    lammert wrote:
    > Microsoft OLE DB Provider for ODBC Drivers fout '80040e10'
    >
    > [Microsoft][ODBC Microsoft Access-stuurprogramma] Er zijn te weinig
    > parameters. Het verwachte aantal is: 1.
    >
    > D:\WEBSITE\WWW\BEHEER\..\pages\include\common.inc, regel 291

    ....
    > strSQL = "SELECT count(*) FROM tblFuncties as F, tblAutorisatie as A,
    > tblGebruikers as G " & _
    > "WHERE F.FunID = A.FunID and A.UsrID = G.UsrID " & _
    > "AND lcase(F.FunCode) = '" & lcase(FunCode) & "' " & _
    > "AND G.UsrNaam = '" & UsrNaam & "';"
    > Set rstCheckAutorisatie = Server.CreateObject("ADODB.Recordset")
    >
    > De volgende regel is lijn 291
    > rstCheckAutorisatie.Open strSQL, CONN_STRING_website, adOpenKeyset,
    > adLockOptimistic, adCmdText


    Je strSQL is fout. Eén van de woorden is geen SQL, geen veld van je tabel
    of een spellingsfout. Daardoor denkt de .Open functie dat die misspelling
    een parameter is, maar je geeft er geen op => de error-boodschap.

    In de veronderstelling dat je veld- en tabelnamen allemaal goed zijn, zie
    ik op het eerste zicht maar twee mogelijke fouten:

    * je gebruikt een ODBC-driver die { fn lcase(f.funcode) } nodig heeft ipv
    lcase(f.funcode). Eventueel zou je ook 'lower' kunnen gebruiken ipv
    'lcase'.

    * je usrNaam of funCode bevatten een ' (enkele quote).

    Trouwens die laatste fout zou je hoe dan ook best fixen:
    function sqlQuote(s as string) as string
    sqlQuote = replace(s, "'", "''")
    end function
    't Zal je maar gebeuren dat iemand "abc ' ; drop table tblFuncties ; drop
    table tblAutorisatie ; ..." meegeeft als funCode of usrNaam.

    Robrecht



Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics