Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
1

Как подключить .csv через ADO

09.03.2013, 23:50. Показов 5137. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста, как подключить .csv через ADO ?
я подключил .xls через ADO, а теперь мне надо подключить .csv, чтобы начать обмен данными между ними, но csv ни один драйвер не понимает (((
Microsoft Text Driver вообще в списке нет(( подскажите что делать
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2013, 23:50
Ответы с готовыми решениями:

Как подключить БД без ADO?
привет всем. нужно подключить базу данных Acces без ADO, то есть с помощю TDataBase. пробовал,...

Как подключить ADO ?
Что бы использовать объекты ADO, какую библиотеку надо подключить ?

ATL Project. Как подключить использование MFC и ADO?
Добрый день! Переписываю dll, которую до меня писал другой программист. В Readme проекта в самом...

Обратиться к файлу в папке через CSV модуль и Параметры CSV
Доброго времени суток, я чувствую что решение проблемы простое, но никак не могу найти решение в...

10
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
10.03.2013, 00:09 2
Тебе надо чтобы базу сливать в формат CSV?
0
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
10.03.2013, 01:02  [ТС] 3
Цитата Сообщение от Sasha Посмотреть сообщение
Тебе надо чтобы базу сливать в формат CSV?
Мне надо сверять базы .xls с .csv и попутно вносить изменения в csv (в сsv уже есть часть данных)...
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
10.03.2013, 01:58 4
Цитата Сообщение от ExeiLj Посмотреть сообщение
Microsoft Text Driver вообще в списке нет((
Ну так добавь в список там есть кнопка добавить
0
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
10.03.2013, 12:03  [ТС] 5
Цитата Сообщение от Sasha Посмотреть сообщение
Ну так добавь в список там есть кнопка добавить
Где такая кнопка? я не нашел...
Нажимаю дважды на ADOCOnnection, потом Build - в поставщиках нет кнопки добавить...

Добавлено через 3 минуты
Попутно расширю вопрос: или может .csv просто прочитать текстом и заполнить в массив и работать с массивом?
Просто объемы данных не малые, а массив хранится в памяти, таким образом будет требоваться много памяти.... есть ли в этом смысл?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
10.03.2013, 12:56 6
ExeiLj, кладешь на форму ADOQuery, в его ConnectionString пишешь:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source="D:\testCSV\";Extended Properties="text;HDR=NO;FMT=Delimited", путь к папке, в которой лежит *.csv-файл замени на свой, а в AdoQuery.SQL: SELECT * FROM test.csv, имя также поменяй.

Активизируешь Query и работаешь с данными.
1
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
10.03.2013, 13:14 7
Можно создать ODBC-алиас. Только на 64 нужно запускать 32-разрядный администратор ODBC из C:\Windows\SysWOW64\odbcad32.exe
0
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
10.03.2013, 13:47  [ТС] 8
Спасибо, сделал так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Connect PART 2
DataModule2->ADOConnection2->Connected = false;
DataModule2->ADOConnection2->ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
    ExePath + Edit2->Text + ";Extended Properties='Text;HDR=No;FMT=Delimited'";
 
try {
    DataModule2->ADOConnection2->Open();
}
catch (...) {
    ShowMessage("Unable to connect to csv");
}
 
//Fetch PART 2
DataModule2->ADOQuery2->Close();
DataModule2->ADOQuery2->SQL->Text = "SELECT * FROM [book.csv]";
try {
    DataModule2->ADOQuery2->Open();
}
catch (...) {
    ShowMessage("Unable to read data from csv");
}
Только он за разделитель принимает запятые, а у меня точка с запятой и из-за этого в одну строку все заносит... Как разделитель задать?
при FMT=Delimited(; ) пишет, что строка подключение неправильная...
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
10.03.2013, 14:33 9
ExeiLj, CSV (Comma-Separated Values), как бы намекает...
0
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
10.03.2013, 14:50 10
Положить рядом с файлом csv файл schema.ini следующего содержания:

[имя файла csv]
Format=Delimited(,)
DecimalSymbol=.
1
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
10.03.2013, 17:17  [ТС] 11
Цитата Сообщение от UI Посмотреть сообщение
ExeiLj, CSV (Comma-Separated Values), как бы намекает...
Вообще это зависит от записи в реестре:
C++
1
2
3
4
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4.0 \ Engines \ Text 
 "Format" = "TabDelimited"
или
 "Format" = "Delimited(;)"
Но в реестр лезть не стоит.

Работает только если ложить schema.ini, но даже если и смириться с этим, то эта штука (Microsoft.Jet.OLEDB.4.0 и ACE.12.0), как оказалось, не позволяет редактировать csv файл, а лишь считывает его...

Добавлено через 1 час 52 минуты
Короче решил открыть csv как текстовый файл и запилить его в vector.
Единственное, что при добавлении строк будет каждый раз массив переформировываться, что как бы... (лишние итерации?)

Насколько безвредна идея и влияет ли на скорость?
Будет ли быстрее и надежнее через драйвера ADO?
0
10.03.2013, 17:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2013, 17:17
Помогаю со студенческими работами здесь

Кто-нибудь работал с ADO, а именно открытие *.csv, работа с cvs и txt файлами
connectionString ="Provider=Microsoft.Jet.OLEDB.4.0;Extended...

как подключиться к БД InterBase через ADO?
Подскажите как подключиться к БД InterBase через ADO. В частности какую ConnectionString (или...

Как запихнуть ~3K+ данные в БД через ADO?
Пытался subj сделать таким образом: 'переменная q содержит 3K данных в формате...

Как выгрузить характиристики через CSV или XML?
Добрый день! Как выгрузить характеристики через CSV или XML? Пример...

Help! Как изменить структуру файла через ADO?
Как изменить структуру файла через ADO? Файлик - dBase III. Конкретнее мне нужно сократить...

Помогите как создать базу через ADO
Помогите как создать базу через ADO, внести в нее записи, и произвести поиск в ней


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru