Strona 1 z 1

Problem z uruchomieniem procedury WYKRES - błąd 1021 (brak biblioteki DLL)

: 29 sty 2025, 15:54
autor: funmp
Cześć,

Próbuję uruchomić procedurę bezpośrednio z poziomu definicji wykresu.
Niestety, podczas próby uruchomienia pojawia się następujący błąd:

błąd 1021
Znalezienie biblioteki nie udało się.
Sprawdź, czy wszystkie biblioteki DLL są dostępne.

Rejestr.bat z uprawnieniami administratora był uruchamiany.



Tak robię wywołanie:
EXEC raportrw;
Tak też próbowałem:
EXEC dbo.raportrw;

Oto procedura, która po stronie serwera działa bez zarzutu:

Kod: Zaznacz cały

CREATE PROCEDURE raportrw
AS
BEGIN
    DECLARE @DynamicPivotQuery NVARCHAR(MAX);
    DECLARE @ColumnNames NVARCHAR(MAX);
    DECLARE @Years NVARCHAR(MAX);

    SET @Years = '2025';
    
    DECLARE @Periods TABLE (
        Period NVARCHAR(20)
    );

    INSERT INTO @Periods (Period)
    SELECT DISTINCT
        CONCAT(YEAR(DATEADD(day, TraNag.TrN_Data2, '18001228')), '_Tydz_', FORMAT(DATEPART(WEEK, DATEADD(day, TraNag.TrN_Data2, '18001228')), '00')) AS Period
    FROM 
        CDN.TraElem AS TraElem
    INNER JOIN 
        CDN.TraNag AS TraNag
    ON 
        TraNag.TrN_GIDNumer = TraElem.TrE_GIDNumer
    WHERE 
        TraElem.TrE_GIDTyp = 1616
        AND TraElem.TrE_GIDFirma = 129121
        AND YEAR(DATEADD(day, TraNag.TrN_Data2, '18001228')) IN (2025);

    SET @ColumnNames = STUFF((
        SELECT 
            ',[' + Period + ']'
        FROM 
            @Periods
        ORDER BY 
            Period -- Sortowanie alfabetyczne
        FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '');

    SET @DynamicPivotQuery = '
        SELECT 
            TrE_TwrKod AS [Kod produktu],
            TrE_TwrNazwa AS [Nazwa produktu], 
            ' + @ColumnNames + '
        FROM (
            SELECT 
                TraElem.TrE_TwrKod,
                TraElem.TrE_TwrNazwa,
                CONCAT(YEAR(DATEADD(day, TraNag.TrN_Data2, ''18001228'')), ''_Tydz_'', FORMAT(DATEPART(WEEK, DATEADD(day, TraNag.TrN_Data2, ''18001228'')), ''00'')) AS Period,
                SUM(TraElem.TrE_Ilosc) AS TrE_Ilosc
            FROM 
                CDN.TraElem AS TraElem
            INNER JOIN 
                CDN.TraNag AS TraNag
            ON 
                TraNag.TrN_GIDNumer = TraElem.TrE_GIDNumer
            WHERE 
                TraElem.TrE_GIDTyp = 1616
                AND TraElem.TrE_GIDFirma = 129121
                AND YEAR(DATEADD(day, TraNag.TrN_Data2, ''18001228'')) IN (' + @Years + ')
            GROUP BY 
                TraElem.TrE_TwrKod,
                TraElem.TrE_TwrNazwa,
                YEAR(DATEADD(day, TraNag.TrN_Data2, ''18001228'')),
                DATEPART(WEEK, DATEADD(day, TraNag.TrN_Data2, ''18001228''))
        ) AS SourceTable
        PIVOT (
            SUM(TrE_Ilosc) 
            FOR Period IN (' + @ColumnNames + ')
        ) AS PivotTable
        ORDER BY [Kod produktu], [Nazwa produktu];
    ';

    BEGIN TRY
        EXEC sp_executesql @DynamicPivotQuery;
    END TRY
    BEGIN CATCH
        -- Obsługa błędów
        DECLARE @ErrorMessage NVARCHAR(4000);
        DECLARE @ErrorSeverity INT;
        DECLARE @ErrorState INT;

        SELECT 
            @ErrorMessage = ERROR_MESSAGE(),
            @ErrorSeverity = ERROR_SEVERITY(),
            @ErrorState = ERROR_STATE();

        RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState);
    END CATCH;
END;

Re: Problem z uruchomieniem procedury WYKRES - błąd 1021 (brak biblioteki DLL)

: 29 sty 2025, 17:33
autor: praiser
pytanie, może trywialne. czy procedura ma uprawnienia execute dla CDNRaport skoro wywoływana z wykresu XL ?
albo spróbuj wywołać jako

select 1 as ID

SET NOCOUNT ON
EXEC dbo.raportrw;
SET NOCOUNT OFF

Re: Problem z uruchomieniem procedury WYKRES - błąd 1021 (brak biblioteki DLL)

: 30 sty 2025, 08:24
autor: funmp
Jak nadać uprawnienia?
GRANT EXECUTE ON dbo.moja_procedura TO CDNRaport
?

Re: Problem z uruchomieniem procedury WYKRES - błąd 1021 (brak biblioteki DLL)

: 30 sty 2025, 08:29
autor: praiser
tak.

Re: Problem z uruchomieniem procedury WYKRES - błąd 1021 (brak biblioteki DLL)

: 30 sty 2025, 09:00
autor: funmp
Bez zmian:

Znalezienie biblioteki nie udało się.
Sprawdź, czy wszystkie biblioteki DLL są dostępne.


Ktoś miał podobny problem i okazało się, że to błąd w składni przy deklaracji parametrów.
Ja nie mogę doszukać się błędów składniowych w deklaracji parametrów.

Re: Problem z uruchomieniem procedury WYKRES - błąd 1021 (brak biblioteki DLL)

: 30 sty 2025, 09:27
autor: praiser
sprawdziłem u siebie i ta procedura działa spod wykresu XL. czy ten błąd nie wskazuje z nazwy jakiej biblioteki nie może znaleźć ?

inna sprawa, że pivot w procedurze dzieli rok na kolumny tygodni a wykres XL nie pokaże więcej niż 22 kolumny w tym pierwsza kolumn musi być liczbą porządkową więc 21 (rok ma ponad 50 tygodni) więc to może być sztuka dla sztuki ale warto rozwiązać problem techniczny tak czy inaczej

Re: Problem z uruchomieniem procedury WYKRES - błąd 1021 (brak biblioteki DLL)

: 30 sty 2025, 09:35
autor: funmp
Nie wyświetla.

Może to wina wersji Microsoft SQL Server 2016 lub wersji comarcha 2023.2.2.3201

Re: Problem z uruchomieniem procedury WYKRES - błąd 1021 (brak biblioteki DLL)

: 30 sty 2025, 09:42
autor: praiser
nie wydaje mi się . sprawdź na innym stanowisku albo przeinstaluj ERP na swoim.

Re: Problem z uruchomieniem procedury WYKRES - błąd 1021 (brak biblioteki DLL)

: 06 lut 2025, 17:17
autor: funmp
praiser pisze:
30 sty 2025, 09:42
nie wydaje mi się . sprawdź na innym stanowisku albo przeinstaluj ERP na swoim.
Sprawdzałem na dwóch stanowiskach, spróbuje jeszcze przeinstalować xl-a

Re: Problem z uruchomieniem procedury WYKRES - błąd 1021 (brak biblioteki DLL)

: 13 kwie 2025, 20:08
autor: taszek
A w zmiennych systemowych masz porządek ze ścieżkami?