![]() |
Модераторы: Akella, bartram |
![]() ![]() ![]() |
|
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 35 Всего: 329 |
Из-за этой темы:
http://forum.vingrad.ru/index.php?showtopi...t&p=1965971 Требуется программа для работы с разными форматами dbf: dbf III, dbf IV, dbf VI, foxpro. Нужно перекинуть разноформатные dbf в какой-то единый формат или лучше вообще в базу MS SQL. |
|||
|
||||
jhonyxakep |
|
|||
![]() Divide Et Impera ![]() ![]() Профиль Группа: Участник Сообщений: 983 Регистрация: 7.4.2009 Где: Что, Когда? Репутация: нет Всего: 8 |
||||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Сначала открываешь тупо как бин-файл и опредляешь по заголовку, фокс или д-бэйз. Исхоля из результата выбираешь соотв. драйвер подключения - foxpro или dbase-5.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
jhonyxakep |
|
|||
![]() Divide Et Impera ![]() ![]() Профиль Группа: Участник Сообщений: 983 Регистрация: 7.4.2009 Где: Что, Когда? Репутация: нет Всего: 8 |
||||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
И какой готовый инструмент умеет "на лету" определять, DBase или FoxPro DBF ему подсунули? И, главное, перестраиваться на работу с соотв. форматом? ЕМНИП штатные ODBC такого не умеют, а один другого не разумеет. Это сообщение отредактировал(а) Akina - 17.9.2009, 14:10 -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 35 Всего: 329 |
||||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 4 Всего: 130 |
Вот этого я и не пойму никак: что значит "разноформатные"? ![]() Ну, к примеру, открою я XLS-лист, в нём 50 полей. Я делаю ширину всех полей равной 250. Сохраняю как DBF. Пытаюсь открыть через FoxPro - таблица не откроется с ошибкой "not a table". И? ![]() Это сообщение отредактировал(а) Данкинг - 17.9.2009, 14:43 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
jhonyxakep |
|
|||
![]() Divide Et Impera ![]() ![]() Профиль Группа: Участник Сообщений: 983 Регистрация: 7.4.2009 Где: Что, Когда? Репутация: нет Всего: 8 |
Существует множество форматов dbf Да вон тот же Visual fox pro 9 ВЫ fox ом хоть раз пользовались? |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Фоксом - нет. Я из VB6 через Фокспрошный ODBC-драйвер цеплял в программу Фоксовые же базы. Несколько раз приходилось брать данные из DBF то же структуры, созданного Клипперовской программой. Так вот - если я правильно помню номера версий, те DBF, что были созданы в Клипере 5.01, открывались как родные, а на те, что созданы в 5.2, драйвер ругался, что не может распознать формата. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 35 Всего: 329 |
Ты читал-то хоть моё первое сообщение? Добавлено @ 13:21 Я понял, что ты или потроллить сюда пришёл или ничего не понял, что нужно человеку. А по сему прошу не писАть сюда больше глупых вопросов. Если не понял, то читай внимательно все ТРИ ТЕМЫ. Ссылки есть. В противном случае прошу не мешать. Это сообщение отредактировал(а) Akella - 18.9.2009, 13:23 |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Кстати, а это что за зверик? Dbase Level 7? что ли? Добавлено через 1 минуту и 5 секунд Кстати, Level 7 ни один ODBC-драйвер вообще не кушает, походу... см. http://forum.vingrad.ru/forum/topic-273250/unread-1.html -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 4 Всего: 130 |
Я понял, что ты или не знаешь значения понятия "троллинг", или ничего не понял из того, что я написал. Посему мешать не буду. ![]() Добавлено @ 14:41 Да, по этому поводу: Есть такая программа, называется "Microsoft Excel". ![]() Добавлено @ 14:43 Скиньте мне табличку, которую не открывает VFP. ![]() Это сообщение отредактировал(а) Данкинг - 18.9.2009, 14:43 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
В теме, что я дал чуть выше, в аттаче с проектом есть такой файл. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 4 Всего: 130 |
А, ну да. Так его ни Excel, ни FoxPro не открывают. Это этот формат dbf VI и есть? ![]() -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: нет Всего: 17 |
DBF Viewer 2000. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 35 Всего: 329 |
Не знаю, это просто я пример привёл того, что dbf бывают разных форматов Добавлено через 1 минуту и 33 секунды Тогда помоги человеку и научи, как конвернуть 50 тысяч разноформатных dbf в единый формат. мне тоже интересно. Добавлено через 5 минут и 18 секунд
Думаю, что можно чего-нить замутить с этой утилиткой. |
||||
|
|||||
jhonyxakep |
|
|||
![]() Divide Et Impera ![]() ![]() Профиль Группа: Участник Сообщений: 983 Регистрация: 7.4.2009 Где: Что, Когда? Репутация: нет Всего: 8 |
||||
|
||||
Infector |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 13.1.2008 Репутация: нет Всего: 2 |
Меня DataBase Desktop вполне устраивает, проглатывает большую часть творчества клиентов(включая level 7 dbf). Входит в комплект поставки C++Builder. Чтобы работал нужно еще установить BDE-Administrator.
Минусы - если расширение не dbf и не db ничего не открывает независимо от содержимого. Плюсы - можно выполнять простейшие SQL запросы вроде, помогает при выборе из разных таблиц |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 35 Всего: 329 |
Infector, прочитай первые два слова в названии темы.
|
|||
|
||||
Infector |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 13.1.2008 Репутация: нет Всего: 2 |
А таблицы структуры одной, или как?
В свое время таблицы одной структуры сливал самопальной прогой. Это сообщение отредактировал(а) Infector - 23.9.2009, 18:33 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 35 Всего: 329 |
||||
|
||||
Infector |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 13.1.2008 Репутация: нет Всего: 2 |
Из начала темы понял, что форматы разные... А про структуру (типы и размер полей, или хотя бы имена) ни слова.
Дело в том, что у меня от разной структуры проблем было больше, чем от разного формата, т.к. на основе BDE все имевшиеся форматы открылись. А так как структура была однаковой, то запустил через C++ Builder обработку в цикле всего содержимого папки. (правда всю структуру пришлось описать) Выходные файлы (в моем случае были тоже dbf) уже стандартизированные. Если размер полей разный, то сделать сложнее, но тоже можно. Хотя бы имена и тип полей совпадают? Вот таким образом, сливал все dbf в папке в одну, в FILDS.INI предется перечислить все поля поименно через запятую, можно развить тему и дальше, если нужно...
|
|||
|
||||
Данкинг |
|
||||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 4 Всего: 130 |
С чего бы? С разной структурой бороться элементарно: заводишь переменную (ну или TStringList) для хранения названий полей. Перебираешь все таблицы, которые нужно слить, а в них с свою очередь перебираешь поля. Если данного поля в TStringList ещё нет, то добавляешь его. Далее создаёшь новую таблицу из всех полей, которые содержатся в TStringList - главное, чтобы суммарное число полей не превышало разрешённого для данной СУБД. Ну а далее - ещё проще: заново проходим по таблицам и переносим соответствующие значения полей в нашу новую таблицу. Тут я ещё не учёл, разумеется, типа полей, т.е. если в двух таблицах есть поля с одинаковыми названиями, но разными типами, то или преобразовывать к одному какому-то (текстовому, логичней всего).
Большинство DBF открывает FoxPro, что не откроется фоксом - то можно попробовать как раз через Excel. Если тоже не получится - то моё такое мнение, что данная задача решения не имеет. Пусть меня кто-нибудь поправит. ![]() -------------------- There's nothing left but silent epitaphs. |
||||
|
|||||
Infector |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 298 Регистрация: 13.1.2008 Репутация: нет Всего: 2 |
Я через средства от Borland работаю.
Основной принцип: средствами C++Builder собирается SQL запрос и запускается на выполнение. (или их серия последовательно собирается и запускается) Чтобы привести к единому формату кучу dbf требуется папка с исходными таблицами и папка для выходных таблиц. Запускаем цикл и для каждой исходной таблицы собираем и выполняем 1. Запрос "create table" в папке выходных таблиц. Он уже создает таблицы одного формата (dbf или Paradox (db), с MS SQL не эксперементировал) и вставлять данные туда можно из разноформатных dbf. Можно так же заменить "create table" копированием заранее заготовленного шаблона 2. Если размер полей все-таки разный: а) запрос "alter table", создающий в старой таблице временные поля размерностью и типом эдентичные полям выходной таблицы б) запрос "update", перегоняющий данные из полей исходной таблицы в стандартизированные временные. 3. запрос "insert into....... select....." в общем-то этот запрос и требует соответствия типов полей и их размерности. Внутри запросов должны быть описаны имена полей и кое-где структура. В общем-то по поводу разного наименования полей можно выкрутиться, вставив в Builder конструкцию "try - catch", а обработанные файлы перемещая из исходной папки в другую. Врят ли вариантов структуры окажется настолько много, что их нельзя будет обработать в несколько заходов, перестраивая при этом настройку имен полей. Довольно толковая книга по работе с базами: http://www.yugzone.ru/x/rabota-s-bazami-dannykh-v-c-builder/ Есть Отдельная глава по поводу запросов Это сообщение отредактировал(а) Infector - 24.9.2009, 12:28 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программное обеспечение" | |
|
Запрещается! 1. Обсуждение крэков, кейгенов и других подобных программ Пробуйте искать сами или обращайтесь в приват к участникам форума. Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения. Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...) 2. Давать ссылки на взломанные продукты
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программное обеспечение | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |