FailPolicy: DatasetFailPolicy;
Свойство FailPolicy определяет вид действия, осуществляемый при возникновении ошибки во время экспорта данных.
Для выполнения примера предполагается наличие в корневом каталоге диска С файла "Data.xls".
Sub Main;
Var
ExcelConsumer: IDtExcelConsumer;
Fields: IDtFieldDefinitions;
Field: IDtFieldDefinition;
v, v1: Array;
Pack: IDtBulkPacket;
Begin
//Массив, передаваемый в первом пакете
//Массив, передаваемый во втором пакете
ExcelConsumer := New DtExcelConsumer.Create;
ExcelConsumer.File := "c:\Data.xls";
ExcelConsumer.HasHeader := True;
ExcelConsumer.DriverVersion := "Excel 8.0";
ExcelConsumer.Table := "Лист1";
Fields := ExcelConsumer.Fields;
Field := Fields.Add;
Field.DataType := DbDataType.String;
Field.Name := "Наименование";
Field := Fields.Add;
Field.DataType := DbDataType.Integer;
Field.Name := "Идентификатор";
Field := Fields.Add;
Field.DataType := DbDataType.Float;
Field.Name := "Значение";
ExcelConsumer.Open;
Pack := New DtBulkPacket.Create;
Pack.FailPolicy := DatasetFailPolicy.Rollback;
//Первый пакет
Pack.Data := v;
ExcelConsumer.PutBulk(Pack);
If Not Pack.Successful Then
Debug.WriteLine("Ошибка при экспорте пакета");
Debug.WriteLine("Не экспортировано записей: " + Pack.FailedRows.ToString);
Else
Debug.WriteLine("Экспорт пакета завершен удачно");
End If;
//Второй пакет
Pack.Data := v1;
ExcelConsumer.PutBulk(Pack);
If Not Pack.Successful Then
Debug.WriteLine("Ошибка при экспорте пакета");
Debug.WriteLine("Не экспортировано записей: " + Pack.FailedRows.ToString);
Else
Debug.WriteLine("Экспорт пакета завершен удачно");
End If;
ExcelConsumer.Close;
End Sub Main;
После выполнения примера будет создан новый приемник данных, осуществляющий экспорт данных в файл Excel. В файл поочередно будут записаны значения двух массивов. При возникновении ошибок при экспорте строк будет производиться откат изменений. Информация о результатах экспорта будет выведена в консоль среды разработки.
См. также: