Форум: "Базы";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
ВнизЭкспорт в файл средствами SQL Найти похожие ветки
← →
Megabyte © (2007-01-05 12:41) [0]Не подскажите, возможно ли результаты запроса(таблицы, процедуры) экспортировать в файлы(различных форматов), только не руками, а средствами SQL?
Если да, то подскажите, где прочитать про это или подскажите примерный код(аля " select * from table into to "otchet.xls" ")?
Если да, то где об этом почитать?
← →
PEAKTOP © (2007-01-05 12:50) [1]IBExpert ? http://ibexpert.com/
← →
_RusLAN © (2007-01-05 12:56) [2]может внешние таблицы вам помогут?
← →
Desdechado © (2007-01-05 12:56) [3]SQL - это язык работы с данными.
Он не знает ни о каких внешних файлах, тем более о каких-то их форматах типа экселя.
Тебе нужно, ты и пиши. Или пользуй готовые программы.
← →
sniknik © (2007-01-05 13:12) [4]> SQL - это язык работы с данными.
> Он не знает ни о каких внешних файлах, тем более о каких-то их форматах типа экселя.
ну это смотря какой sql, каким движком реализован, jet так вполне знает разные внешние файлы, эксел в том числе. т.что можно и sql-лем экспорт делать.
mssql через oledb провайдера (тот же jet) тоже можно.
а вот Firebird не знаю, возможно тоже какоето средство экспорта есть. надо по нему доки читать.
← →
Anatoly Podgoretsky © (2007-01-05 13:21) [5]> sniknik (05.01.2007 13:12:04) [4]
> ну это смотря какой sql
Firebird гетерогенные запросы не поддерживает.
← →
Desdechado © (2007-01-05 13:31) [6]> ну это смотря какой sql, каким движком реализован,
Это уже не SQL, а его расширения.
В Оракле, например, много системных пакетов для разных целей (и таких в т.ч.). Но это не делает этот функциональный мусор частью языка SQL.
Тем более движок - не язык.
← →
Anatoly Podgoretsky © (2007-01-05 13:43) [7]> Desdechado (05.01.2007 13:31:06) [6]
Если движок позволяет делать гетерогенные запросы, то это уже язык.
INSERT INTO ... SELECT FROM ...
Это типовая SQL конструкция.
← →
Desdechado © (2007-01-05 13:51) [8]> INSERT INTO ... SELECT FROM ...
> Это типовая SQL конструкция.
Но только для таблиц в одной БД, а не в непонятного вида "внешнем файле".
← →
Megabyte © (2007-01-05 13:53) [9]В самом IBExpert"е средства экспорта есть, но мне это, естественно, надо программно.
Ладно, сам сделаю, просто интересно было узнать....
← →
Anatoly Podgoretsky © (2007-01-05 13:54) [10]> Desdechado (05.01.2007 13:51:08) [8]
Вполне в понятном, типовой OLE DB драйвер для ODBC
Движок должен поддерживать гетерогенные запросы, но это не проблема SQL
← →
carmen © (2007-01-05 14:28) [11]Так как в вопросе конкретно указано FireBird 2 то это просто сделать и самим FireBird посредством SQL-запроса.
1. Создать в базе таблицу, которая будет ссылатся на внешний файл. Например:
Create Table External_Table File "name_file"
(
Field01 Char(10),
Field02 Char(128),
...
FieldXX Char(100)
)
2. Для записи в этот файл используем:
insert into external_table
select pole01, pole02, pole03
from необходимая_таблица
where необходимое условие
И все больше ничего придумывать ненадо.
Таким же способом можно и наоборот из внешнего файла вставлять в базу
← →
vlad-mal © (2007-01-05 14:55) [12]
> В самом IBExpert"е средства экспорта есть, но мне это, естественно,
> надо программно.
IBEScript бросьте возле клиентской программки - вот Вам и будет "программно"
← →
Desdechado © (2007-01-05 15:31) [13]carmen © (05.01.07 14:28) [11]
Во-первых, это только на сервере.
Во-вторых, никаких форматоваля " select * from table into to "otchet.xls"
не поддерживается.
В-третьих, такая выгрузка работает только с CHAR-полями, числовые туда идут в нечитаемом виде, блобы вообще не поддерживаются.
В-четвертых, удалить этот файл уже нельзя без DROP TABLE.
← →
Carmen © (2007-01-05 20:13) [14]1. то что на сервере проблем не вижу
2. зачем делать экспорт когда незнаеш какие поля надо экспортировать, вообще не select * from table into to "otchet.xls" а так как я привел
3. такая вигрузка работает для любых данных, в том числе и числовых (з блоб полями не пробовал)
4. а чем трудно это запихнуть в процедуру на сервере или на клинте....
а вообще данный кусок (но с необходимыми полями) уменя работеет уже около года, впритом что импорт/экспорт далается как текстовой та и числовой информации десятки раз на день и никаких проблем не было.
а придумывать свой велосипед для простого експорту данных не вижу смысла
← →
Desdechado © (2007-01-05 20:40) [15]Carmen © (05.01.07 20:13) [14]
> 1. то что на сервере проблем не вижу
Ну-ну. Сидят 50 пользователей и каждый дружно гадит на сервер в какие-то файлы. Как он их оттуда забирать будет? Как он отличит свои от чужих, если эти юзеры побывали в одинаковых режимах, но с разными настройками. Экспорт явно для каких-нибудь отчетов нужен...
> 2. зачем делать экспорт когда незнаеш какие поля надо экспортировать
Невнимательность твоя, однако. Я показал запрос выгрузки в эксель, который хотел автор.
> 3. такая вигрузка работает для любых данных, в том числе и числовых
Числовых в текстовом формате (я не зря сказал о CHAR). И прочих тоже только в текстовом формате. Можно и в нетекстовом, но тогда это будет бинарник, который ничем нормально (без вывертов) не прочитаешь.
> 4. а чем трудно это запихнуть в процедуру на сервере или на клинте....
Еще одна глупость. Постоянно создавать и убивать таблицы очень чревато для сервера. А делать это из ХП - вообще свинство. В FB, по крайней мере.
> а вообще данный кусок (но с необходимыми полями) уменя работеет уже
> около года, впритом что импорт/экспорт далается как текстовой та и
> числовой информации десятки раз на день и никаких проблем не было
У каждого свои задачи. Но такие вещи, имхо, больше на импорт ориентированы, причем не многократный, а одноразовый. Потому как это не пользовательская задача, а админская.
← →
Carmen © (2007-01-05 21:06) [16]
> > 2. зачем делать экспорт когда незнаеш какие поля надо
> экспортировать
> Невнимательность твоя, однако. Я показал запрос выгрузки
> в эксель, который хотел автор.
такой файл можна без проблем открыть в екселе и все будет по колонках.
а последнее изречение правильное, у каждого свои задачи.
← →
try (2007-01-05 21:26) [17]
> 4. а чем трудно это запихнуть в процедуру на сервере
Разве DDL команды выполнимы из процедур на сервере???
← →
rar © (2007-01-05 21:54) [18]можно используя ADOConnection
ADOConnection1.Execute ("SELECT * INTO [Customer.htm] IN "" +
ExtractFilePath (Application.ExeName) + "" "HTML Export;" FROM CUSTOMER");
ADOConnection1.Execute ("SELECT * INTO Customer IN "" +
ExtractFilePath (Application.ExeName) + "dbdemos.xls" "Excel 8.0;" FROM CUSTOMER");
← →
try (2007-01-05 21:57) [19]
> rar © (05.01.07 21:54) [18]
> можно используя ADOConnection
Т.е. у тебя получается???
← →
sniknik © (2007-01-05 22:36) [20]> Т.е. у тебя получается???
только если используется jet, его синтаксис.
у парня просто "легкая" дезориентация в пространстве форума... ;о))
← →
try (2007-01-05 23:27) [21]
> sniknik © (05.01.07 22:36) [20]
> только если используется jet, его синтаксис.
А как jet состыкуется с FB?
← →
sniknik © (2007-01-06 00:55) [22]> А как jet состыкуется с FB?
это спрашивай автора [18] поста, это он приводит запросы из jet как ответ в ветке с Firebird.
или это "прямой" вопрос?
тогда легко. из коннекта к access можно аналогично приведенным можно сделать запрос с указанием isam-а odbc и в нем указывая dsn настроенный на Firebird.
только это не ответ на основной вопрос ветки, там то как раз нужно наоборот, чтобы Firebird "вязался" с другими движками/или имел встроенный экспорт в разные форматы (чего как было сказано нет).
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.093 c