שלח תשובה

זירת השאלות

602
צפיות
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  [email protected]
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
                [email protected] and
                [email protected]
                
                IF @@RowCount > 0
                       BEGIN
                           SELECT @rc = 1
                           RETURN @rc
                       END
                ELSE
                       BEGIN
                           SELECT @rc = 0
                           RETURN @rc
                     END
                
        END
    GO

שלח תשובה