Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
6-1160830636
Вася
2006-10-14 16:57
2007.03.25
свойства протокола TCP/IP в реестре WINDOWS XP


2-1173013456
VitAngel
2007-03-04 16:04
2007.03.25
Переход на новую страницу


15-1172959624
eXPell
2007-03-04 01:07
2007.03.25
Браузер:)


15-1172505939
Cyrax
2007-02-26 19:05
2007.03.25
С#: интерфейсы с модификатором доступа internal


2-1172936846
LigthStone
2007-03-03 18:47
2007.03.25
Unicode





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский