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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
OdedDvirO

OdedDvir

@OdedDvir
אודות
פוסטים
2.4k
נושאים
60
שיתופים
0
קבוצות
0
עוקבים
21
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • mssql - התייעצות כיצד לשמור שינויי עריכה בטבלאות
    OdedDvirO OdedDvir

    באופן עקרוני, תיעוד אמור להיות מבוצע על ידי כלי, אתה לא אמור להמציא את הגלגל מחדש (ראה לקמן)

    תיעוד בשכבת ה-SQL
    יש ל-SQLServer יש אפשרות מובנית לתיעוד על ידי שימוש במעקב שינויים
    ראה כאן מדריך בנושא: https://www.sqlshack.com/creating-a-sql-server-audit-using-sql-server-change-tracking/
    היתרון באפשרות הזו הוא: שהכל מתחיל ונגמר ב-SQL, ללא צורך בכלים נוספים
    החיסרון בגישה הזו הוא: שהכל מתחיל ונגמר ב-SQL... קשה מאוד לתשאל את הנתונים במקרה שרוצים לחקור אירוע, התיעוד מבוצע לתוך הDB, ולא לתוך קבצי טקסט חיצוניים, ושיטה זו עלולה בקלות להוסיף המון רעשי רקע לפעילות השוטפת של ה-DB

    תיעוד בשכבת DAL
    אם יש לך שכבת DataAccess, למשל API שמבצע את השליפה של הנתונים.
    בדוטנט מומלץ להשתמש בכלי תיעוד כגון Serilog
    שיטה זו היא העדיפה ביותר: אפשר לבנות לוגים מבניים Structured logs שניתנים לתחקור בקלות על ידי כלי אנליטיקה של לוגים, כמו SEQ
    אפשר לתעד לקבצי json יומיים, לשלוט על כמות המידע שנצבר ולהגדיר מתי למחוק לוגים ישנים, ל-Serilog יש אפשרות לנקז את הלוגים שלו לכמה אפיקים במקביל. למשל: תוכל לשלוח בו זמנית את הלוגים שלך לקבצים בדיסק, לקונסול, וגם לשרת לוגים כמו SEQ או QRadar שנותנים לך המון אפשרויות להצגה נוחה של הפעילות, ניתוח ושאילתות פילוח (מי המשתמשים שנכנסו הכי הרבה בחודש האחרון, מה הזמן הממוצע שמשתמש מחובר למערכת וכו')
    החיסרון? לא תמיד יש שכבת DAL מסודרת. אבל אם זה המקרה, אז יש כאן בעיה הרבה יותר גדולה מבעיית חוסר התיעוד.

    להמציא את הגלגל
    זה בפירוש לא מומלץ לכל מקרה, ואני בספק אם יש לזה מקום מעשי בכלל, אבל במקרה הנדיר שכן, אתה יכול לבנות כלי מהיר ומלוכלך לתיעוד ב-SQL:
    SQL Server 2016 ומעלה:

    CREATE PROCEDURE [dbo].[fn_GetJsonData]
    -- =================================================
    -- Description:	Get JSON data from a table row
    -- =================================================
        @TableName NVARCHAR(max),
        @Id INT,
        @Columns NVARCHAR(max) = '*',
        @JsonData NVARCHAR(max) OUTPUT
    AS
    BEGIN
        SET NOCOUNT ON;
    
        DECLARE @Sql NVARCHAR(max) = 'SELECT @JsonData=(SELECT TOP 1 ' + @Columns + ' FROM ' + @TableName + ' WHERE Id=' + CAST(@Id AS VARCHAR) + ' FOR JSON AUTO, WITHOUT_ARRAY_WRAPPER)'
    
        EXEC sp_executesql @Sql,
            N'@JsonData NVARCHAR(max) OUTPUT',
            @JsonData OUTPUT
    END
    GO
    

    טבלת תיעוד פשוטה:

    CREATE TABLE MySimpleAudit (
        Id INT identity(1, 1) PRIMARY KEY,
        TableName NVARCHAR(max),
        OriginalData NVARCHAR(max),
        NewData NVARCHAR(max),
        LogTimeStamp DATETIME2 DEFAULT getutcdate()
        )
    

    כדי לתעד, אתה צריך לקרוא לפרוצדורה הנ"ל לפני השינוי ואחריו, ולתעד את השינויים לטבלה:

    
    -- Init variables:
    DECLARE @OriginalData NVARCHAR(max), @NewData NVARCHAR(max);
    
    -- Get original data:
    EXEC [dbo].[fn_GetJsonData] @TableName = 'Payments',
        @Id = 1234,
        @Columns = 'Id,Amount',
        @JsonData = @OriginalData OUTPUT
    
    -- Do manipulations on the table:
    -- ...........
    ---
    
    -- Get Changes:
    
    EXEC [dbo].[fn_GetJsonData] @TableName = 'Payments',
        @Id = 1234,
        @Columns = 'Id,Amount',
        @JsonData = @NewData OUTPUT
    
    INSERT INTO [MySimpleAudit] (TableName, OriginalData, NewData)
    VALUES ('Payments', @OriginalData, @NewData)
    
    תכנות

  • שרת לאקסס
    OdedDvirO OdedDvir

    @בעל-כישרון כתב בשרת לאקסס:

    הנתונים דווקא בנויים בצורה טובה, אבל מה זה "להעביר ל sql server", זה פעולה פשוטה של להעביר, או שזה מצריך לבנות בסיס מהתחלה?

    אפשר לייבא את הנתונים מאקסס ל-db של SQLServer, אבל זה דורש פיקוח שלך על כל שדה ושדה, לראות שההמרה מתבצעת נכון, דהיינו שטיפוס הנתונים בשדה תקין, ששדות המפתח תקינים, ואולי תצטרך ליצור את האינדקסים מחדש.
    תוכל להשתמש באשף שמגיע עם SSMS, או לייצא את הטבלאות ל-CSV ולייבא אותן ל-SQLServer (לפעמים זה יותר קל)

    מה אתה מתכוין, דוקא נראה שמיקרוסופט מאוד ממליצים על זה, מה באמת החסרונות בזה?

    השילוב של SharePoint ואקסס נזנח למיטב ידיעתי. עיין כאן וכאן

    איפה ראית שממליצים על זה?

    תכנות

  • שרת לאקסס
    OdedDvirO OdedDvir

    @בעל-כישרון כתב בשרת לאקסס:

    שמעתי על שרפויינט של מיקרוסופט, האם יש מישהו שיודע להמליץ, אם זה תואם למטרה הזו?

    SharePoint עבור אקסס נזנח מזמן

    לענ"ד השדרוג המומלץ הוא להעביר את ה-backend ל-SQLServer ולקשר את הטבלאות באקסס לשם.
    כמובן שזה אפשרי רק אם בנית את האפליקציה שלך בצורה טובה, כלומר הפרדת בין הממשק והנתונים, ולא השתמשת בסוגי נתונים סטנדרטיים בטבלאות (למשל, שדה מרובה ערכים)
    הרווח בסופו של יום הוא עצום, כי זה מאפשר אחר כך שדרוג של הממשק לטכנולוגיה אחרת, מבלי לפגוע ברצף העבודה בממשק האקססי.

    אם האמור לעיל לא רלוונטי, אז בעדיפות שניה כדאי להשתמש ב-TSPlus, אבל זה יקר ודורש קונפיגורציה ותחזוקה יותר מורכבת, ותצטרך לעשות כמה קנעטשים באקסס כדי שזה יעבוד טוב. עבדתי כך כמה שנים בעומס של כ-20 משתמשים.

    לצערי אני לא מכיר את AppSheet כדי לחוות עליו דעה.

    תכנות

  • תקלה בהרשאות במחשב "ספירת אובייקטים בגורם המכיל נכשלה. הגישה נדחתה"
    OdedDvirO OdedDvir

    נסה להשתמש בכלי הזה כדי לאפס את הרשאות ה-NTFS בתיקיות הנ"ל:
    https://www.majorgeeks.com/files/details/ntfs_permissions_tools.html

    חומרה

  • דפי צביעה לילדים "צדיק נסתר"
    OdedDvirO OdedDvir

    @14789 כתב בדפי צביעה לילדים "צדיק נסתר":

    רק שאלה איך צובעים על זה?

    spiralbetty_1711108778883.png

    גומלין - כללי

  • מהי מערכת הפעלה לינוקס קלה ביותר
    OdedDvirO OdedDvir

    אם אתה רוצה GUI יש את PuppyLinux (~600M) או antiX (~1GB)

    תוכנה

  • עזרה בפתרון בעיות עכבר במחשב נייד
    OdedDvirO OdedDvir

    בד"כ יש צירוף מקשים שנועל את משטח המגע. נסה ללחוץ על F6 או fn+F6.
    יתכן ואצלך זה מקש שונה מ-F6, חפש את הסמל הזה:
    001_how-to-unlock-the-touchpad-on-a-lenovo-laptop-5209550-23fa004942724627aa42d999f1406f95-3ca5b91f795248e0b1b4b651db03574f.webp

    אם זה לא עוזר, צריך לבדוק בהגדרות של windows. תעקוב אחרי ההוראות כאן: https://pcsupport.lenovo.com/il/he/products/laptops-and-netbooks/flex-series/flex-5-1570/videos/vid100752-how-to-enable-and-disable-your-touchpad

    חומרה

  • עזרה בפתרון בעיות עכבר במחשב נייד
    OdedDvirO OdedDvir

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

    חומרה

  • אקסס | ניהול והחלפת טבלאות מקושרות - האם הקוד מ AI תקין?
    OdedDvirO OdedDvir

    @חייםיודלביץ כתב באקסס | ניהול והחלפת טבלאות מקושרות - האם הקוד מ AI תקין?:

    אז זה קוד תקין ורצוי?

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

    קוד תקין ורצוי הוא בעיני קוד שאתה מבין בדיוק מה קורה בו.
    אם זה נכון לגבי הקוד הזה, אז התשובה היא כן. בניכוי השורות המיותרות הנ"ל. אגב, גם שורה 11 מיותרת.

    למה הרבה קודים ברשת משתמשים בכל מיני משתנים שדורשים הפניות ואז זה נורא מסתבך עם גרסאות האקסס, יש לזה מעלה על הקוד הפשוט הנ"ל?

    אני לא מבין את השאלה, תוכל לתת דוגמא לקוד אחר שעושה את הפעולה הנ"ל?
    אם השאלה שלך היא כללית - אנא פתח נושא חדש ותן דוגמא.

    תכנות

  • אקסס | ניהול והחלפת טבלאות מקושרות - האם הקוד מ AI תקין?
    OdedDvirO OdedDvir
    1. שורות 6,14,15 מיותרות
    2. הקישור למסד נתונים חיצוני כלשהו (אקסס, SQL, Excel וכו') נעשה על ידי מחרוזת חיבור ConnectionString. מחרוזת זו מכילה גם את הכתובת של המסד החיצוני, וגם את הסיסמה אליו, אם יש כזו.
    3. בגדול, אקסס מנהלת את כל הטבלאות על ידי טבלאות מערכת מוסתרות. ניתן להציג אותן על ידי קליק ימני על סרגל הניווט > אפשרויות ניווט > ולסמן V בתיבה הצג אובייקטים מוסתרים ו- הצג אובייקטי מערכת
    4. הטבלה MSysObjects אחראית על האובייקטים שנמצאים בסרגל הניווט. גם מחרוזות החיבור לטבלאות המקושרות נשמרות שם.
      נסה להריץ את השאילתא הבאה:
    SELECT * FROM MSysObjects
    

    בעמודה Connect תופיע מחרוזת החיבור.
    הקוד שהבאת בסה"כ עובר על הרשומות בטבלה הזו, ובודק איזה מהם הוא טבלה (בשורה 10) אם כן, הוא מעדכן את מחרוזת החיבור.

    תכנות

  • המלצה לקורס
    OdedDvirO OdedDvir

    @ארי
    א. אני מזדהה עם דרך הלימוד שלך.
    ב. יש לי דעה שונה מ @pcinfogmach:
    זה שגוי בעיני להתקבע על שפה מסויימת מראש. אני מייעץ לך לא לחשוב יותר מדי בשלב הזה. אם אתה מרגיש שאתה רוצה להתקדם, זה סימן שאתה מוכן. (אגב, יש שאלות ש @pcinfogmach העלה שאני עדיין לא יודע להשיב עליהן 🙂 ) פשוט תקפוץ למים ותתחיל עם משהו, נסה אותו למשך שבועיים שלושה, ותראה אם אתה מתחבר לסגנון. אני לקחתי קורס שלם על nodeJs ב-udemy, ובסוף החלטתי בכלל על דוטנט. ועדיין אני מנסה פה ושם דברים אחרים.
    ג. מסכים שיש הבדל בין אקסס ו-VBA לשפות אחרות, אבל זה נכון גם על כל פלטפורמה אחרת. אין באמת הבדל גדול בעקרונות התכנות בין שפה לשפה. לפי הפעילות שלך בפורום, אני מבין שיש לך הבנה טובה ב-VBA ואקסס. חשוב לי להדגיש שכל נסיון שצברת בתכנות, בכל שפה, מוסיף לניסיון הכללי שלך כמתכנת.

    תכנות

  • אקסל | דרושה נוסחה לבדיקת תקינות מס חשבון בנק
    OdedDvirO OdedDvir

    די מהר מצאתי את הפרוייקט הזה בגיטהב, מלפני שנתיים, נראה לגיטימי: https://github.com/soryy708/il-bank-account-validator. היתה רק בעיה קטנה: הוא כתוב ב-JS.

    אז בגלל שזה נראה לי דבר שימושי, או בגלל שהיה קשה לי להאמין שזה לא זמין לציבור, אולי בגלל השעה... בכל מקרה, נתתי ל ChatGPT לעשות את התרגום הראשוני ל-VB, כמובן שאח"כ הייתי צריך להוסיף ולתקן כמה דברים (חריגות אינדקסים במערכים, הוספת פונקציה במקום השמה ישירה למערך, החלפה של Integer ל-Long, ריפוד באפסים, ועוד כמה שטויות של בורות מלאכותית)
    בסופו של דבר, בדקתי את הקוד מול כמה מספרי חשבונות בנק שמפורסמים ברשת (למשל כאן) וקיבלתי תוצאה תקינה.
    אז אם אתם משתמשים בקוד, ראוי שתתנו כוכב בגיטהב לפרוייקט הנ"ל. (אין לי שום קשר אליו)
    צריך לפתוח מודול חדש ולהדביק את הקוד הבא:

    Option Explicit
    
    Function ValidateAccount(bankNumber As Long, branchNumber As Long, accountNumber As Long) As Boolean
        ' Input validation:
        If Not IsNonNegativeLong(bankNumber) Then
            ValidateAccount = False
         Exit Function
        End If
        If Not IsNonNegativeLong(branchNumber) Then
            ValidateAccount = False
         Exit Function
        End If
        If Not IsNonNegativeLong(accountNumber) Then
            ValidateAccount = False
         Exit Function
        End If
    
        ' Supported banks
        Const YAHAV As Long = 4
        Const POST As Long = 9
        Const LEUMI As Long = 10
        Const DISCOUNT As Long = 11
        Const HAPOALIM As Long = 12
        Const IGUD As Long = 13
        Const OTSAR_AHAYAL As Long = 14
        Const MERCANTILE As Long = 17
        Const MIZRAHI_TEFAHOT As Long = 20
        Const CITIBANK As Long = 22
        Const BEINLEUMI As Long = 31
        Const ARAVEI_ISRAELI As Long = 34
        Const MASAD As Long = 46
        Const POALEI_AGUDAT_ISRAEL As Long = 52
    
        ' Adjust branch number For Mizrahi Tefahot
        If bankNumber = MIZRAHI_TEFAHOT Then
            If branchNumber > 400 Then
                branchNumber = branchNumber - 400
            End If
        End If
    
        Dim accountNumberDigits() As Long
        Dim branchNumberDigits() As Long
    
        accountNumberDigits = NumberDigitsToArr(CLng(accountNumber), 9)
        branchNumberDigits = NumberDigitsToArr(CLng(branchNumber), 3)
    
        ' Account number validation
        Dim sum As Long
        Dim remainder As Long
    
        Select Case bankNumber
         Case LEUMI, IGUD, ARAVEI_ISRAELI
    
            sum = ScalarProduct(GetSubset(accountNumberDigits, 8), ToIntArray("1,10,2,3,4,5,6,7"))
            sum = sum + ScalarProduct(GetSubset(branchNumberDigits, 4), ToIntArray("8, 9, 10"))
            remainder = sum Mod 100
            ValidateAccount = ArrIncludes(ToIntArray("90, 72, 70, 60, 20"), remainder)
    
         Case YAHAV, MIZRAHI_TEFAHOT, HAPOALIM
            sum = ScalarProduct(GetSubset(accountNumberDigits, 6), ToIntArray("1, 2, 3, 4, 5, 6"))
            sum = sum + ScalarProduct(GetSubset(branchNumberDigits, 4), ToIntArray("7, 8, 9"))
            remainder = sum Mod 11
    
            Select Case bankNumber
             Case YAHAV
                ValidateAccount = ArrIncludes(ToIntArray("0, 2"), remainder)
             Case MIZRAHI_TEFAHOT
                ValidateAccount = ArrIncludes(ToIntArray("0, 2, 4"), remainder)
             Case HAPOALIM
                ValidateAccount = ArrIncludes(ToIntArray("0, 2, 4, 6"), remainder)
            End Select
    
         Case DISCOUNT, MERCANTILE, BEINLEUMI, POALEI_AGUDAT_ISRAEL
            sum = ScalarProduct(GetSubset(accountNumberDigits, 9), ToIntArray("1, 2, 3, 4, 5, 6, 7, 8, 9"))
            remainder = sum Mod 11
    
            Select Case bankNumber
             Case DISCOUNT, MERCANTILE
                ValidateAccount = ArrIncludes(ToIntArray("0, 2, 4"), remainder)
    
             Case BEINLEUMI, POALEI_AGUDAT_ISRAEL
                If ArrIncludes(ToIntArray("0, 6"), remainder) Then
                    ValidateAccount = True
                Else
                    sum = ScalarProduct(GetSubset(accountNumberDigits, 6), ToIntArray("1, 2, 3, 4, 5, 6"))
                    remainder = sum Mod 11
                    ValidateAccount = ArrIncludes(ToIntArray("0, 6"), remainder)
                End If
            End Select
    
         Case POST
            sum = ScalarProduct(GetSubset(accountNumberDigits, 9), ToIntArray("1, 2, 3, 4, 5, 6, 7, 8, 9"))
            remainder = sum Mod 10
            ValidateAccount = remainder = 0
    
         Case 54
            ' Jerusalem
            ValidateAccount = True ' wtf?
    
         Case CITIBANK
            sum = ScalarProduct(GetSubset(accountNumberDigits, 8), ToIntArray("2, 3, 4, 5, 6, 7, 2, 3"))
            ValidateAccount = (11 - sum Mod 11) = accountNumberDigits(1)
    
         Case OTSAR_AHAYAL, MASAD
            sum = ScalarProduct(GetSubset(accountNumberDigits, 6), ToIntArray("1, 2, 3, 4, 5, 6"))
            sum = sum + ScalarProduct(GetSubset(branchNumberDigits, 4), ToIntArray("7, 8, 9"))
            remainder = sum Mod 11
    
            If remainder = 0 Then
                ValidateAccount = True
            End If
    
            If bankNumber = MASAD Then
                If remainder = 2 And ArrIncludes(ToIntArray("154, 166, 178, 181, 183, 191, 192, 503, 505, 507, 515, 516, 527, 539"), branchNumber) Then
                    ValidateAccount = True
                End If
    
                sum = ScalarProduct(GetSubset(accountNumberDigits, 9), ToIntArray("1, 2, 3, 4, 5, 6, 7, 8, 9"))
                remainder = sum Mod 11
    
                If remainder = 0 Then
                    ValidateAccount = True
                Else
                    sum = ScalarProduct(GetSubset(accountNumberDigits, 6), ToIntArray("1, 2, 3, 4, 5, 6"))
                    remainder = sum Mod 11
                    ValidateAccount = remainder = 0
                End If
            End If
    
            If bankNumber = OTSAR_AHAYAL Then
                If ArrIncludes(ToIntArray("0, 2"), remainder) And ArrIncludes(ToIntArray("385, 384, 365, 347, 363, 362, 361"), branchNumber) Then
                    ValidateAccount = True
                Elseif remainder = 4 And ArrIncludes(ToIntArray("363, 362, 361"), branchNumber) Then
                    ValidateAccount = True
                Else
                    sum = ScalarProduct(GetSubset(accountNumberDigits, 9), ToIntArray("1, 2, 3, 4, 5, 6, 7, 8, 9"))
                    remainder = sum Mod 11
                    If remainder = 0 Then
                        ValidateAccount = True
                    Else
                        sum = ScalarProduct(GetSubset(accountNumberDigits, 6), ToIntArray("1, 2, 3, 4, 5, 6"))
                        remainder = sum Mod 11
                        ValidateAccount = remainder = 0
                    End If
                End If
            End If
    
        End Select
    
    End Function
    
    Function ScalarProduct(arr1() As Long, arr2() As Long) As Long
        Dim product As Long
        Dim i As Long
        Dim maxIndex As Integer
        maxIndex = UBound(arr1)
        If maxIndex > UBound(arr2) Then maxIndex = UBound(arr2)
    
            For i = 1 To maxIndex
                product = product + arr1(i) * arr2(i)
            Next i
            ScalarProduct = product
    End Function
    
    Function ArrIncludes(arr() As Long, val As Long) As Boolean
        Dim i As Long
        If Not IsEmpty(arr) Then
            For i = LBound(arr) To UBound(arr)
                If arr(i) = val Then
                    ArrIncludes = True
                 Exit Function
                End If
            Next i
        End If
    End Function
    
    Function NumberDigitsToArr(num As Long, length As Long) As Long()
        Dim digitsArray() As Long
        ReDim digitsArray(1 To length)
    
        Dim zeroPadding As Integer
        zeroPadding = length - Len(CStr(num))
    
        Dim i As Long
    
        For i = 1 To zeroPadding
            digitsArray(i) = 0
        Next i
        For i = zeroPadding + 1 To length
            digitsArray(i) = num Mod 10
            num = Int(num / 10)
        Next i
        NumberDigitsToArr = digitsArray
    End Function
    
    Function IsNonNegativeLong(num As Variant) As Boolean
        If VarType(num) = vbLong And num >= 0 Then
            IsNonNegativeLong = True
        End If
    End Function
    
    Function GetSubset(arr() As Long, count As Long) As Long()
        Dim result() As Long
        ReDim result(1 To count)
        Dim i As Long
        For i = 1 To count
            If i <= UBound(arr) Then
                result(i) = arr(i)
            End If
        Next i
        GetSubset = result
    End Function
    
    Function ToIntArray(list As String) As Long()
        Dim temp() As String
        temp = Split(list, ",")
    
        Dim result() As Long
        ReDim result(1 To UBound(temp) + 1)
    
        Dim i As Integer
    
        For i = 0 To UBound(temp)
            result(i + 1) = CLng(temp(i))
        Next i
        ToIntArray = result
    End Function
    
    
    
    
    תוכנה

  • אקסל | דרושה נוסחה לבדיקת תקינות מס חשבון בנק
    OdedDvirO OdedDvir

    היינו הך
    זה כתוב ב-VBA, אז פשוט תעתיק את המודול מקובץ האקסס לתוך האקסל
    ואז הפונקציות יהיו זמינות לך שם

    תוכנה

  • שימוש עם VScode בSSH בשרת זוללת משאבים??
    OdedDvirO OdedDvir

    שימוש עם VScode בכל מחשב שהוא - זולל משאבים. נקודה.
    פתיחה של קובץ batch בגודל 116 בתים בלבד - נוגסת בכ-100MB של RAM.

    תכנות

  • טיפ, עריכה נוחה של קבצי bat בVSC
    OdedDvirO OdedDvir

    @אביי

    1. אני אישית אוהב להשאיר את האופציות של ברירת המחדל של windows, לכן הוספתי אפשרות חדשה: Edit in Code
    2. אצלי ה-VSCode מותקן ב- C:\Users\<MyUser>\AppData\Local\Programs\Microsoft VS Code\Code.exe
      לכן היה צורך להשתמש בטיפוס-expandable string value כדי לקבל את הנתיב של המשתמש באופן ג'נרי על ידי %LocalAppData%
    3. אי אפשר להוסיף ערך מטיפוס כזה שיהיה ברירת המחדל, ישירות מ-regedit, לכן אני מצרף שני קבצים לשם נוחות, אחד להתקנה ואחד להסרה. אם נתיב ההתקנה שונה אצלך מהמצוין לעיל, ניתן לערוך את הערך אחרי ההתקנה, ולשנות לנתיב אחר כרצונך.
      Add (Edit in Code) to context menu.reg
      Remove (Edit in Code) from context menu.reg
    תוכנה

  • עזרה בsql בנושא פונקציות (סקלריות וטבלאיות)
    OdedDvirO OdedDvir

    @Sara-Rivka ב-SQLServer יש שני סוגים עיקריים של פונקציות:

    1. פונקציה סקלרית - מחזירה ערך בודד, למשל INT,BIT, VARCHAR(64) וכו'
    2. פונקציה טבלאית - מחזירה טבלה. כלומר תוצאה של SELECT
      הסוג הזה מתחלק ל-2 תתי-סוגי פונקציות:
      2.1 Inline - פונקציה זו תמיד מכילה פקודה בודדת שמתחילה במילה השמורה RETURN
      דוגמא:
    CREATE FUNCTION fn_GetUserById(INT UserId)
    RETURNS TABLE
    AS
    RETURN (
            SELECT * FROM Users
            WHERE Id = @UserId
    )
    

    היתרון של סוג פונקציה כזה הוא שהוא יחסית יעיל, בהשוואה לסוג הבא.

    2.2 פונקציה מרובת פקודות (Multi-Statement Function) - שמאפשרת לבצע כמה פקודות ברצף
    התחביר שלה שונה בכמה אופנים:
    א. נדרשת הגדרה מראש של מבנה הטבלה שיוחזר.
    ב. הפקודות מוקפות בבלוק BEGIN-END
    ג. חובה לסיים את הפונקציה בפקודה RETURN

    דוגמא:

    CREATE FUNCTION fn_BestStudents(MinScore INT)
    RETURNS @ResultTable TABLE
    (
         StudentId INT,
         AverageScore INT
    )
    AS
    BEGIN
            SELECT Students.Id, Avg(Tests.Score)
            INTO @ResultTable
            FROM Students
            INNER JOIN Tests ON Students.Id = Tests.StudentId
            GROUP BY Students.Id
    
           RETURN
    END
    

    הסוג הזה של פונקציות בעייתי מבחינת יעילות, ובאופן כללי יש להמנע משימוש בו.

    תכנות

  • התקנת תאורה בתקרת גבס
    OdedDvirO OdedDvir

    כל התשובות נכונות

    1. יש גופי תאורה ששקועים בגבס - אלו דורשים חיתוך של הגבס בצורה שתתאים לגוף התאורה, לדוגמא, ספוטים דורשים חיתוך בצורת עיגול. בדר"כ ההצמדה היא על ידי קפיצים בצדדים, מכווצים אותם ומכניסים לחור, והם משתחררים בתוך החלל של הגבס, ונצמדים ללוח הגבס מצידו השני.
    2. יש גוף תאורה חיצוני - אותו תולים על הגבס מבחוץ, בדומה לקיר רגיל, בתנאי שהוא לא כבד במיוחד. בסוג הזה יש אפשרות תיאורטית לכוון מראש את מיקום הניצב במקום שבו רוצים להתקין את הגוף, ולהשתמש בברגים רגילים, אבל זה לא נוח ולא קל לכוון את הניצבים כך שיעמדו במקום המתאים. השיטה הרווחת היא להשתמש בבורג גבס מיוחד. יש הרבה סוגים, אבל הרעיון של כולם דומה, שבמהלך ההברגה החלק הפנימי של הבורג מתרחב ו\או נצמד ללוח הגבס מצידו השני.
    3. פס לד - עקרונית לא מצריך שום הכנה, הדבק שבצידו השני מספיק ברוב המקרים. גם פה יש הרבה אפשרויות, כי לרוב לא רוצים שהפס יהיה גלוי, אז או שמסתירים אותו על ידי זוית, או שמשתמשים במסילת אלומיניום \ פלסטיק לתאורה, כעין מסילות הפלסטיק שמשמשות להעברת כבלים על הקיר, אלא שלאלו יש מכסה חצי שקוף שמאפשר לאור לעבור, ומשקעים אותם בקיר.
    בניה ושיפוצים

  • אקסס | איך ניתן לשרשר טקסט ומספר ללא היפוך התצוגה?
    OdedDvirO OdedDvir

    @חייםיודלביץ אני לא מתערב לך בעיצוב 🙂 , פשוט זה הסדר שמופיע בקוד שלך

    תכנות

  • אקסס | איך ניתן לשרשר טקסט ומספר ללא היפוך התצוגה?
    OdedDvirO OdedDvir

    @חייםיודלביץ מהשאלה שלך נראה שהסדר הרצוי הוא

    1. מספר בית
    2. כניסה
    3. קו נטוי
    4. דירה

    אם כן לכאורה הפלט תקין: מספר בית=52, כניסה=ד, קו נטוי, דירה=6

    תכנות

  • מדפסת שמדפיסה עקבות בכל דף בחצי התחתון
    OdedDvirO OdedDvir

    @מטעמים אני מציין את העובדה שלא ניתן להדפיס על כל שקף באמצעות מדפסת לייזר. הסיבה היא שהשקפים הפשוטים פשוט לא עמידים בטמפרטורה שבה עובדת ההדפסה. יש שקפים ייעודיים למכונת צילום \ מדפסת לייזר, והם יותר יקרים.
    בדידי הוה עובדא שפעם ניסיתי להדפיס באמצעות מדפסת לייזר על שקף רגיל, והלה פשוט נמס בפנים. חוויה צורבת לשנינו.

    חומרה
  • 1
  • 2
  • 3
  • 4
  • 5
  • 119
  • 120
  • 3 / 120
  • התחברות

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

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