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

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

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

sql server

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

    איך אני גורמת לפרוצדורה להחזיר את הערך של הID האחרון שהוכנס לDOC

    OdedDvirO מנותק
    OdedDvirO מנותק
    OdedDvir
    כתב ב נערך לאחרונה על ידי
    #12

    @שרה-רחל בעיקרון SCOPE_IDENTITY() אמור לעבוד.
    תנסו אולי כך:

    SELECT IDENT_CURRENT('DOC') AS D_ID
    
    תגובה 1 תגובה אחרונה
    1
    • ש מנותק
      ש מנותק
      שרה רחל
      כתב ב נערך לאחרונה על ידי
      #13

      @OdedDvir אמר בsql server:

      SELECT IDENT_CURRENT('DOC') AS D_ID

      מה הכוונה של DOC
      למה לא DOC_ID

      OdedDvirO 2 תגובות תגובה אחרונה
      0
      • ש שרה רחל

        @OdedDvir אמר בsql server:

        SELECT IDENT_CURRENT('DOC') AS D_ID

        מה הכוונה של DOC
        למה לא DOC_ID

        OdedDvirO מנותק
        OdedDvirO מנותק
        OdedDvir
        כתב ב נערך לאחרונה על ידי OdedDvir
        #14

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

        מה הכוונה של DOC

        כך הוא התחביר של IDENT_CURRENT, צריך לציין את שם הטבלה שממנה שולפים את שדה הזהות.

        תגובה 1 תגובה אחרונה
        1
        • ש שרה רחל

          @OdedDvir אמר בsql server:

          SELECT IDENT_CURRENT('DOC') AS D_ID

          מה הכוונה של DOC
          למה לא DOC_ID

          OdedDvirO מנותק
          OdedDvirO מנותק
          OdedDvir
          כתב ב נערך לאחרונה על ידי
          #15

          @שרה-רחל נשמח להתעדכן אם הבעיה נפתרה וכיצד.

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

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

            SELECT IDENT_CURRENT('DOC') AS D_ID

            עדיין מחזיר -1

            OdedDvirO תגובה 1 תגובה אחרונה
            0
            • ש שרה רחל

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

              SELECT IDENT_CURRENT('DOC') AS D_ID

              עדיין מחזיר -1

              OdedDvirO מנותק
              OdedDvirO מנותק
              OdedDvir
              כתב ב נערך לאחרונה על ידי
              #17

              @שרה-רחל מעניין...
              האם תוכלו לפרט את הגדרות הטבלאות ב-SQL?

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

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

                OdedDvirO תגובה 1 תגובה אחרונה
                0
                • ש מנותק
                  ש מנותק
                  שרה רחל
                  כתב ב נערך לאחרונה על ידי
                  #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
                      • ש שרה רחל
                        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 מנותק
                        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
                            • ש שרה רחל

                              מנסה להמיר ל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 מנותק
                              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
                                  • ש שרה רחל

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

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

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

                                    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
                                    • ש שרה רחל

                                      @OdedDvir אמר בsql server:

                                      RETURN SCOPE_IDENTITY()

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

                                      OdedDvirO מנותק
                                      OdedDvirO מנותק
                                      OdedDvir
                                      כתב ב נערך לאחרונה על ידי
                                      #29

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

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

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

                                      תגובה 1 תגובה אחרונה
                                      1
                                      תגובה
                                      • תגובה כנושא
                                      התחברו כדי לפרסם תגובה
                                      • מהישן לחדש
                                      • מהחדש לישן
                                      • הכי הרבה הצבעות


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

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

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