Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - Перемещение внутри дерева

Ответить
Настройки темы
MSFT SQL Server - Перемещение внутри дерева

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Delirium
Дата: 15-11-2013
Описание: Учимся оформлять тегами
Здравствуйте!я начинающий программист, поэтому может логика быть сформулирована не так как нужно.
Мне необходимо написать хранимку, выполняющая перемещение узлов внутри дерева. всего у меня 7 уровней. Получаю id, P0,P1,...,P7.Как можно это реализовать?
Нужно ли мне использовать курсор или можно обойтись без него?
Вот попытки для одного уровня, но они не увенчались успехом, так как перемещать в узел могу узел только такого же типа и после обновления все возвращается на свое место:
Код: Выделить весь код
USE [ProjectA2]
GO
/****** Object:  StoredProcedure [a74].[account_tree_move]    Script Date: 11/11/2013 12:54:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [a74].[account_tree_move]
@et int,
@pk int,
@id int,
@p0 int = 0,
@p1 int = 0,
@p2 int = 0,
@p3 int = 0,
@p4 int = 0,
@p5 int = 0,
@p6 int = 0,
@p7 int = 0,
@shtcut bit = 0

as
set nocount on
begin tran

declare @tbl nvarchar(32)
declare @sql nvarchar(1024)
declare @prm nvarchar(255)

exec apx_et_treename @et, @tbl OUT
if @tbl is null
  begin
    rollback tran
    raiserror (N'Недопустимое значение аргумента',16,-1)
    return 0
  end

if @pk = 0
  begin
    select @sql = N'insert into ' + @tbl + N'(ID,P0,P1,P2,P3,P4,P5,P6,P7,SHORTCUT) ' +
		  N'VALUES (@id,@p0,@p1,@p2,@p3,@p4,@p5,@p6,@p7,@shtcut)'
    select @prm = N'@id int, @p0 int, @p1 int, @p2 int, @p3 int, @p4 int, @p5 int, @p6 int, @p7 int, @shtcut bit'
    execute sp_executesql @sql, @prm, @id, @p0,@p1,@p2,@p3,@p4,@p5,@p6,@p7,@shtcut
  end
else
  begin
    select @sql = N'update ' + @tbl + N' set P0=@p0,P1=@p1,P2=@p2,P3=@p3,' +
                  N'P4=@p4,P5=@p5,P6=@p6,P7=@p7,SHORTCUT=@shtcut ' +
		  N'where PK=@pk '
    select @prm = N'@pk int, @p0 int, @p1 int, @p2 int, @p3 int, @p4 int, @p5 int, @p6 int, @p7 int, @shtcut bit'
    execute sp_executesql @sql, @prm, @pk, @p0,@p1,@p2,@p3,@p4,@p5,@p6,@p7,@shtcut
  end
commit tran
Спасибо заранее за внимание.

Отправлено: 17:52, 11-11-2013

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - Перемещение внутри дерева

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Построение дерева каталогов kaster AutoIt 15 30-05-2021 21:04
Прочие - Программы для создания дерева каталогов. Pooshit Программное обеспечение Windows 45 19-07-2020 20:20
Разное - Сумма вершин дерева на Prolog'е wolf-950 Программирование и базы данных 2 12-02-2013 15:18
BSOD - Замучил синий екран смерти (см внутри) BCCode: a Код языка: 1049 + внутри доп вопрос Alexeydt Тест-форум 2 14-04-2012 16:44
CMD/BAT - [решено] Копирование дерева каталогов Ksenya Скриптовые языки администрирования Windows 7 27-03-2011 23:20




 
Переход