Table of Contents

Class ExportConfig

Namespace
YndigoBlue.Velocity.Model
Assembly
YndigoBlue.Velocity.dll

Configuration for exporting query results to CSV files.

public class ExportConfig
Inheritance
ExportConfig

Examples

Basic export with default settings:

using (Manager manager = new Manager(connection))
{
    manager.LoadSchema("my_schema");
    Schema schema = manager.GetSchema("my_schema");
    Table usersTable = schema["users"];

    // Create query
    Query query = new Query();
    query.AddFromItem(usersTable);
    query.AddSelectItem(usersTable["id"]);
    query.AddSelectItem(usersTable["username"]);
    query.AddSelectItem(usersTable["email"]);
    query.AddSelectItem(usersTable["created_at"]);

    // Create export config with default ISO format
    ExportConfig config = new ExportConfig();

    // Export to CSV
    string csvFilePath = @"C:\exports\users.csv";
    int rowsExported = manager.Export(config, query, csvFilePath);

    Console.WriteLine($"Exported {rowsExported} rows");
}

// Output CSV format:
// id,username,email,created_at
// 1,john_doe,john@example.com,2025-01-07 10:30:00
// 2,jane_smith,jane@example.com,2025-01-07 11:45:00

Export with custom CSV format:

// Create config for tab-delimited output
ExportConfig config = new ExportConfig(DateFormatType.Iso);
config.FieldDelimiter = '\t';  // Tab-separated values
config.QuoteCharacter = '\'';  // Single quotes
config.ForceQualifier = true;  // Always quote fields
config.WriteHeaders = true;

int rowsExported = manager.Export(config, query, csvFilePath);

// Output format:
// 'id'\t'username'\t'email'
// '1'\t'john_doe'\t'john@example.com'

Export with custom date formats:

// Configure for European date format
ExportConfig config = new ExportConfig(DateFormatType.Culture);
config.DateFormat = "dd/MM/yyyy";
config.DateTimeFormat = "dd/MM/yyyy HH:mm:ss";
config.TimestampFormat = "dd/MM/yyyy HH:mm:ss zzz";

int rowsExported = manager.Export(config, query, csvFilePath);

// Output format:
// id,username,created_at
// 1,john_doe,07/01/2025 10:30:00
// 2,jane_smith,07/01/2025 11:45:00

Export without headers:

ExportConfig config = new ExportConfig();
config.WriteHeaders = false;  // Don't write header row

int rowsExported = manager.Export(config, query, csvFilePath);

// Output format (no headers):
// 1,john_doe,john@example.com,2025-01-07 10:30:00
// 2,jane_smith,jane@example.com,2025-01-07 11:45:00

Export with forced field quoting:

ExportConfig config = new ExportConfig();
config.ForceQualifier = true;  // Quote all fields
config.QuoteCharacter = '"';

int rowsExported = manager.Export(config, query, csvFilePath);

// Output format:
// "id","username","email","created_at"
// "1","john_doe","john@example.com","2025-01-07 10:30:00"
// "2","jane_smith","jane@example.com","2025-01-07 11:45:00"

Export pipe-delimited file:

ExportConfig config = new ExportConfig();
config.FieldDelimiter = '|';
config.QuoteCharacter = '"';
config.LineTerminator = "\r\n";  // Windows line endings

int rowsExported = manager.Export(config, query, csvFilePath);

// Output format:
// id|username|email
// 1|john_doe|john@example.com
// 2|jane_smith|jane@example.com

Export with character trimming:

ExportConfig config = new ExportConfig();
config.TrimChars = true;  // Trim leading/trailing whitespace (default)

// Or disable trimming to preserve all whitespace
config.TrimChars = false;

int rowsExported = manager.Export(config, query, csvFilePath);

Export using current culture format:

// Use system's regional settings for dates and list separator
ExportConfig config = new ExportConfig(DateFormatType.Culture);

// This will use:
// - Current culture's date format
// - Current culture's list separator (comma, semicolon, etc.)
// - Current culture's datetime patterns

int rowsExported = manager.Export(config, query, csvFilePath);

Export with custom escape character:

ExportConfig config = new ExportConfig();
config.EscapeCharacter = "\\\\";  // Double backslash for escaping
config.QuoteCharacter = '"';

// Fields with quotes will be escaped:
// "Product with \"quotes\" in name"

int rowsExported = manager.Export(config, query, csvFilePath);

Complete export configuration example:

ExportConfig config = new ExportConfig(DateFormatType.Iso);

// CSV format settings
config.FieldDelimiter = ',';
config.QuoteCharacter = '"';
config.EscapeCharacter = "\\\\";
config.LineTerminator = Environment.NewLine;
config.ForceQualifier = false;  // Only quote when necessary

// Output settings
config.WriteHeaders = true;
config.TrimChars = true;

// Date/time formats
config.DateFormat = "yyyy-MM-dd";
config.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
config.TimestampFormat = "yyyy-MM-dd HH:mm:ss zzz";

int rowsExported = manager.Export(config, query, csvFilePath);

Remarks

ExportConfig controls how database query results are formatted and written to CSV files when using Engine.Manager.Export(ExportConfig, Query, string). It handles:

  • CSV format settings (delimiters, quote characters, line terminators)
  • Date/time output formats
  • Header row generation
  • Field quoting behavior
  • Character trimming

ExportConfig provides two initialization modes:

  • ISO Format (default): Uses standard ISO date formats and comma delimiters
  • Culture Format: Uses current culture's date formats and list separators

The configuration ensures exported CSV files are properly formatted and can be easily imported into spreadsheet applications, other databases, or re-imported using ImportConfig.

Constructors

ExportConfig(DateFormatType)

Properties

DateFormat
DateTimeFormat
EscapeCharacter
FieldDelimiter
ForceQualifier
LineTerminator
QuoteCharacter
TimestampFormat
TrimChars
WriteHeaders