none
קריאה לפרוצדורה מתוך אפליקציית C++ חוזרת עם הודעת שגיאה. RRS feed

  • שאלה

  • אהלן חברים.

    אני עובד עם בסיסי נתונים סייבס וסאפ כבר שנים רבות.

    החלטתי לעבור ל SQL SERVER וביצעתי הסבה מלאה של מאות טבלאות, אלפי שדות, וכמאתיים פרוצדורות וטריגרים. 

    הרוב פועל פיקס. 

    יש איזו תופעה מוזרה שאני לא מצליח לצאת ממנה. 

    אני קורא לפרוצדורה מתוך C++ ומקבל חזרה את המידע כפי שצריך. כל המידע נכון ותקין, אבל... וזה אבל גדול... האפליקציה C++ מקבלת הודעת שגיאה מבסיס הנתונים למרות שכל המידע מגיע לשדות השונים. 

    ניסיתי להוריד פרמטרים וגיליתי שאם אני מוריד את הפרמטרים 

    זו הפרוצדורה:

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER procedure [dbo].[GetPatientNumber] 
    @email NVARCHAR(40),
    @pass NVARCHAR(40),
    @patient_number INTEGER OUTPUT,
    @epoch_time INTEGER OUTPUT,
    @sensor_type INTEGER OUTPUT,
    @service_status INTEGER OUTPUT,
    @message_to_user NVARCHAR(240) OUTPUT,
    @max_session_length INTEGER OUTPUT,
    @server_ip_address NVARCHAR(16) OUTPUT,
    @server_port_number NVARCHAR(6) OUTPUT,
    @min_hr INTEGER OUTPUT,
    @max_hr INTEGER OUTPUT,
    @high_v INTEGER OUTPUT
    AS
    BEGIN

    SET NOCOUNT ON;

    this parameter make the problem. (I am getting error even everything is working well) @message_to_user NVARCHAR(240) OUTPUT,

    This is the error text: Indicator variable required but not supplied

    אשמח לעזרה

    יום חמישי 02 אפריל 2020 11:31

כל התגובות

  • אהלן אלדד,

    אנא צרף את הקוד המלא של הפרוצדורה ולא קוד חלקי כפי שסיפקת מעל. ייתכן שהמשך הקוד משהו שנמצא למשל ב scope שונה אשר לא מקבל את ההגדרה של הפרמטר 

    את הקוד יש לשים בתוך בלוק של קוד. בעורך של ההודעה יש לך כפתור insert code block
    כאשר אתה מוסיף את הקוד בחלון שנפתח לך תבחר את השפה הנכונה (T-SQL) כדי שהוקד יקבל צבעים להקל על הקריאה בהתאם לשפה של הקוד

    וכמובן לא נשכח...
    ברוךל הבא לפורום 😀


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום חמישי 02 אפריל 2020 14:31
    מנחה דיון