powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Выгрузка данных из таблицы в DBF
8 сообщений из 8, страница 1 из 1
Выгрузка данных из таблицы в DBF
    #32988370
petrensd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа ! Помогите новичку: как из имеющейчас SQL сервере (table1) вигрузить данныe в файл с формата DBF ?
SELECT * from table1 output to c:\table1.txt - это в текстовый формат а в DBF ?
...
Рейтинг: 0 / 0
Выгрузка данных из таблицы в DBF
    #32988542
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select * from table1;
output to c:\1.dbf FORMAT DBASEIII;
...
Рейтинг: 0 / 0
Выгрузка данных из таблицы в DBF
    #32988726
petrensd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за помощь. Все получилось.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Выгрузка данных из таблицы в DBF
    #35791841
Alexey1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как получилось??? У меня пишет "Incorrect syntax near the keyword 'output'."

Что не так?

Сервер: Adaptive Server Anywhere 6.0
...
Рейтинг: 0 / 0
Выгрузка данных из таблицы в DBF
    #35792009
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey1stКак получилось??? У меня пишет "Incorrect syntax near the keyword 'output'."

Что не так?

Сервер: Adaptive Server Anywhere 6.0
Команда output работает в Interactive SQL, а не в самом сервере..
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Выгрузка данных из таблицы в DBF
    #36927703
Misha_LV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос : При выгрузке таблицы в файл dbf с помощью интерактив sql ,структура файла dbf отличается от структуры в таблице,например вместо поля numeric(12,4) получаем в dbf numeric(14,4).
Тоже самое получаем например в таком случае
select cast(12.234 as numeric(12,4)) as x from dummy;output to d:\test.dbf format dbaseIII;

Можно ли на выходе получить файл dbf такой же структуры как и таблица ?
...
Рейтинг: 0 / 0
Выгрузка данных из таблицы в DBF
    #36927903
V.V.L.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В принципе, если объем выгружаемых данных небольшой, можно (например) в процедуре формировать двоичные данные и выгружать их в файл. Структура DBF файла очень простая.
...
Рейтинг: 0 / 0
Выгрузка данных из таблицы в DBF
    #36928686
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кусок скрипта по формированию DBF для выдачи его через HTTP. Если облагородить, то можно и в фак. Но мне лень...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
  declare local temporary table t_result(
    "v1"    		integer NOT NULL ,
    "v2"    		varchar( 32 ) NULL ,
    "v3"    		integer NULL ,
    "v4"    		varchar( 20 ) NULL ,
    "v5"    		varchar( 200 ) NULL ,
    "v6"    		smallint NULL ,
    ) on commit delete rows;


  set s='select ... from ...';

  set b='';

  set s='insert into t_result ' || s;
  execute immediate s;
  set rec_count = @@rowcount;

  for ListFor as List dynamic scroll cursor for
      select ' ' || 
        "right"(repeat(' ', 16 ) || convert(char,isnull(v1, 0 )), 16 ) ||
        "left"(isnull(v2,'') || repeat(' ', 32 ), 32 ) ||
        "right"(repeat(' ', 16 ) || convert(char,isnull(v3, 0 )), 16 ) ||
        "left"(isnull(v4,'') || repeat(' ', 20 ), 20 ) ||
        "left"(isnull(v5,'') || repeat(' ', 200 ), 200 ) ||
        "right"(repeat(' ', 16 ) || convert(char,isnull(v6, 0 )), 16 ) as vv1
      from t_result
  do
      set b=b || vv1;
  end for;
      
  set s='';
  set s=s || '\x03';
  set s=s || '\x09\x05\x0C'; //YYMMDD создания DBF
  set s=s || "char"(mod(rec_count, 256 )) || "char"(mod(rec_count/ 256 , 256 )) || "char"(mod(rec_count/ 256 / 256 , 256 )) || "char"(rec_count/ 256 / 256 / 256 ); //Records count
  set s=s || '\xE1\x00'; //Header size = 32 + 32*cnt_field + 1
  set s=s || '\x2D\x01'; //Record length with separate space
  set s=s || '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'; //header_complete

  set s=s || 'AA\x00\x00\x00\x00\x00\x00\x00\x00\x00'; //field name
  set s=s || 'N\x00\x00\x00\x00'; //тип поля
  set s=s || '\x10\x00'; //размер поля и кол-во знаков после запятой
  set s=s || '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'; //

  set s=s || 'BBBBBBB\x00\x00\x00\x00'; //field name
  set s=s || 'C\x00\x00\x00\x00'; //тип поля
  set s=s || '\x20\x00'; //размер поля и кол-во знаков после запятой
  set s=s || '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'; //

  set s=s || 'CCC\x00\x00\x00\x00\x00\x00\x00\x00'; //field name
  set s=s || 'N\x00\x00\x00\x00'; //тип поля
  set s=s || '\x10\x00'; //размер поля и кол-во знаков после запятой
  set s=s || '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'; //

  set s=s || 'DDDD\x00\x00\x00\x00\x00\x00\x00'; //field name
  set s=s || 'C\x00\x00\x00\x00'; //тип поля
  set s=s || '\x14\x00'; //размер поля и кол-во знаков после запятой
  set s=s || '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'; //

  set s=s || 'EEEE\x00\x00\x00\x00\x00\x00\x00'; //field name
  set s=s || 'C\x00\x00\x00\x00'; //тип поля
  set s=s || '\xC8\x00'; //размер поля и кол-во знаков после запятой
  set s=s || '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'; //

  set s=s || 'FFFF\x00\x00\x00\x00\x00\x00\x00'; //field name
  set s=s || 'N\x00\x00\x00\x00'; //тип поля
  set s=s || '\x10\x00'; //размер поля и кол-во знаков после запятой
  set s=s || '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'; //

  set s=s || '\x0D';
  set s=s || csconvert(b,'cp866','cp1251');
  set s=s || '\x1A';

  call dbo.sa_set_http_header('Content-disposition','attachment; filename=bla-bla.dbf');
  call dbo.sa_set_http_header('Content-Type','application/octet-stream');
  return(s);
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Выгрузка данных из таблицы в DBF
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]