שלח תשובה

זירת השאלות

506
צפיות
3
תשובות

set cmdByRoyalty = Server.CreateObj

,‏ 21 במרץ, 2007

יש לי בעיה. יש לי דף כניסה למנהלים. יצרתי CMD של SP הוא יוצר את הפרמטר UNAME (השם שהוכנס) ובSP הוא בודק אם אכן השם בDB.
מופיעה לי הודעת השגיאה הבאה:


Microsoft VBScript runtime (0x800A01F4)
Variable is undefined: 'adCmdStoredProc'
/kodweb/Login_Go.asp, line 15

וקוד התוכנית


<%@ LANGUAGE="VBSCRIPT" CODEPAGE="1255"%>
<%Option Explicit %>
<% Response.ExpiresAbsolute = Now() – 1 %>
<% Response.Expires = 0 %>
<% Response.AddHeader "pragma","no-cache"%>
<% Response.AddHeader "cache-control","private" %>
<% Server.ScriptTimeOut=360
%>
<!–#include file="inc_files/connect_inc.asp"–>
<%      Dim cmdByRoyalty, rsByRoyalty
        set cmdByRoyalty = Server.CreateObject("ADODB.Command")
        set rsByRoyalty = Server.CreateObject("ADODB.Recordset")
        Dim strMessage
        cmdByRoyalty.CommandText = "spCheckAdmin"
        cmdByRoyalty.CommandType = adCmdStoredProc
        Dim prmByRoyalty
        prmByRoyalty = cmdByRoyalty.CreateParameter("@Uname",adChar,adParamInput)
        cmdByRoyalty.Parameters.Append(prmByRoyalty)
        prmByRoyalty.Value = iRoyalty
        cmdByRoyalty.ActiveConnection = objconn
       rsByRoyalty = cmdByRoyalty.Execute()
        If rsByRoyalty.EOF Then
            StrErr= "שם המשתמש או הסיסמא אינם קיימים"
            Response.Redirect  "Login.asp?Err1=" & StrErr
        Else
            Response.Redirect "index.asp"
        End If
%>



והSP שלי היא



CREATE PROCEDURE spCheckAdmin
@UName varchar (15)
As
SELECT * FROM  Users_TBL WHERE  UserName=@UName
GO



תודה לעוזרים!

תגיות:

3 תשובות

  1. yyefet הגיב:

    פתרתי את הבעיה אבל נוצרה בעיה חדשה.
    הודעת השגיאה


    Error Type:
    ADODB.Command (0x800A0BB9)
    Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
    /kodweb/Login_Go.asp, line 21

    זה הקוד ששונה


    <%@ LANGUAGE="VBSCRIPT" CODEPAGE="1255"%>
    <%Option Explicit %>
    <% Response.ExpiresAbsolute = Now() – 1 %>
    <% Response.Expires = 0 %>
    <% Response.AddHeader "pragma","no-cache"%>
    <% Response.AddHeader "cache-control","private" %>
    <% Server.ScriptTimeOut=360
    Const adCmdStoredProc = 4
    Const adVarChar = 200

    %>
    <!–#include file="inc_files/connect_inc.asp"–>
    <%    
            Dim cmdByRoyalty, rsByRoyalty , strUser
            strUser=request("UserName")
            set cmdByRoyalty = Server.CreateObject("ADODB.Command")
            set rsByRoyalty = Server.CreateObject("ADODB.Recordset")
          
            cmdByRoyalty.CommandText = "spCheckAdmin"
            cmdByRoyalty.CommandType = adCmdStoredProc
            cmdByRoyalty.Parameters.Append cmdByRoyalty.CreateParameter("Uname",adVarChar,50 )
            cmdByRoyalty.Parameters("Uname").Value=strUser
            cmdByRoyalty.ActiveConnection = objconn
            rsByRoyalty.Open cmdByRoyalty
            If rsByRoyalty.EOF Then
                StrErr= "שם המשתמש או הסיסמא אינם קיימים"
                Response.Redirect  "Login.asp?Err1=" & StrErr
            Else
                Response.Redirect "index.asp"
            End If
    %>

  2. yyefet הגיב:

    הסתדר, תודה
    למי שמעונין הקוד התקין


    Dim cmdByRoyalty, rsByRoyalty , strUser
            strUser=request("UserName")
            set cmdByRoyalty = Server.CreateObject("ADODB.Command")
            set rsByRoyalty = Server.CreateObject("ADODB.Recordset")
            cmdByRoyalty.CommandText = "spCheckAdmin"
            cmdByRoyalty.CommandType = adCmdStoredProc
            cmdByRoyalty.Parameters.Append = cmdByRoyalty.CreateParameter("Uname",200,1,50,strUser)
            cmdByRoyalty.ActiveConnection = objconn
            rsByRoyalty.Open cmdByRoyalty
            If rsByRoyalty.EOF Then
                StrErr= "שם המשתמש או הסיסמא אינם קיימים"
                Response.Redirect  "Login.asp?Err1=" & StrErr
            Else
                Response.Redirect "index.asp"
            End If

  3. yyefet הגיב:

    איך ניתן לדעת האם הנתון קיים בSP
    אני רוצה שאם מכניסים נתונים שאינם קימים בDB אז הוא יקבל את ההודעה "הנתון לא קיים" ואם כן אז "הנתונים נמחקו".
    בקוד שלי מתבצעת רק מחיקה ללא הודעה. מכניסים נתון שלא קיים הוא מציג את אותה הודעה.


    cmdInsert.Parameters.Append = cmdInsert.CreateParameter("ActionFlag",3,1,50,2)
            cmdInsert.Parameters.Append = cmdInsert.CreateParameter("UName",200,1,50,strUser)
            cmdInsert.Parameters.Append = cmdInsert.CreateParameter("UPass",200,1,50,strPass)
            cmdInsert.Parameters.Append = cmdInsert.CreateParameter("RC",3, 2, 1)
            cmdInsert.ActiveConnection = objconn
            cmdInsert.Execute
            If cmdInsert("RC") = 0 then
                response.Write "שם המשתמש או הסיסמא  קיימים"
            else
                If cmdInsert("RC") = 1 then
                    response.Write "לא קיים "
                end if
            End If

    הקוד של SP


    CREATE PROCEDURE spCheckAdmin
        @ActionFlag      INT,
        @UName     NVARCHAR (15) ,
        @UPass     NVARCHAR (15) ,
        @RC             INT OUTPUT

    As

    If @ActionFlag = 2
        BEGIN
            DELETE FROM  Users_TBL WHERE
                UserName=@UName and
                UserPass=@UPass
                
                IF @@RowCount > 0
                       BEGIN
                           SELECT @rc = 1
                           RETURN @rc
                       END
                ELSE
                       BEGIN
                           SELECT @rc = 0
                           RETURN @rc
                     END
                
        END
    GO

שלח תשובה

חדש! אחסון אתרים של וובמאסטר

שירות אחסון אתרים
המקצועי של וובמאסטר!

מומחים באירוח אתרי
WordPress, Joomla, Drupal

  • שרתי לינוקס עם CloudLinux, LiteSpeed
  • 1GB דיסק SSD, 10GB תעבורה חודשית
  • ממשק ניהול cPanel, תעודת SSL חינם

עכשיו במחיר היכרות:
רק 420 ש"ח לשנה!