Программа iNETsHOP - обработка, сравнение, анализ прайс листов поставщиков, создание каталога товаров интернет магазина Форум - Программа iNETsHOP - Техподдержка - Экспорт


http://inetshop.in.ua/index.php?p=showtopic&toid=38&fid=18&area=1&print_post=797
14.11.2013 22:52

prodact


Пользователь iNETsHOP


Количество сообщений   115
Зарегистрирован:   15-06-2010, 14:24:19
Содержимое функции такое:
Код
CREATE FUNCTION [dbo].[f_ShopScriptExport3] (
@p_iGRID int = null
)
RETURNS @tRetTable table (
RecID int,
SORT int, --Порядок сортировки
G_ID int, --Внутренний код (артикул)
G_NAME varchar(250), --Наименование
G_DESC varchar(8000), --Описание
G_SHORT_DESC varchar(8000), --Краткое описание
G_PRICE money, --Цена
G_OLD_PRICE money, --Старая цена
G_META1 varchar(8000), --Тэг META keywords
G_META2 varchar(8000), --Тэг META description
G_PHOTO1 varchar(200), --Фотография
G_PHOTO2 varchar(200), --Фотография
G_PHOTO3 varchar(200), --Фотография
G_COLOUR varchar(200), --Цвет
G_ADD_DESC varchar(8000), --Дополнительная информация (2)
G_VENDOR varchar(8000), --Производитель
GR_ID int
)
AS
BEGIN
DECLARE @l_iRecID int, @l_iGRID int, @l_sGRNAME varchar(200), @l_iSort int;
SET @l_iSort = 1;
SET @l_iRecID = 1;
DECLARE cExportGroups CURSOR LOCAL FORWARD_ONLY LOCAL FOR
SELECT gr.GR_ID, gr.GR_NAME from TBL_GROUPS gr
WHERE gr.GR_PARENT_ID is null
AND
(
@p_iGRID is null
OR
(
not @p_iGRID is null
and gr.GR_ID = @p_iGRID
)
)
AND GR_ID<>209
FOR READ ONLY;

OPEN cExportGroups;
FETCH NEXT FROM cExportGroups INTO @l_iGRID, @l_sGRNAME;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
-- INSERT INTO @tRetTable (RecID, SORT, GR_ID, G_NAME)
-- VALUES (@l_iRecID, @l_iSort, @l_iGRID, @l_sGRNAME);

-- IF (SELECT COUNT (*) FROM TBL_GROUPS gr WHERE gr.GR_PARENT_ID = @l_iGRID) >0
-- BEGIN

INSERT INTO @tRetTable
SELECT *
FROM dbo.f_ShopScriptExportGoods3(@l_iRecID, @l_iGRID, 1);
SELECT @l_iRecID = MAX(RecID) FROM @tRetTable;

-- END

SET @l_iSort = @l_iSort + 1;
SET @l_iRecID = @l_iRecID + 1;

FETCH NEXT FROM cExportGroups INTO @l_iGRID, @l_sGRNAME;
END

CLOSE cExportGroups;
DEALLOCATE cExportGroups;

RETURN;
END