Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2014, 14:37   #1
13eksa_kate
Новичок
Джуниор
 
Регистрация: 21.08.2014
Сообщений: 1
По умолчанию создание dbf файла

Доброго дня суток! Стоит задача выгрузить в dbf данные, получаемые sql-запросом.
Изначальная идея такая: Данные выбираются с помощью FIBDataSet,
c помощью TDBF пишутся в файл.
Разъясните пожалуйста как конкретно рабоать с TDBF или может быть как правильнее реализовать поставленное задание
13eksa_kate вне форума Ответить с цитированием
Старый 21.08.2014, 14:55   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В огнептице есть возможность експортировать в dbf селектом
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.08.2014, 16:22   #3
Rik
Форумчанин
 
Аватар для Rik
 
Регистрация: 28.07.2007
Сообщений: 361
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
В огнептице есть возможность експортировать в dbf селектом
Нет там такой возможности.
Такая возможность есть либо в средствах администрирования FireBird типа IBExpert либо в специальных программах типа IBPump.

Если писать самому, то примерно так:

Код:
procedure TForm1.ExprotDBF(FlName: string);
var
  DBF: TDBF;
  FD: TDBFFieldDefs;
  F: TDBFFieldDef;
  I: Integer;
  FIBField: TField;
begin
  FIBDataSet.Open;
  DBF := TDBF.Create(Self);
  FD := TDBFFieldDefs.Create(DBF);
  try
    Dbf.TableName := FlName;
    //создаем таблицу DBF с теми -же полями что и набор данных
    for I := 0 to FIBDataSet.Fields.Count - 1 do
    begin
       FIBField := FIBDataSet.Fields.Fields[I];
       F := FD.AddFieldDef;
       F.FieldName := FIBField.FieldName;
       case FIBField.DataType of
         ftString:
         begin
             F.NativeFieldType := 'C';
             F.Size := FIBField.Size;
          end;
          ftInteger:
          begin
             F.NativeFieldType := 'N';
             F.Size := 14;
             F.Precision := 0;
          end;
          //И так далее для каждого типа данных
        end; 
    end;  
     
    DBFGlobals.DefaultCreateLangId := 101;//Если 101 то 866; Если 201 то WIN1251
    Dbf.CreateTableEx(FD);
    
    if FileExists(FlName) then
    begin
      DBF.Open;
      try
        while not FIBDataSet.Eof do
        begin
           Dbf.Append;
           //Здесь копируем данные полей из FIB в DBF
           DBF.Post;
           FIBDataSet.Next;
        end;
      finally
        DBF.Close;
      end;

  finally
    FD.Free;
    DBF.Free;
    FIBDataSet.Close;
  end;
end;
примерно как-то так....

Последний раз редактировалось Rik; 21.08.2014 в 16:32.
Rik вне форума Ответить с цитированием
Старый 21.08.2014, 17:30   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Сделать script.ibb примерно с таким содержимым (за правильность не ручаюсь):
Код:
execute ibeblock
as
begin
  SELECT * FROM genre EXPORT AS DBF INTO 'd:\Test.dbf' OPTIONS 'ConvertToDOS; LongStringsToMemo; DateTimeAsDate'
end
Сделать примерно так script.bat:
Код:
IBEScript.exe "script.ibb" -Dd:\Test.fdb -USYSDBA -Pmypass
Pause
И вызов с делфи ShellExecute батника
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перекодировка DBF файла из cp1251 в UTF-8 .scu C# (си шарп) 7 14.07.2012 02:04
открытие dbf файла EXCELом elen1khp БД в Delphi 17 01.02.2011 02:20
Проблема с обработкой DBF файла oleg kutkov Общие вопросы C/C++ 1 22.08.2008 21:07
сохранение результата выборки из DBF файла в DBF файл с такой же структурой таблицы GazimagomedovM БД в Delphi 5 06.11.2007 17:58
Сортировка файла dbf Jon_1981 БД в Delphi 7 11.06.2007 10:57