0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 60

CSV => ASP => SQL

05.01.2010, 00:01. Показов 1905. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задали мне задачку, думаю как решить...

Есть каталог товаров. Из этого каталога создается csv файл и отправляется производителю. Производитель вносит необходимые изменения и присылает (uploadид) файл обратно!
Потом надо пройтись по всему файлу, сравнить его с базой, указать сколько записей стерто, сколько изменено и т.д. А потом, если нажата ОК, то изменять/удалять записи...

Итак вопрос: как это сделать?!
Можно ли использовать Store Procedure для сравнения данных?
Как превратить строку в запись в рекордсете?
И вообще, как можно обрабатывать данные, пришедшие с CSV файла в виде рекордсета...

Может какие-то идеи, которых я не знаю?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.01.2010, 00:01
Ответы с готовыми решениями:

Приложение на ASP+ MS SQL Servel 2000 и хостинг с подержкой ASP+ MS sql server 7.0
А хостинг с подержкой ASP+ MS sql server 7.0 > Так вот есть гарантия того, что будет работать мое приложение, когда я его выложу на...

ASP+SQL Server 2000 - файлы с расширением .asp вообще не запускается
Здравствуйте!!! Помогите пожалуйста новичку. Я тут почитал разные ссылки по ASP. Но я не нашел ответа на свою проблему. У меня...

СПб прораммист ASP, ASP.net, C#, VB, MS SQL $ 1000
На постоянную работу в Петербурге приглашается программист ASP, ASP.NET, VB,C#,SQL (язык запросов), MS SQL Server 2000,желательно...

14
Ghost
05.01.2010, 00:05
на затравку - перекинуть из CSV данные во временную таблицу. После этого можно хоть SP_ юзать хоть RecordSet открывать.
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 60
05.01.2010, 00:09  [ТС]
ОК
как их перекинуть во временную таблицу?
если у меня, скажем, каталог из 10000 записей?
ну хорошо.... 3000 для начала....
0
Ghost
05.01.2010, 00:11
Я тута - давай решать на ходу.
100 000 записей? По твоему это много? 6000 записей я импортирую в SQL менее чем за 1 минуту.
Ghost
05.01.2010, 00:14
Как перекинуть во временную таблицу - хоть 1, хоть 100, хоть 1000 000 - все просто.
1. Создаем временную таблицу с стребуемой структурой
2. Открываем на ней RecordSet, открываем файл
3. Проходим по файлу, считывая строки и парся из. Результаты парсинга заносим в соответствующие поля Recordset (AddNew/Update). Переходим на следующую строку.
4. Закрываем файл.
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 60
05.01.2010, 00:16  [ТС]
Ну вообще у меня тут разные произодители с разным кол-вом записей!
есть от 500 до 8000

мне нужно не только экспортировать!
Мне сначала сравнить надо, а уже потом переносить!

Итак на сейчас главные для меня вопросы:
как быстро превратить CSV в таблицу
как сравнить таблицу с данными SQL

Спасибо!
0
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 60
05.01.2010, 00:18  [ТС]
т.е. без пробегания по файлу не обойдешься?!

еще вопрос: могу я сделать таблицу в SQL со всеми возможными полями и при работе скрипта заносить туда все? Т.е. использовать ее как временную? Ну чтобы не создавать/удалять таблицу?
ускорит это работу?
0
Ghost
05.01.2010, 00:21
На 1-ый вопрос ответ дан выше - код писать не буду - с жабой Вы знакомы - так что написать сможете )))
На второй вопрос - можно поставить свои идентиикаторы для записей, а потом сравнивать с ними. Если каждый раз высылается полная копия таблицы - то не вижу никаких проблем, если частичная - придется вести историю рассылаемых данных.
Все записи без Ваших идентификаторов считаются новыми.

Можно придумать и более простой (но менее надежный) вариант - например - если есть имя - то производить сравнения по именам. Вы с SQL знакомы? )
Ghost
05.01.2010, 00:24
т.е. без пробегания по файлу не обойдешься?!
-- 'Я за вас свою работу делать не буду' - ну должен же кто-нибудь прочесть эти данные? )

