...

Простой вопрос

Тема в разделе "Вопросы по функционалу", создана пользователем dsabitov, 1 сен 2017.

  1. dsabitov

    dsabitov New Member

    Всем добра!

    Создал хранимую процедуру в базе ELMA3.
    После перезапуска компьютера, на котором лежит sql-ная база ELMA хранимка пропала.
    Кто сталкивался - напишите - или это просто у меня какой-то мега редкий глюк произошел...?
     
  2. akarimov

    akarimov Member

    Тоже сталкивался с подобным, думал ХП удаляются при обновлении версии, возможно пересоздаются при старте сервера. Создайте ХП в служебной базе/создайте отдельную базу под ХП
     
  3. Top_IN

    Top_IN New Member

    Добрый день, для создания своих собственных процедур/функций/триггеров необходимо создать свой собственный серверный модуль.
    В нем создать папку Components и там минимум два файла <Одинаковое имя>.cs <Одинаковое имя>.xml

    <Одинаковое имя>.cs
    using EleWise.ELMA.ComponentModel;
    using EleWise.ELMA.Runtime.Db;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace NFC.ELMA.Sync.Components
    {
    [Component]
    internal class <Одинаковое имя> : DbStructureExtension
    {
    public override Guid ProviderUid
    {
    get { return Guid.Empty; }
    }
    }
    }

    и примерное содержимое <Одинаковое имя>.xml (тут вы должны описать все свои процедуры и т.д.)
    <?xml version="1.0" encoding="utf-8" ?>
    <root uid="{746A5BB1-D5A8-401C-9011-07985C9D48CF}" provider="SqlServer">
    <procedures>
    <!-- -->
    <!-- Вспомогательные функции для синхронизации -->
    <!-- -->
    <procedure name="fn_GetUserIdByUID">
    <text>
    -- Функция предоставляет данные о сотруднике компании ([User]) посредством @Uid
    create function [dbo].[fn_GetUserIdByUID](@Uid uniqueidentifier)
    returns bigint
    as
    begin
    return
    (select top 1 A.Id
    from [dbo].[User] A (nolock)
    where A.Uid = @Uid)
    end
    </text>
    </procedure>
    </procedures>
    <scripts>
    <!-- Создание роли Integration -->
    <script name="CREATE_ROLE_Integration" ExecuteTime="OnProceduresCreated" AlwaysExecute="true">
    <text>
    if not exists (select * from ELMA3.sys.database_principals where name = 'Integration')
    CREATE ROLE [Integration]
    </text>
    </script>
    </scripts>
    </root>
     

Поделиться: