Добрго времени суток, уважаемые программисты! Столкнулся с новым для себя понятием - база данных Oracle. Дальше локального Paradox'а я не лазил. Передо мной стоит задача вытащить данные из БД, обработать их и загнать в Excel. Я вижу 2 пути: родной Delphi(например, ADO) и Visual Basic в Excel. С помощью какого инструмента удобнее решить эту задачу?
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
31-01-2007 07:36 | Сообщение от автора вопроса
Тут дело может даже не столько в оракле. Данные хранятся в eDB - структура близкая к реляционной СУБД Oracle 8i.
Да не надо там особо изучать, если требуется просто выдернуть данные. Администрировать то ничего не надо (я так думаю). Знание SQL и специфика его реализации в оракле - вот все, что может понадобиться. Тут SQLPlus за глаза хватит для проверки запросов;)
Если цель - только вытащить, то и BDE на это способен. Создать в Администраторе BDE алиас и цепляться TQuery. Разбираться со средствами Oracle - времени немало уйдет.
В комплект дистрибутива Oracle имеется пример, как сделать выборку данных в екселе с помощью макросов. Пример более чем прост, разобраться сможете сразу;) Сейчас сразу не могу сказать где располагается пример, но на вскидку, кажется в <orahome>\Examples\oo4o\EMPLX.xls.
Вам остается только поменять запрос;) Только сразу проектируйте запросы так, чтобы результирующая выборка содержала число строк меньше 65535 (ограничение на число строк на лист в экселе), например через RowNum, либо в макросе раскидывайте на разные листы. Работает довольно быстро (хотя все сильно зависит от запроса).
Считаю, что в данном случае вам все-таки придется забыть любимый делфи и работать со средствами офиса, ибо все равно потом все это вам нужно будет экспортировать в эксель.
Возможные подводные камни:
Удостоверьтесь, что клиентская часть Oracle установлена корректно на целевом компьютере, ибо эксель работает через ActiveX.
При отладке на больших/трудоемких запросах бывает, что отладчик подвисает, поэтому советую все запросы вначале погонять на родных или специализированных инстhументах отладки SQL.
Ну, можете конечно забить на все это дело и использовать Delphi, но опять же помучаетесь с ADO (если выберете его) или придется покупать лицензию на DOA (если вы честный пользователь:))
Как я слышал, у Оракла есть собственные средства импорта/экспорта данных, возможно, в том числе и в Excel или формат, понимаемый Excel. Если так - советую использовать native средства. Если нет - я бы выбрал Delphi, потому что на Visual Basic я программирую с трудом, кроме того я не уверен, что из VB удастся безпроблемно подключиться к Oracle серверу. Перенос данных - руками, затем обработка, наконец - внесение в Excel таблицу, статьи на Королевстве есть.
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.