Для того чтобы организовать торговлю в Интернет-магазине компании потребуется наличие всего одного Менеджера, контролирующего процесс автоматической работы магазина как из офиса компании, так и из любого места в Сети.
Каталог прайсов интернет магазинов - разместите свой прайс бесплатно
  Главная  |    О компании  |    Новости  |    Статьи  |    Форум  |    Клиенты  |    Обратная связь  |    Карта сайта
Добро пожаловать, Гость. Для того, чтобы отвечать на сообщения и создавать новые темы, Вам необходимо зарегистрироваться, если Вы уже зарегистрированы, то войдите используя Ваши E-Mail и Пароль.
Запомнить
Пароль
   
Форум
 Программа iNETsHOP » Работа с программой
        Создание схемы импорта
Создание схемы импорта

05.01.2016 15:17

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Чтение CSV средствами MS SQL
Прочитать CSV-файл средствами Microsoft SQL Server можно несколькими способами, самый простой через BULK INSERT. Например, если вы выполните в SQL Server Management studio следующий SQL-запрос, то он вернет вам набор данных из вашего файла CSV.

Код

IF not OBJECT_ID('tempdb..#TEMP_CSV') is null DROP TABLE #TEMP_CSV;
CREATE TABLE #TEMP_CSV
(
"code" varchar(1024),
"folder_id" varchar(1024),
"name" varchar(1024),
"size" varchar(1024),
"photo" varchar(1024),
"price" varchar(1024),
"url" varchar(1024),
"folder_alias" varchar(1024),
"folder_name" varchar(1024),
"manuftac" varchar(1024),
"attributes" varchar(1024),
"Стоимость" varchar(1024),
"Отображение времени" varchar(1024),
"Стиль" varchar(1024),
"Подсветка" varchar(1024),
"Противоударные" varchar(1024),
"Форма корпуса" varchar(1024),
"Цвет корпуса" varchar(1024),
"Материал браслета" varchar(1024),
"Цвет браслета/ремешка" varchar(1024),
"Цвет циферблата" varchar(1024),
"Цифры" varchar(1024),
"Стразы" varchar(1024),
"Говорящие" varchar(1024),
"Bluetooth" varchar(1024),
"Дополнительные функции" varchar(1024),
"Для дайвинга и туризма" varchar(1024),
"Тип механизма" varchar(1024),
"Ремешок/Браслет" varchar(1024),
"Материал корпуса" varchar(1024),
"Водозащита" varchar(1024),
"Стекло" varchar(1024),
"Ход" varchar(1024),
"Мелодия" varchar(1024),
"Сигнал" varchar(1024),
"Пол" varchar(1024),
"Страна-происхождения" varchar(1024)
);

BULK INSERT #TEMP_CSV
FROM 'C:\TEMP\92f3344e7c96c349cbf571f4564cb487.csv'
WITH
(
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n',
CODEPAGE = 'ACP'
);
SELECT * FROM #TEMP_CSV




Вам останется только перенести данные во временную таблицу #TMP_PRICE которая используется в программе для предварительного просмотра прайса.

В итоге, sql-запрос чтобы импортировать данный прайс-лист поставщика из CSV будет выглядеть так:

Код

DECLARE @FILENAME varchar(255);
SET @FILENAME = :FILENAME;
IF not OBJECT_ID('tempdb..#TEMP_CSV') is null DROP TABLE #TEMP_CSV;
CREATE TABLE #TEMP_CSV
(
"code" varchar(1024),
"folder_id" varchar(1024),
"name" varchar(1024),
"size" varchar(1024),
"photo" varchar(1024),
"price" varchar(1024),
"url" varchar(1024),
"folder_alias" varchar(1024),
"folder_name" varchar(1024),
"manuftac" varchar(1024),
"attributes" varchar(max),
"Стоимость" varchar(1024),
"Отображение времени" varchar(1024),
"Стиль" varchar(1024),
"Подсветка" varchar(1024),
"Противоударные" varchar(1024),
"Форма корпуса" varchar(1024),
"Цвет корпуса" varchar(1024),
"Материал браслета" varchar(1024),
"Цвет браслета/ремешка" varchar(1024),
"Цвет циферблата" varchar(1024),
"Цифры" varchar(1024),
"Стразы" varchar(1024),
"Говорящие" varchar(1024),
"Bluetooth" varchar(1024),
"Дополнительные функции" varchar(1024),
"Для дайвинга и туризма" varchar(1024),
"Тип механизма" varchar(1024),
"Ремешок/Браслет" varchar(1024),
"Материал корпуса" varchar(1024),
"Водозащита" varchar(1024),
"Стекло" varchar(1024),
"Ход" varchar(1024),
"Мелодия" varchar(1024),
"Сигнал" varchar(1024),
"Пол" varchar(1024),
"Страна-происхождения" varchar(1024)
);

EXEC('
BULK INSERT #TEMP_CSV
FROM '''+@FILENAME+'''
WITH
(
FIELDTERMINATOR = '';'',
ROWTERMINATOR = ''\n'',
CODEPAGE = ''ACP''
);
');
--SELECT * FROM #TEMP_CSV
INSERT INTO #TMP_PRICE ([NAME],[BRAND], [SID], [DESC_FULL], [PRICE], [CATEGORY], [URL])
SELECT "name", "manuftac", "code", "attributes", "price", "folder_name", "url"
FROM #TEMP_CSV
WHERE ISNUMERIC("code")=1 AND LTRIM(RTRIM(ISNULL("name", ''))) <> '';


Его нужно вставить в соответствующее поле схемы импорта.


Пользователь оффлайн Распечатать
 

Распечатать  |  Следующая тема  |  Предыдущая тема
Перейти
 

Статистика форума
Тем: 506, Сообщений: 3222, Пользователей: 2255
Приветствуем новичка по имени Gotit
Ближайшие дни рождения
Сегодня именинников нет


iNETsHOP - программа для формирования каталога товаров интернет-магазина и обработки прайсов Copyright 2007-2015 "Программа iNETsHOP - работа с прайс-листами поставщиков для интернет магазинов ®" iNETsHOP - обработка, объединение, анализ прайсов поставщиков и конкурентов