Entwickler-Ecke

Datenbanken - Mehrere Inserts via Ado auf einmal absetzen


Bronstein - Mi 31.10.18 09:21
Titel: Mehrere Inserts via Ado auf einmal absetzen
Hallo,
ich möchte gerne mehrere Inserts auf einmal in eine Datenbank schreiben

Habe das sowohl via AdoCommand als auch über AdoQuery Execute gemacht, jedoch wird immer nur der erste Insertbefehl in die Datenbank übernommen. Hiermal die SQL Anweisungen


SQL-Anweisung
1:
2:
3:
4:
5:
6:
7:
8:
INSERT INTO TRC01.OPTIMZE_FEHLER (Serialnumber, ProductGroup, Product, StartTime, EndTime, TestResult, TestSystem, TestSystemSn, TestProgram, TestSocket, Type, Group, GroupNumber, Name, GroupSubNumber, Result, LowLimit, HighLimit, Status) VALUES (40790531'xxx''75.13119.6xx''2018-09-02-22.40.01''2018-09-02-22.40.29''Pass''TC_EP_INLINE''TC_Inline_FKT_1''75.13119.632'1'FUNC''BGR-Status'1'BGR-nicht-Verschrottet'1'1''2''0''Pass');
INSERT INTO TRC01.OPTIMZE_FEHLER (Serialnumber, ProductGroup, Product, StartTime, EndTime, TestResult, TestSystem, TestSystemSn, TestProgram, TestSocket, Type, Group, GroupNumber, Name, GroupSubNumber, Result, LowLimit, HighLimit, Status) VALUES (40790531'xxx''75.13119.6xx''2018-09-02-22.40.01''2018-09-02-22.40.29''Pass''TC_EP_INLINE''TC_Inline_FKT_1''75.13119.632'1'FUNC''BGR-Status'1'BGR-in-ICT-PASS'2'1''2''0''Pass');
INSERT INTO TRC01.OPTIMZE_FEHLER (Serialnumber, ProductGroup, Product, StartTime, EndTime, TestResult, TestSystem, TestSystemSn, TestProgram, TestSocket, Type, Group, GroupNumber, Name, GroupSubNumber, Result, LowLimit, HighLimit, Status) VALUES (40790531'xxx''75.13119.6xx''2018-09-02-22.40.01''2018-09-02-22.40.29''Pass''TC_EP_INLINE''TC_Inline_FKT_1''75.13119.632'1'FUNC''Kommunikation'2'dde2monp'1'1''2''0''Pass');
INSERT INTO TRC01.OPTIMZE_FEHLER (Serialnumber, ProductGroup, Product, StartTime, EndTime, TestResult, TestSystem, TestSystemSn, TestProgram, TestSocket, Type, Group, GroupNumber, Name, GroupSubNumber, Result, LowLimit, HighLimit, Status) VALUES (40790531'xxx''75.13119.6xx''2018-09-02-22.40.01''2018-09-02-22.40.29''Pass''TC_EP_INLINE''TC_Inline_FKT_1''75.13119.632'1'FUNC''Bildaufnahme'3'SAC-C7'1'1''2''0''Pass');
INSERT INTO TRC01.OPTIMZE_FEHLER (Serialnumber, ProductGroup, Product, StartTime, EndTime, TestResult, TestSystem, TestSystemSn, TestProgram, TestSocket, Type, Group, GroupNumber, Name, GroupSubNumber, Result, LowLimit, HighLimit, Status) VALUES (40790531'xxx''75.13119.6xx''2018-09-02-22.40.01''2018-09-02-22.40.29''Pass''TC_EP_INLINE''TC_Inline_FKT_1''75.13119.632'1'FUNC''Version'4'Read Version'1'758138141 YL236 V248 P632 180226 1036''xxx''758138141 YL236 V248 P632 180226 1036''Pass');
INSERT INTO TRC01.OPTIMZE_FEHLER (Serialnumber, ProductGroup, Product, StartTime, EndTime, TestResult, TestSystem, TestSystemSn, TestProgram, TestSocket, Type, Group, GroupNumber, Name, GroupSubNumber, Result, LowLimit, HighLimit, Status) VALUES (40790531'xxx''75.13119.6xx''2018-09-02-22.40.01''2018-09-02-22.40.29''Pass''TC_EP_INLINE''TC_Inline_FKT_1''75.13119.632'1'FUNC''Scriptprüfung'5'PRGMODE'1'0''xxx''xxx''Pass');
INSERT INTO TRC01.OPTIMZE_FEHLER (Serialnumber, ProductGroup, Product, StartTime, EndTime, TestResult, TestSystem, TestSystemSn, TestProgram, TestSocket, Type, Group, GroupNumber, Name, GroupSubNumber, Result, LowLimit, HighLimit, Status) VALUES (40790531'xxx''75.13119.6xx''2018-09-02-22.40.01''2018-09-02-22.40.29''Pass''TC_EP_INLINE''TC_Inline_FKT_1''75.13119.632'1'FUNC''Scriptprüfung'5'PRGMODE'2'0''xxx''xxx''Pass');
INSERT INTO TRC01.OPTIMZE_FEHLER (Serialnumber, ProductGroup, Product, StartTime, EndTime, TestResult, TestSystem, TestSystemSn, TestProgram, TestSocket, Type, Group, GroupNumber, Name, GroupSubNumber, Result, LowLimit, HighLimit, Status) VALUES (40790531'xxx''75.13119.6xx''2018-09-02-22.40.01''2018-09-02-22.40.29''Pass''TC_EP_INLINE''TC_Inline_FKT_1''75.13119.632'1'FUNC''Scriptprüfung'5'PRGMODE'3'0''xxx''xxx''Pass');


Wenn ich die SQL Anweisungen direkt in der Datenbank ausführe werden alle Datensätze angelegt

Hat wer eine Idee?

Es geht um sehr viele Datensätze, deshalb dachte ich mir wenn ich meherer Inserts aufeinmal absetze geht es um einiges schneller


Moderiert von user profile iconTh69: Topic aus Datenbanken (inkl. ADO.NET) verschoben am Mi 31.10.2018 um 09:06


Ralf Jansen - Mi 31.10.18 14:29

Das zu optimieren ist Datenbankabhängig. Nur die Info ADO hilft leider nicht um was besseres vorzuschlagen.
ADO ist darauf getrimmt allgemein zu sein damit es gegen jede Datenbank (mit ADO Treiber) funktioniert. ADO ist clientseitig und darum ist der kleinste gemeinsame Nenner Commands einzeln auszuführen auch wenn bestimmte Datenbanken mehr bzw. anderes auch können.

Üblicherweise unterstützen die meisten Datenbank ein Bulk Insert Feature (das ist proprietär und daher über ADO meist nicht direkt erreichbar).
Manche Datenbank kennen auch einen INSERT Syntax der mehrere VALUES Listen zu läßt, etwa INSERT INTO Table(Columns) VALUES (DataForRow1), (DataForRow2). Das wäre als ADO Command absetzbar ist dann aber Datenbank spezifischer Syntax.