Wie exportiere ich eine große SQL Server-Tabelle mit der FileHelpers-Bibliothek in eine CSV-Datei?

Ich möchte eine große SQL Server-Tabelle mit C # und der FileHelpers-Bibliothek in eine CSV-Datei exportieren. Ich könnte auch C # und bcp in Betracht ziehen, aber ich dachte, FileHelpers wäre flexibler als bcp. Geschwindigkeit ist keine besondere Anforderung.OutOfMemoryException wird auf das geworfenstorage.ExtractRecords() Wenn der folgende Code ausgeführt wird (weniger wichtiger Code wurde weggelassen):

  SqlServerStorage storage = new SqlServerStorage(typeof(Order));
    storage.ServerName = "SqlServer"; 
    storage.DatabaseName = "SqlDataBase";
    storage.SelectSql = "select * from Orders";
    storage.FillRecordCallback = new FillRecordHandler(FillRecordOrder);
    Order[] output = null;
    output = storage.ExtractRecords() as Order[];

Wenn der folgende Code ausgeführt wird, wird auf dem "Timeout abgelaufen" geworfenlink.ExtractToFile():

 SqlServerStorage storage = new SqlServerStorage(typeof(Order));
    string sqlConnectionString = "Server=SqlServer;Database=SqlDataBase;Trusted_Connection=True";
    storage.ConnectionString = sqlConnectionString;
    storage.SelectSql = "select * from Orders";
    storage.FillRecordCallback = new FillRecordHandler(FillRecordOrder);
    FileDataLink link = new FileDataLink(storage);
    link.FileHelperEngine.HeaderText = headerLine;
    link.ExtractToFile("file.csv");

Der SQL-Abfragelauf dauert länger als die Standardzeit von 30 Sekunden und daher die Zeitüberschreitungsausnahme. Leider kann ich in den FileHelpers-Dokumenten nicht nachlesen, wie das Zeitlimit für SQL-Befehle auf einen höheren Wert festgelegt werden kann.

Ich könnte in Betracht ziehen, eine SQL-Auswahl für kleine Datenmengen zu schleifen, bis die gesamte Tabelle exportiert wird, aber die Prozedur wäre zu kompliziert. Gibt es eine einfache Methode, um FileHelpers für den Export großer DB-Tabellen zu verwenden?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage