דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תוכנה
  3. sql server

sql server

מתוזמן נעוץ נעול הועבר תוכנה
29 פוסטים 2 כותבים 792 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ש מנותק
    ש מנותק
    שרה רחל
    כתב ב נערך לאחרונה על ידי
    #19

    Annotation 2020-07-17 011406.png

    תגובה 1 תגובה אחרונה
    0
    • OdedDvirO מנותק
      OdedDvirO מנותק
      OdedDvir
      השיב לשרה רחל ב נערך לאחרונה על ידי OdedDvir
      #20

      @שרה-רחל אמר בsql server:

      יש פקודה שמיצאת את כל הבסיסי נתונים ?

      לא צריך את הכל. רק את שתי הטבלאות הנ"ל.
      בSSMS קליק ימני על הטבלה >
      Script Table as > CREATE to > New Query Editor window

      30f70b99-8f00-433b-8399-d81e56da3ba1-תמונה.png

      ולהעתיק את תוכן החלון שנפתח

      תגובה 1 תגובה אחרונה
      0
      • ש מנותק
        ש מנותק
        שרה רחל
        כתב ב נערך לאחרונה על ידי
        #21
        USE [lib]
        GO
        
        /****** Object:  Table [dbo].[AUTHER]    Script Date: 7/17/2020 7:55:40 AM ******/
        SET ANSI_NULLS ON
        GO
        
        SET QUOTED_IDENTIFIER ON
        GO
        
        CREATE TABLE [dbo].[AUTHER](
        	[AUTHER_ID] [int] IDENTITY(1,1) NOT NULL,
        	[AUTHER_NAME] [nvarchar](50) NULL,
         CONSTRAINT [PK_AUTHER] PRIMARY KEY CLUSTERED 
        (
        	[AUTHER_ID] ASC
        )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
        ) ON [PRIMARY]
        GO
        
        
        USE [lib]
        GO
        
        /****** Object:  Table [dbo].[DOC]    Script Date: 7/17/2020 7:56:12 AM ******/
        SET ANSI_NULLS ON
        GO
        
        SET QUOTED_IDENTIFIER ON
        GO
        
        CREATE TABLE [dbo].[DOC](
        	[DOC_ID] [int] IDENTITY(1,1) NOT NULL,
        	[DOC_NAME] [nvarchar](50) NULL,
        	[AUTHER_ID] [int] NULL,
        	[DOC_PATH] [nvarchar](50) NOT NULL,
        	[DOC_DATE] [date] NULL,
         CONSTRAINT [PK_DOC] PRIMARY KEY CLUSTERED 
        (
        	[DOC_ID] ASC
        )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
        ) ON [PRIMARY]
        GO
        
        ALTER TABLE [dbo].[DOC]  WITH CHECK ADD  CONSTRAINT [FK_DOC_AUTHER] FOREIGN KEY([AUTHER_ID])
        REFERENCES [dbo].[AUTHER] ([AUTHER_ID])
        GO
        
        ALTER TABLE [dbo].[DOC] CHECK CONSTRAINT [FK_DOC_AUTHER]
        GO
        
        

        אולי צריך להגדיר בפרוצדורה RETURN?

        OdedDvirO תגובה 1 תגובה אחרונה
        0
        • OdedDvirO מנותק
          OdedDvirO מנותק
          OdedDvir
          השיב לשרה רחל ב נערך לאחרונה על ידי
          #22

          @שרה-רחל אוקי.
          אחרי קצת חיפושים, מצאתי את הפוסט הזה שדן בבעיה. על פי האמור שם, הבעייה נמצאת באמת בקריאה לפרוצדורה מתוך C#.
          בקריאה יש להשתמש ב ExecuteScalar במקום ב Execute.
          נשמח להתעדכן אם אכן הפעיה נפתרה

          תגובה 1 תגובה אחרונה
          0
          • ש מנותק
            ש מנותק
            שרה רחל
            כתב ב נערך לאחרונה על ידי
            #23

            @OdedDvir אמר בsql server:

            ExecuteScalar

            זה הקוד של השליחה לפונקציה ושיניתי כאמור כפי שכתבתם רק עכשיו זה מתריע לי שהפונקיה מחזירה OBJECTולא INT

             public int InsertDoc( string docName, string autherName, string docPath, DateTime docDate)
                    {
                        using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(Helper.CnnVal("lib`")))
                        {
                           
                            List<Doc> doc = new List<Doc>();
            
                            doc.Add(new Doc { DocName = docName , autherName = autherName, DocPath = docPath , DocDate = docDate });
            
                            return connection.ExecuteScalar("dbo.INSERT_DOC @docName, @autherName, @docPath, @docDate", doc);
            
                        }
                    }
            
            תגובה 1 תגובה אחרונה
            0
            • ש מנותק
              ש מנותק
              שרה רחל
              כתב ב נערך לאחרונה על ידי
              #24

              מנסה להמיר לINT

                              return Convert.ToInt32(connection.ExecuteScalar("dbo.INSERT_DOC @docName, @autherName, @docPath, @docDate", doc));
              

              ומחזיר לי את השגיאה בהרצה An enumerable sequence of parameters (arrays, lists, etc) is not allowed in this context

              OdedDvirO תגובה 1 תגובה אחרונה
              0
              • OdedDvirO מנותק
                OdedDvirO מנותק
                OdedDvir
                השיב לשרה רחל ב נערך לאחרונה על ידי
                #25

                @שרה-רחל אני חושב שזה בגלל שהפרוצדורה מחזירה רשומה ולא ערך יחיד.
                תנסו להחליף את הערך המוחזר בפרוצדורה.
                במקום:

                SELECT SCOPE_IDENTITY() as D_ID
                

                לרשום:

                RETURN SCOPE_IDENTITY()
                
                תגובה 1 תגובה אחרונה
                2
                • ש מנותק
                  ש מנותק
                  שרה רחל
                  כתב ב נערך לאחרונה על ידי
                  #26

                  @OdedDvir אמר בsql server:

                  RETURN SCOPE_IDENTITY()

                  לא עזר
                  ניסיתי גם להריץ דרך הSQL SERVER ישירות
                  וכשאני מריצה את ה פרוצדורה עם השורה SELECT SCOPE_IDENTITY() as D_ID
                  הוא מחזיר לי את העמודה הרלוונטית
                  וכשאני מריצה עם השורה RETURN SCOPE_IDENTITY()
                  הוא כותב שזה עבר ולא מחזיר לי ערך
                  ב2 המקרים בקריאה דרך ויזואל סטודיו מחזיר את אותה השגיאה שצינתי לעיל
                  תודה

                  OdedDvirO תגובה 1 תגובה אחרונה
                  0
                  • ש מנותק
                    ש מנותק
                    שרה רחל
                    כתב ב נערך לאחרונה על ידי
                    #27

                    @שרה-רחל אמר בsql server:

                    ב2 המקרים בקריאה דרך ויזואל סטודיו מחזיר את אותה השגיאה שצינתי לעי

                    סליחה
                    דרך הSQL SERVER
                    זה כן מחזיר לי ערכים
                    השגיאה היא רק דרך VISUAL STUDIO

                    OdedDvirO תגובה 1 תגובה אחרונה
                    0
                    • OdedDvirO מנותק
                      OdedDvirO מנותק
                      OdedDvir
                      השיב לשרה רחל ב נערך לאחרונה על ידי OdedDvir
                      #28

                      @שרה-רחל אמר בsql server:

                      השגיאה היא רק דרך VISUAL STUDIO

                      התחביר שאתם מריצים ב VS לא תקין.
                      תנסו את הקוד הבא:

                       public int InsertDoc( string docName, string autherName, string docPath, DateTime docDate)
                      {
                          using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(Helper.CnnVal("lib`")))
                          {
                              SqlCommand command = new SqlCommand("dbo.INSERT_DOC", connection);
                              command.Connection.Open();
                              command.CommandType = CommandType.StoredProcedure;
                              command.Parameters.AddWithValue("@docName", docName);
                              command.Parameters.AddWithValue("@autherName", autherName);
                              command.Parameters.AddWithValue("@docPath", docPath);
                              command.Parameters.AddWithValue("@docDate", docDate);
                              return Convert.ToInt32(command.ExecuteScalar());
                           }
                      }
                      
                      תגובה 1 תגובה אחרונה
                      2
                      • OdedDvirO מנותק
                        OdedDvirO מנותק
                        OdedDvir
                        השיב לשרה רחל ב נערך לאחרונה על ידי
                        #29

                        @שרה-רחל אמר בsql server:

                        וכשאני מריצה את ה פרוצדורה עם השורה SELECT SCOPE_IDENTITY() as D_ID
                        הוא מחזיר לי את העמודה הרלוונטית

                        תשאירו את הפרוצדורה המקורית בשימוש עם ExecuteScalar כנ"ל

                        תגובה 1 תגובה אחרונה
                        1

                        • 1
                        • 2
                        בא תתחבר לדף היומי!
                        • התחברות

                        • אין לך חשבון עדיין? הרשמה

                        • התחברו או הירשמו כדי לחפש.
                        • פוסט ראשון
                          פוסט אחרון
                        0
                        • דף הבית
                        • קטגוריות
                        • פוסטים אחרונים
                        • משתמשים
                        • חיפוש
                        • חוקי הפורום