![]() |
Datenbank: MS SQL-Server • Version: ab 2012 • Zugriff über: ADO/OLE DB
SQL-Server BulkCopy bzw. IRowsetFastLoad aus TDataSet - extrem schnell
Mit der Funktion kann ich 1 Mio. Datensätze in weniger als 2 Sekunden!!! aus einem beliebigen DataSet (bei mir einfach ein TClientDataSet) in eine gleich strukturierte SQL-Server-Tabelle kopieren. Meine Beispieltabellen hatten allerdings auch nur 3 Spalten - aber immerhin.
Den Quellcode dazu habe ich ![]()
Delphi-Quellcode:
procedure BulkCopy(Dataset: TDataSet; Connection: TADOConnection; const DstTableName: string);
Falls jemand Interesse hat, habe ich auch eine Version gefunden, mit der die Insert-Trigger auf dem SQL-Server ausgelöst werden. Jetzt aber zu meinem Problem: Für den Kopiervorgang werden automatisch immer neue Verbindungen zum SQL-Server erstellt. Diese neuen Verbindungen haben für meinen Verwendungszweck jedoch zwei entscheidende Nachteile:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz