Autor Beitrag
Bronstein
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Mi 31.10.18 08:21 
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

ausblenden 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

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4387
Erhaltene Danke: 885


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 31.10.18 13: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.