Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.25;
Скачать: CL | DM;

Вниз

Экспорт в файл средствами 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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.029 c
15-1172673922
partizan
2007-02-28 17:45
2007.03.25
Компонента для работы с ФТП


2-1172756880
сетевик
2007-03-01 16:48
2007.03.25
Сеть


15-1172727214
Рафик с рынка
2007-03-01 08:33
2007.03.25
Нужна помощь


15-1172329940
CCil
2007-02-24 18:12
2007.03.25
Почему google стоит так не дешево?


15-1172915019
Kerk
2007-03-03 12:43
2007.03.25
Предвыборная агитация