PutProvider(Provider: IDtProvider);
Provider - источник, данные которого необходимо экспортировать.
Метод PutProvider осуществляет экспорт всех значений указанного источника данных в приемник данных. Для удачного экспорта необходимо, чтобы список полей в приемнике данных соответствовал списку полей в источнике данных.
Для выполнения примера предполагается наличие в корневом каталоге диска С файла "Data_Out.txt" и таблицы в репозитории с идентификатором "Table_1".
Sub Main;
Var
MB: IMetabase;
MBProvider: IDtMetabaseProvider;
TextConsumer: IDtTextConsumer;
Fields1, Fields2: IDtFieldDefinitions;
Field: IDtFieldDefinition;
i: Integer;
Begin
MB := MetabaseClass.Active;
MBProvider := New DtMetabaseProvider.Create;
MBProvider.Dataset := MB.ItemById("Table_1").Bind As IDatasetModel;
Fields1 := MBProvider.Fields;
TextConsumer := New DtTextConsumer.Create;
TextConsumer.File := "c:\Data_Out.txt";
TextConsumer.WriteHeader := True;
TextConsumer.RowDelimiter := #13 + #10; //Возврат каретки + перевод строки
TextConsumer.DelimitedColumnDelimiter := #9; //Клавиша Tab
Fields2 := TextConsumer.Fields;
For i := 0 To Fields1.Count - 1 Do
Field := Fields2.Add;
Field.DataType := Fields1.Item(i).DataType;
Field.Name := Fields1.Item(i).Name;
End For;
TextConsumer.Open;
TextConsumer.Clear;
TextConsumer.PutProvider(MBProvider);
TextConsumer.Close
End Sub Main;
После выполнения примера будет создан новый приемник данных, осуществляющий экспорт данных в текстовый файл. При экспорте в качестве разделителя строк будет использоваться сочетание Возврат каретки+Перевод строки, в качестве разделителя полей - Знак табуляции. В первую строку файла будут записаны наименования полей. Затем в файл будет экспортированы все данные из таблицы "Table_1".
См. также: