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

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

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

sql server

מתוזמן נעוץ נעול הועבר תוכנה
29 פוסטים 2 כותבים 792 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • 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
      • OdedDvirO מנותק
        OdedDvirO מנותק
        OdedDvir
        השיב לשרה רחל ב נערך לאחרונה על ידי OdedDvir
        #14

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

        מה הכוונה של DOC

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

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

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

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

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

            SELECT IDENT_CURRENT('DOC') AS D_ID

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

            OdedDvirO תגובה 1 תגובה אחרונה
            0
            • 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
                      • 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
                                      • דף הבית
                                      • קטגוריות
                                      • פוסטים אחרונים
                                      • משתמשים
                                      • חיפוש
                                      • חוקי הפורום