public string GenerateFormatFile(BcpDirection direction) { List <FieldMappingDefinition> fieldMappingDefs = _definition.FieldMappingDefinitions; string fields = ""; int count = 0; for (int i = 0; i < fieldMappingDefs.Count; i++) { FieldMappingDefinition definition = fieldMappingDefs[i]; if (definition.Type != FieldMappingType.Simple) { continue; } // have a problem with (max) datatype in bcp so we handle it seperately if ((definition.DestinationField.IsMaxDataType) && _definition.HandleMaxTextSeperately) { continue; } string bcpFormat; if (_mode == BcpMode.Native) { bcpFormat = BcpTemplates.BCP_NATIVE_FORMAT_ROW; } else { bcpFormat = i < fieldMappingDefs.Count - 1 ? BcpTemplates.BCP_CHARACTER_FORMAT_ROW : BcpTemplates.BCP_CHARACTER_FORMAT_LAST_ROW; } string dataType = definition.DestinationField.SqlDataType; int prefixLength = definition.DestinationField.PrefixLength; int length = definition.DestinationField.Length; int serverColumnOrder = definition.DestinationField.Order; string serverColumnName = definition.DestinationField.Name; string collation = definition.DestinationField.Collation; fields += bcpFormat.Inject(new { Index = ++count, DataType = dataType, PrefixLength = prefixLength, Length = length, ServerColumnOrder = direction == BcpDirection.Export ? count : serverColumnOrder, ServerColumnName = serverColumnName, Collation = string.IsNullOrEmpty(collation) ? @"""""" : collation }) + Environment.NewLine; } string formatFile = BcpTemplates.BCP_FORMAT_FILE.Inject(new { FieldCount = count, Fields = fields }); return(formatFile); }
public string GenerateFormatFile(BcpDirection direction) { List<FieldMappingDefinition> fieldMappingDefs = _definition.FieldMappingDefinitions; string fields = ""; int count = 0; for (int i = 0; i < fieldMappingDefs.Count; i++) { FieldMappingDefinition definition = fieldMappingDefs[i]; if (definition.Type != FieldMappingType.Simple) { continue; } // have a problem with (max) datatype in bcp so we handle it seperately if ((definition.DestinationField.IsMaxDataType) && _definition.HandleMaxTextSeperately) { continue; } string bcpFormat; if (_mode == BcpMode.Native) { bcpFormat = BcpTemplates.BCP_NATIVE_FORMAT_ROW; } else { bcpFormat = i < fieldMappingDefs.Count - 1 ? BcpTemplates.BCP_CHARACTER_FORMAT_ROW : BcpTemplates.BCP_CHARACTER_FORMAT_LAST_ROW; } string dataType = definition.DestinationField.SqlDataType; int prefixLength = definition.DestinationField.PrefixLength; int length = definition.DestinationField.Length; int serverColumnOrder = definition.DestinationField.Order; string serverColumnName = definition.DestinationField.Name; string collation = definition.DestinationField.Collation; fields += bcpFormat.Inject(new { Index = ++count, DataType = dataType, PrefixLength = prefixLength, Length = length, ServerColumnOrder = direction == BcpDirection.Export ? count : serverColumnOrder, ServerColumnName = serverColumnName, Collation = string.IsNullOrEmpty(collation) ? @"""""" : collation }) + Environment.NewLine; } string formatFile = BcpTemplates.BCP_FORMAT_FILE.Inject(new { FieldCount = count, Fields = fields }); return formatFile; }