еще вопрос: могу я сделать таблицу в SQL со всеми возможными полями и при работе скрипта заносить туда все?
-- а я о чем?
Т.е. использовать ее как временную?
-- Да ради бога - только DROP её потом или DELETE FROM [TABLENAME]
Ну чтобы не создавать/удалять таблицу? ускорит это работу?
-- Вряд ли. Это копейки. А делать её #TABLE, ##TABLE или просто TABLE - это уже по сути вопрос стиля. Я бы сделал локальную временную - не помню уже - сколько там решеток вначале надо.
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 60
05.01.2010, 00:25  [ТС]
Нет, меня простые но ненадежные варианты в данном случае не интересуют

Да вся беда в том и заключается, что csv создается все время с разным кол-вом полей. Т.е. производитель сам решает, какие поля он хочет в нем видеть!... Потом их обновляет и присылает обратно!
Так что частичная копия таблицы...
Что значит 'история рассылаемых данных'?
0
Ghost
05.01.2010, 00:28
Это значит, что придется запоминать, что когда кому отсылал, если рассылка по разным производителям - частичная.

По поводу решает - какие поля хочет видеть - а что - договориться с ним никак? Устаканить протокол обмена данными? )
Ghost
05.01.2010, 00:34
Все - будь - остальные вопросы утром.
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 60
05.01.2010, 00:34  [ТС]
Не договориться никак!
Их много... слишком много!
а я один

Отсылается им полный их каталог!
т.е. товаров полный список. Вот полей может быть каждый раз разное кол-во...
Так что я не знаю, как эти запоминания делать....
Очень уж не хочется каждуй запись, а в ней каждое поле сравнивать с базой
0
Ghost
05.01.2010, 08:58
>>Отсылается им полный их каталог! т.е. товаров полный список. Вот полей может быть каждый раз разное кол-во...
Так что я не знаю, как эти запоминания делать....
Очень уж не хочется каждуй запись, а в ней каждое поле сравнивать с базой

Если они не трогают структуру, то поставь свое поле кода перед товарами.
Вообще нельзя решить задачу без граничных условий - исходи из этого.
0 / 0 / 1
Регистрация: 30.07.2007
Сообщений: 257
12.01.2010, 20:26
Делал давно правда такую чачу вместо ЦСВ Excell был
Шаги такие
1.(ASP) Файл аплоадим
2.(ASP) Переносим его в отдельную директорию под определенным именем
3.(ASP) Запускаем DTS package который импортировал экселлист в отдельную таблицу. (Пакадж предварительно настроен на структуру Ехселл документа)
4. (TSQL) Сравнивал таблицы @Боевую@ и @Временную@ (все на TSQL) вносил необходимые изменения
5. (TSQL)Временную таблицу чистил
6. (ASP) Смотрел не зааплоадил ли кто еще чего за время работы скрипта
7. (ASP) если да го пункт 2
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.01.2010, 20:26
Помогаю со студенческими работами здесь

Возможно ль переколбасить код ASP (ACCESS) в ASP (MS SQL)?
Проблема втом, что возникла необходимость перехода из БД ACCESS в MS SQL. Несколько прог. Для меня беда.. но никуда не деться. Есть ли...

CSV в SQL
Требуется перекинуть содрежимое CSV файлов (25-ть) в MySQL. Вроде это можно сделать используя phpmyadmin. А есть ли ещё какой-нибудь...

CSV в SQL
Есть вопрос. Как можно конвертировать csv файлы в формат понятный psql. 25-ть файлов. Вроде можно используя pgloader. Но разобраться с...

Преобразование CSV в MS SQL Server
Думаю задачка понятна из названия. Ну, а план: -открываем CSV в приложении -Динамически создаём EF модель -монтируем её в...

Преобразовать SQL в XML или CSV
Помогите, пожалуйста, как это сделать?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru