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

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

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

sql server

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