![]() |
Datenbank: MSSQL • Version: 2000 • Zugriff über: Borland.ADO
ADO Fehlermeldung - "aus mehreren Schritten OLE DB-Vorg
Moin
ich greife mittels ADODatasets auf eine MSSQL Datenbank zu. Wenn ich jetzt viele Datensätze bearbeite (ca. 50000) tritt gelegentlich der Fehler: Zitat:
Die Anwendung ist nicht multithreaded bzw. das Programm läuft nur im VCL Thread. die datasets werden zur laufzeit erstellt. Was erzeugt genau die Fehlermeldung? Wie kann ich den Fehler verhindern? [edit] OS: XP SP2 |
Re: ADO Fehlermeldung - "aus mehreren Schritten OLE DB-
ich konnte inzwischen den fehler auf ein sql reduzieren.
dieser fehlermeldung kommt von ado dann, wenn innerhalb des sql's welches ausgeführt werden soll, eine (oder mehrere) funktionen/ stored procedures aufgrufen werden und ein tieferer func/proc aufruf fehl schlägt. im sql-query analyser wird dann meist der richtige fehler angezeigt. |
Re: ADO Fehlermeldung - "aus mehreren Schritten OLE DB-
Auch wenn Du das Problem gelöst hast, solltest Du verstehen, wie ADO die Rückgaben vom SQL-Server interpretiert (weist Du ja vielleicht sogar schon).
Jedes Select erzeugt mindestens eine Meldung 'xy Rows affected', selbt bei einem "SELECT @foo = 1". ADO interpretierte diese Meldung nach einem INSERT/UPDATE/DELETE, ob die Operation überhaupt funktioniert hat. Deshalb sollte man IMMER in Triggern als erste Zeile ein 'Set nocount on' machen, damit nämlich die o.g. Meldung unterdrückt wird. Nun ist die Welt in Ordnung: ADO macht z.B. ein INSERT (eine Zeile) und wartet auf die Meldung '1 rows affected'. Wenn das kommt, ist ADO zufrieden. Wenn Du also INSERT-Trigger hast, gleich erstmal in 'set nocount on', 'set nocount off' klammern. Danach wird die ADO-Fehlermeldung vermutlich anders aussehen, vielleicht siehst Du dann sogar die richtige Fehlermeldung. Auf jeden Fall ist die Welt dann in Ordnung. Ganz fies wird es bei 'updatable Views', bei denen das automatische Update/Insert/Delete durch einen 'Instead of'-Trigger ausgeschaltet ist ('CREATE TRIGGER foobar ON MyView INSTEAD OF INSERT...') Dann MUSST Du die o.g. Meldung irgendwie erzeugen, damit ADO weiss, das die Operation funktioniert hat. |
Re: ADO Fehlermeldung - "aus mehreren Schritten OLE DB-
|
Re: ADO Fehlermeldung - "aus mehreren Schritten OLE DB-
lustig, wollte eigendlich nur nochmal das ergebnis meiner offen frage zusammen fassen und diese als erledigt markieren.
nach ca. 6 monaten (einstelldatum: 22.06.2005) weiss plötzlich jeder von dem problem und hat vorschläge. die getalladoerrors werde ich mal mir anschauen. danke |
AW: ADO Fehlermeldung - "aus mehreren Schritten OLE DB-Vorgang"
OK ist etwas älter, aber da mir dieser Fehler in letzter Zeit auch des öfteren über den Weg gelaufen ist...
Er bedeutet, das irgendein Wert/String außerhalb der vorgegebenen Begrenzungen liegt. Dies kann z.B. so hervorgerufen werden
Code:
oder aber auch durch einen "ungewöhnlichen" Datumswert
select ID||'und jetzt kommt gaanz viel 100-200 Zeichen Text'
Code:
zurückgegeben wird
SELECT ..,to_char(MyDATE)...
Code:
Gruß
0004-11-11 00:00:00
K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 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