![]() |
AW: max. Länge einer SQL Anweisung?
Bei einer ähnlichen Problematik hat die Query so lange gebraucht, dass der Timeout zugeschlagen hat (auch MSSql).
Nachdem das über eine temporäre Tabelle läuft, ist es etliches schneller. Es handelt sich dabei um getestete 60.000 Ids. Subquery ging nicht, da es sich um die manuell getätigte Auswahl des Benutzers handelt. |
AW: max. Länge einer SQL Anweisung?
Zitat:
Ich weiß schon: Anzeige von 60.000 Möglichkeiten und ein Button 'Alles auswählen', oder? |
AW: max. Länge einer SQL Anweisung?
Zitat:
Gruß K-H |
AW: max. Länge einer SQL Anweisung?
"Zusammengeklickt und lässt sich nicht durch Subquery oder ><=... zu erschlagen" ist immer relativ.
Delphi-Quellcode:
Über eine em SQL Server angelegte Stored Procedure kann man das Ganze noch weiter tunen ...
Pseudocode Delphi:
var selectedIDs:TList<derIdTyp> := TList<derIdTyp>.create; for i:=0 to LangeAuswahlliste.items.count -1 do begin if LangeAuswahlliste[i].checked then selectedIDs.add(LangeAuswahlliste[i].id); end; // SQL für InnerSelect TEMP Table SQL_AufbereitungInnerSelect := ''; for id in selectedIDs do begin SQL_AufbereitungInnerSelect := SQL_AufbereitungInnerSelect + 'Insert into #SelectedIDs (ID) Values('''+id.ToString+''')' +#13#10; end; // SQL Datenabruf SQL_Datenabruf := 'BeginTransaction; ' +#13#10+ SQL_AufbereitungInnerSelect + 'SELECT * FROM Tabelle T WHERE T.ID IN (SELECT ID FROM #SelectedIDs)'; +#13#10+ 'EndTransaction; ' +#13#10+ |
AW: max. Länge einer SQL Anweisung?
Zitat:
Steht ja alles da, ohne Sarkasmus, ohne Witz. Da es eigentlich nicht sein kann, das irgendwer 60.000 Checkboxen anklickt, habe ich ja wohl eine Möglichkeit aufgezeigt, wie so etwas entstehen kann. Und deine 200-300 Checkboxen, die "wohlgemerkt nicht durch subquery oder ><=... zu erschlagen" sind, würde ich -zumindest wenn ich die Möglichkeit hätte- komplett in die Tonne treten. Und da wäre ich nicht der Einzige. Es mag -wie immer (und bitte gehe nicht schon wieder mit irgendwelchen Sonderfällen darauf ein)- Ausnahmen geben, aber in der Regel wird man diese 200-300 Checkboxen nicht jedesmal komplett neu gewürfelt individuell anklicken (wer hat den die Zeit dazu?), sondern eher in 'Templates', 'Gruppen' o.ä. zusammenfassen. Ich warte übrigens immer noch auf ein konkretes Beispiel, wo das nicht so ist, denn ich lerne immer wieder gerne dazu. So, nun bist Du wieder dran. Gähn. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:29 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