Laden...

Wie kann ich Attachments aus meiner Access DB löschen?

Erstellt von Fiech vor 3 Jahren Letzter Beitrag vor 3 Jahren 1.010 Views
F
Fiech Themenstarter:in
45 Beiträge seit 2009
vor 3 Jahren
Wie kann ich Attachments aus meiner Access DB löschen?

verwendetes Datenbanksystem: Access 2007-2010

Hallo ich habe ein Problem beim löschen von Attachments aus meiner Datenbank, lesen und schreiben funktioniert einwandfrei.

Ich habe das Löschen folgendermaßen versucht da ich das auf einigen Webseiten in VB.net so gefunden habe:

 rstMain = db.OpenRecordset("SELECT * FROM Nodes WHERE ID=" + ID, RecordsetTypeEnum.dbOpenSnapshot);
            rstAttach = rstMain.Fields["Dateien"].Value;         
            while (!rstAttach.EOF)
            {
                rstAttach.Delete();
                rstAttach.MoveNext();
            }          

            rstAttach.Update();
            rstAttach.Close();
            rstMain.Update();
            rstMain.Close();    

Jedoch bekomme ich in der Zeile rstAttach.Delete(); den FEhler Operation wird für diesen Objekttyp nicht unterstützt.

Kann mir jemand bitte weiterhelfen wie ich Dateien aus der Datenbank löschen kann.

2.223 Beiträge seit 2005
vor 3 Jahren

Hallo Fiech,

zum löschen von verschiedenen Datensätzen, wäre ein Delete Statement wohl die bessere Variante.

https://docs.microsoft.com/de-de/office/client-developer/access/desktop-database-reference/delete-statement-microsoft-access-sql

Viele Grüße
Lars

F
Fiech Themenstarter:in
45 Beiträge seit 2009
vor 3 Jahren

Hallo Lars

Ich möchte nicht den ganzen Datensatz löschen ich möchte nur alle Attachments eines Datensatzes löschen. Um einen ganzen Datensatz zulöschen ist ein Delete Statement besser da gebe ich dir recht.

W
955 Beiträge seit 2010
vor 3 Jahren

Da steht RecordsetTypeEnum.dbOpenSnapshot. Hört sich nach Readonly-Modus an.

F
Fiech Themenstarter:in
45 Beiträge seit 2009
vor 3 Jahren

Danke witte

Ein kleines Detail übersehen das habe ich geändert jetzt funktioniert es. Danke!

rstMain = db.OpenRecordset("SELECT * FROM Nodes WHERE ID=" + ID, RecordsetTypeEnum.dbOpenDynaset);
            rstAttach = rstMain.Fields["Dateien"].Value;
           
            while (!rstAttach.EOF)
            {
                rstAttach.Delete();
                rstAttach.MoveNext();
            }     
           
            rstAttach.Close();          
            rstMain.Close();

Hier noch der Funktionierende Code falls dieser Thread jemanden anderen noch hilft.