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

Вниз

SaveDialog, сохранение в DBF   Найти похожие ветки 

 
alex_tonk   (2007-08-10 11:18) [0]

Доброго здоровья! Помогите разобраться со следующей проблемой. Есть фаербердовская база, нужно сохранить результаты запроса в DBF файл.
Что я делаю:

Вызываю процедуру:

procedure TFrmMainVwPL.BitBtn2Click(Sender: TObject);
begin
 if SaveDlg.Execute then
   DBUtil.CopyDataSetToDbf(QryPlat,SaveDlg.FileName,ttDBase);
end;

но тут она ругается на ttDBase...

А вот собственно и сама рабочая утилитка:

procedure CopyDataSetToDbf(Source: TDataSet; DestDbf: string; TblType: TTableType = ttDBase; ACodePage: cardinal = 866);
var
 TblDbf: TDbf;
 i, l: integer;
 tft: TFieldType;
 S: string;
begin
 TblDbf:=TDbf.Create(nil);
 try
   TblDbf.TableName:=DestDbf;
   TblDbf.Exclusive:=true;
   TblDbf.FieldDefs.Clear;
   TblDbf.TableLevel:=3;
   try
     for i:=0 to Source.FieldCount-1 do begin
       case Source.Fields[i].DataType of
           ftBCD: begin tft:=ftFloat; l:=0; end;
           ftTime: begin tft:=ftString; l:=8; end;
         else begin tft:=Source.Fields[i].DataType; l:=Source.Fields[i].Size; end;
       end;
       TblDbf.FieldDefs.Add(Source.Fields[i].FieldName,
                            tft,
                            l);
     end;
   except
     ShowMessage(Source.Fields[i].FieldName);
   end;
   TblDbf.CreateTable;
   TblDbf.Open;

   S:=Source.Bookmark;
   Source.DisableControls;
   Source.First;
   while not Source.Eof do begin
     TblDbf.Append;
     for i:=0 to Source.FieldDefs.Count-1 do
       if (TblDbf.Fields[i].DataType=ftString) and (ACodePage=866) then
         TblDbf.Fields[i].Value:=RxStrUtils.StrToOem(Source.Fields[i].Value)
       else TblDbf.Fields[i].Value:=Source.Fields[i].Value;
     TblDbf.Post;
     Source.Next;
   end;
 finally
   Source.Bookmark:=S;
   Source.EnableControls;
   TblDbf.Close;
   TblDbf.Free;
 end;
end;

Надеюсь на вашу помощь.


 
Lacmus ©   (2007-08-10 11:33) [1]

>но тут она ругается на ttDBase...

Как ругается ?


 
Mishell ©   (2007-08-10 15:42) [2]

DBTables в uses поместили?



Страницы: 1 вся ветка

Текущий архив: 2007.09.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
2-1186409569
x___X
2007-08-06 18:12
2007.09.02
Форма на переднем плане o_O =)


2-1186593827
Sonia
2007-08-08 21:23
2007.09.02
Проблема с настройками клиента Oracle (а может еще чего-то)


15-1185963941
Kolan
2007-08-01 14:25
2007.09.02
Где узнать как работает кещирующий прокси?


6-1168839344
DimaL
2007-01-15 08:35
2007.09.02
Перехват передачи данных


2-1186397737
Dmitry_177
2007-08-06 14:55
2007.09.02
какие таблицы лучше использовать для локальной БД?