Hallo!
Ich habe eine Software, die über ADO auf eine Access Datenbank zugreifft.
Bei allen meinen Test PCs klappt es super und auch bis jetzt bei ALLEN Kunden.
Allerdings meldet sich jetzt genau 1 Kunde mit folgender Fehlermeldung :
Der Vorgang ist für ein geschlossenes Objekt nicht zugelassen.
Ich kann diese einfach nicht reproduzieren, geschweige denn verstehen.
Laut google sollte folgenden Befehl ausführen oder aktivieren: "SET NOCOUNT ON"
Das verstehe ich nun aber erst recht nicht.
Wer kann helfen?
Ich vermute, es liegt an dieser function, die aber bei allen Kunden läuft... (einwenig gekürzt)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| procedure massUpdate(ado:TADOconnection; prog: TPGBar; sqls: TStringlist); var k, zahl: longint; sql, f: string; ado_c : TADOCommand; begin ado_c := TADOCommand.Create(nil); ado_c.Connection:=ado; ado.BeginTrans; Try for zahl := 0 to sqls.count - 1 do begin if sqls[zahl]<>'' then begin sql := sqls[zahl]; ado_c.CommandText:=sql; try ado_c.Execute(); except showmessage(sql);end; end; if k = 100 then begin k := 0; application.ProcessMessages; if prog<>NIL then prog.Position := zahl; end; end; finally ado.CommitTrans; ado_c.Free; End; end; |
Viele Grüße!