Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 60

CSV => ASP => SQL

05.01.2010, 00:01. Показов 1863. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru