|
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 60
|
|
CSV => ASP => SQL05.01.2010, 00:01. Показов 1863. Ответов 14
Метки нет (Все метки)
Задали мне задачку, думаю как решить...
Есть каталог товаров. Из этого каталога создается csv файл и отправляется производителю. Производитель вносит необходимые изменения и присылает (uploadид) файл обратно! Потом надо пройтись по всему файлу, сравнить его с базой, указать сколько записей стерто, сколько изменено и т.д. А потом, если нажата ОК, то изменять/удалять записи... Итак вопрос: как это сделать?! Можно ли использовать Store Procedure для сравнения данных? Как превратить строку в запись в рекордсете? И вообще, как можно обрабатывать данные, пришедшие с CSV файла в виде рекордсета... Может какие-то идеи, которых я не знаю?
0
|
|
| 05.01.2010, 00:01 | |
|
Ответы с готовыми решениями:
14
Приложение на ASP+ MS SQL Servel 2000 и хостинг с подержкой ASP+ MS sql server 7.0 ASP+SQL Server 2000 - файлы с расширением .asp вообще не запускается СПб прораммист ASP, ASP.net, C#, VB, MS SQL $ 1000 |
|
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
|
|
| 12.01.2010, 20:26 | |
|
Помогаю со студенческими работами здесь
15
Возможно ль переколбасить код ASP (ACCESS) в ASP (MS SQL)? CSV в SQL CSV в SQL Преобразование CSV в MS SQL Server Преобразовать SQL в XML или CSV Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Инструменты 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, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|