Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
25 / 24 / 7
Регистрация: 22.08.2017
Сообщений: 130

Импорт таблицы из csv в БД Access

16.04.2018, 13:22. Показов 2808. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет
Нужне собсна сабж

Структура csv заранее неизвестна, надо импортнуть csv в виде таблицы в Access, и там её уже разбирать

Нашёл вот такой код для DBF-а

Pascal
1
2
3
4
5
6
Query.SQL.Clear;
 Query.SQL.Add('select * into 1_DATA from (select name,tname,fname,' +
 'age,street,home,flat,doc_seria,doc_numb,doc_date,doc_from' +
 ' from [' + FileName + '] in "' +
 FilePath + '" [dBase IV;])');
 Query.ExecSQL;
Не могу понять, что мне лепить вот на это место '" [dBase IV;])');
Как я понимаю - это какая-то строка коннекта ODBC/BDE? Что тут должно быть, чтобы импортнуть csv ( и не только csv)...
Могут быть исходные для импорта как в просто txt, так и xls и mdb... Просто хочу понять принцип, по которому это делается...

Раньше так извращаться не приходилось, не сталкивался с таким - а вот пришлось...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.04.2018, 13:22
Ответы с готовыми решениями:

Импорт из таблицы БД Access в xml
Здравствуйте! Подскажите пожалуйста в каком порядке и с помощью каких компонентов можно Экспортировать данные из определённой таблицы...

Импорт в StringGrid таблицы из Access
Помогите пожалуйста, как добавить в StringGrid таблицу из Access? А потом еще нужно организовать поиск по ключевому полю а этой таблице ...

Импорт нескольких csv-файлов в Access
Всем привет! помогите, пж, экспортировать несколько файлов формата csv в таблицу access или запрос. Есть несколько файлов. У каждого...

9
5962 / 4538 / 1094
Регистрация: 29.08.2013
Сообщений: 28,148
Записей в блоге: 3
16.04.2018, 13:25
Цитата Сообщение от AsTerra Посмотреть сообщение
Структура csv заранее неизвестна
о каком импорте тогда идет речь?

если операция разовая - откройте к экселе и скопируйте в аксесс
0
25 / 24 / 7
Регистрация: 22.08.2017
Сообщений: 130
16.04.2018, 13:35  [ТС]
Задача такая:
периодически приходят прайсы от поставщиков, в разных форматах - csv, txt, xls, mdb
Прайсы огромные, на всю номенклатуру - бывает и по 1,5 и по 2 млн. строк.
Надо выдернуть этот прайс в таблицу Access (mdb-шник используется как промежуточная база, для черновых операций парсинга/анализа/сборки, чтобы не нагружать этим основной сервак), там разобрать (по определённым правилам), сформировать таблицу определённой структуры и скормить инструменту ERP-шки, которая уже знает, как и что с этой таблицей делать
Изначально я так и сделал - юзер должен был средствами акцеса вручную сделать импорт таблицы - а потом я уже с ней работал из своей проги. НО - зажелали, чтобы было попроще, чтобы тупо выбрал фай, кликнул на нём мышом - и "ОНО всё само сделало"...
Вот, сижу, парюсь теперь...

Добавлено через 2 минуты
Открыть-то тот же самый csv-шник в ADO я могу, но лить 1,5 млн. записей через ado insert-post - это изврат... Оно инсертиться будет сутки...
0
5962 / 4538 / 1094
Регистрация: 29.08.2013
Сообщений: 28,148
Записей в блоге: 3
16.04.2018, 13:37
1. не зная формата файла парсинг этих файлов займет вечность
2. аксесс как временная таблица не подходит совсем
0
25 / 24 / 7
Регистрация: 22.08.2017
Сообщений: 130
16.04.2018, 13:43  [ТС]
Да собственно парсить я его и не буду - предполагается, что юзер задаст в предварительных настройках соответствия полей исходной и результирующей таблиц, а потом просто сформирую стринговую переменную. в которорую напишу 'insert into T1 select бла-бла-бла from T2' - и ExecSQL ему.
Самый затык сейчас - это именно программно импортнуть таблу в акцес... Как сделать всё остальное - я знаю

Про то, что акцес не очень хороший вариант - знаю, но пока другого пути нет... Проще всего было бы на сиквельном серваке лупануть bulk insert во временную таблу, и там уже ковыряться - но политика безопасности такая, что булк-инсерт юзверям делать низзя... и из-под юзверя низзя... и вообще почти ничего низзя...
0
5962 / 4538 / 1094
Регистрация: 29.08.2013
Сообщений: 28,148
Записей в блоге: 3
16.04.2018, 13:50
Цитата Сообщение от AsTerra Посмотреть сообщение
Самый затык сейчас - это именно программно импортнуть таблу в акцес..
с помощью StreamReader построчно считать строку и сделать INSERT в базу
0
25 / 24 / 7
Регистрация: 22.08.2017
Сообщений: 130
16.04.2018, 13:54  [ТС]
А можно подробней с этого места? Или какой-нибудь примерчик?
0
5962 / 4538 / 1094
Регистрация: 29.08.2013
Сообщений: 28,148
Записей в блоге: 3
16.04.2018, 14:08
все есть
если в поиск залезть)
Чтение текстовых данных из файла с позиционированием

создаешь переменную типа StreamReader
грузить файл
проходишь циклом
считываешь строку
с ней и работаешь - разбираешь на части, создаешь запрос, выполняешь (или можно создать запрос из 100 строк и разово выполнить)
0
25 / 24 / 7
Регистрация: 22.08.2017
Сообщений: 130
16.04.2018, 14:22  [ТС]
Попробую, конечно... Но ХЗ, что из этого получтися
ИМХО это изврат - парстить стрим, формировать кучу инсертов в ран-тайме - вместо того, чтобы просто влупить все строки инсерт-селектом...
0
5962 / 4538 / 1094
Регистрация: 29.08.2013
Сообщений: 28,148
Записей в блоге: 3
16.04.2018, 14:26
твоя csv большая, могут быть ошибки
а так и проверить можно количество полей и скорость около 10к строк\с
500 мб файл заливается за 7 минут
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.04.2018, 14:26
Помогаю со студенческими работами здесь

Импорт данных из csv файла в таблицы БД
Здравствуйте. Помогите пожалуйста реализовать следующее. У меня есть база данных в ней находится 3 таблицы (схему бд прикрепил). У меня...

Импорт таблицы VFP в Access
Доброго времени суток! Подскажите, плз, как можно корректно импортировать таблицу Visual FoxPro? Пробовала через DatabaseTransfer, но там...

Импорт таблицы Word в Access
Здравствуйте. Нужна помощь. Нужно создать кнопку, по нажатию на которую создавалась бы таблица access с данными из таблицы word. ...

Импорт таблицы excel в access
Всем привет. Очень нужна Ваша помощь! Есть таблица excel её нужно перенести в access через vba, т.е. нажал кнопку таблица уже в access...

Импорт таблицы Access в MySQL
Здравствуйте, интересует как малой кровью перенести большую таблицу БД Access на сервер MySQL? Пытался выгрузить в .csv и импортировать в...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru