Ищем язык сценариев SQL для работы с файлами DBF - PullRequest
2 голосов
/ 11 августа 2009

У меня есть большая коллекция файлов DBF (около 1100), которые мне нужно проанализировать для клиента. Каждый файл содержит одну таблицу. Мне нужно выполнить запрос к каждой таблице, скопировать результаты в одну большую таблицу результатов (которая будет содержать результаты из всех файлов), а затем перейти к следующему файлу DBF. В конце мне нужно сохранить таблицу результатов в формате, которым я могу управлять позже. Кто-нибудь знает язык сценариев, который может сделать это легко для меня?

Есть несколько предостережений: 1.) Мне нужно что-то, что работает в Vista (что-то, что работает в DOS, Python или GNU Octave тоже хорошо). 2.) Я не администратор базы данных, но у меня достаточно хорошие навыки программирования. 3.) У меня есть только базовые знания SQL. Я могу написать запросы, моя проблема заключается в открытии файлов DBF и сохранении результатов. 4.) Я фактически достиг этого, используя MS Access, но это грязное решение. Поэтому я ищу что-то, что не использует Access.

Я читал о различных языках сценариев для SQL. Большинство сайтов, которые я видел, имеют дело с серверами, настройкой отношений, безопасностью и всем этим. Эти вопросы выходят за рамки моего понимания и не являются моей заботой. Я просто хочу запросить эти файлы, получить свои результаты и уйти. Есть ли что-то, что легко доступно для новичков, но значительно мощнее?

Любая помощь будет высоко ценится.

Ответы [ 3 ]

1 голос
/ 11 августа 2009

Мой первый выбор будет Visual FoxPro . Он обрабатывает файлы .dbf изначально, имеет интерактивную среду и предоставляет возможность SQL SELECT. Оператор SELECT имеет предложение INTO, которое отправляет результаты запроса в другую таблицу. Некоторые виды подписки MSDN включают FoxPro на DVD и делают ее доступной для загрузки с MSDN.

dBASE также доступна.

При необходимости структуру файла .dbf легко манипулировать кодом. В прошлом мне приходилось писать код для изменения файлов .dbf в C и Delphi. Это была не более чем дневная работа. Поиск кода Google , вероятно, даст код, связанный с .dbf для любого основного языка программирования. Формат файла .dbf и связанные форматы файлов задокументированы в MSDN .

1 голос
/ 15 июля 2011

Я написал Python DBF модуль , который имеет очень элементарную поддержку SQL. Однако, даже если SQL не соответствует вашим потребностям, легко запросить файлы dbf с использованием синтаксиса python.

Некоторые примеры:

import dbf

Чтобы создать таблицу результатов и добавить в нее записи:

results = dbf.Table('results_table', 'name C(50); amount N(10, 4)')
record = results.append()
with record:
    record.name = 'something'
    record.amount = 99.928

# to open an existing table
table = dbf.Table('some_dbf_table').open()

# find all sales >= $10,000
records = table.pql("select * where sales >= 10000")

# find all transactions for customer names that start with Bob
records = table.pql("select * where customer.startswith('Bob')")

# nevermind thin sql veneer, just use python commands
records = table.find("sales >= 10000 and customer.startswith('Bob')")

# sum sales by customer
customer_sales = default_dict(int)  # if customer not already seen, will default to 0
for record in table:
    customer_sales[record.customer] += record.sales

# now add to results table and print them out
for name, total in sorted(customer_sales.items()):
    result_record = results.append()
    with result_record:
        result_record.name = name
        result_record.amount = total
    print "%s: %s" % (name, total)
1 голос
/ 11 августа 2009

Я бы сделал это с SSIS. Циклы и преобразования данных в SSIS довольно просты.

...