Главная » 2015 » Декабрь » 21 » Отладка проектов АКП
14:25
Отладка проектов АКП

Во время запуска процедуры подготовки данных иногда выходят ошибки, по текстам которых не просто понять в чем дело.

Для того чтобы разобраться, бывает полезно заглянуть в таблици #tmp_var_list или #tmp_var_list. Обычно проблема заключается в той строке, которая отличается от других - по ней легко выйти на имя переменной или измерения.

Если не получилось разобраться, тогда можно запустить текст процедуры bap_sp_CreateSvodTbl, подав ей на вход айдишник проекта @id_prj и смотреть выполнение кода построчно.

Чтобы отладка проходила быстрее, желательно максимально ограничить набор данных.

Ниже код для заполнения и просмотра временных таблиц:

if object_id(N'tempdb..#tmp_var_list') IS NOT NULL DROP TABLE [#tmp_var_list]

CREATE TABLE [#tmp_var_list] (

NameVar Varchar(100) COLLATE Cyrillic_General_CI_AS NULL,

NameLFld Varchar(100) COLLATE Cyrillic_General_CI_AS NULL,

NameFTbl Varchar(100) COLLATE Cyrillic_General_CI_AS NULL,

IdFTbl int NULL,

NameFFld Varchar(100) COLLATE Cyrillic_General_CI_AS NULL,

VarValue Varchar(500) COLLATE Cyrillic_General_CI_AS NULL

);

exec bap_sp_GetVarFld 4

-- Поля из измерений

if object_id(N'tempdb..#tmp_dim_list') IS NOT NULL DROP TABLE [#tmp_dim_list]

CREATE TABLE [#tmp_dim_list] (

ID_Dim int NULL,

Lev_num int NULL,

NameLFld Varchar(100) COLLATE Cyrillic_General_CI_AS NULL,

NameFTbl Varchar(100) COLLATE Cyrillic_General_CI_AS NULL,

IdFTbl int NULL,

NameFFld Varchar(1100) COLLATE Cyrillic_General_CI_AS NULL,

LevDType tinyint

)

declare @id_prj int = 4

declare @_ID_DIM int

declare @_DIM_Type int

declare @_SVOD_TBL_NAME varchar(1000)

DECLARE _DimLst CURSOR FOR

SELECT ID_DIMAN, DIM_TYPE

FROM bap_tb_dimans

WHERE [id_prj] = @id_prj AND

Dim_Used = 1

ORDER BY DIM_SORT

OPEN _DimLst

FETCH _DimLst INTO @_ID_DIM, @_DIM_Type

WHILE @@FETCH_STATUS = 0

BEGIN

EXEC bap_sp_GetLevs @id_prj, @_ID_DIM, @_DIM_Type, @_SVOD_TBL_NAME

FETCH _DimLst INTO @_ID_DIM, @_DIM_Type

END

CLOSE _DimLst

DEALLOCATE _DimLst

 

select * from #tmp_var_list

select * from #tmp_dim_list

Просмотров: 284 | Добавил: rebel25 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar