Re: DBImage-Felder leeren, nicht löschen
Verweisen die anderen Tables auf die selbe Datenbanktablle?
|
Re: DBImage-Felder leeren, nicht löschen
Hallo,
vergiss das blöde TTable. Nimm eine Query. Query.SQL.Add('Update Table1 Set Blob_Field=NULL Where Id=5'); Query.ExecSQL; Id=5 ist jetzt mal geraten ;) Heiko |
Re: DBImage-Felder leeren, nicht löschen
An mkinzler:
Ja die Tables weisen auf dieselbe Datenbank. |
Re: DBImage-Felder leeren, nicht löschen
Liste der Anhänge anzeigen (Anzahl: 1)
Wie geht das mit Query ?
Id=5 ? was ist das ? Ich kenn mich mit query nicht gut aus. Meine Basisdatenbank besteht aus ca. 950 Datensätzen. Ich hab ein Input-Blatt, wo ich Bilder absave. Ich möchte einfach die Bilder aus der Datenbank entfernen, ohne den gesamten Datensatz (z.B.) Nr.567 zu löschen. Ich navigiere mit dem DBNavigator durch die Datenbank und zeige die BLOB-Felder dann mit DBImage an. Ich möchte einfach bei allen 6 Bildern ein Button setzen, der mir das Bild leert (nicht löscht). Ich hab ein Screenshot des Inputs zur Verständisklärung beigefügt. Gruss Spargeltarzan |
Re: DBImage-Felder leeren, nicht löschen
Sollen die Bilder nur am Bildschirm geleert werden oder auch aus der DB entfernt?
|
Re: DBImage-Felder leeren, nicht löschen
Hallo,
Id ist der Primär-Schlüssel der Tabelle. Irgendwie muss die Query ja wissen, was sie leeren soll. Nehmen wir mal an, Table1 ist mit dem DataSet verbunden.
Delphi-Quellcode:
var
Query: TQuery; begin Query:= TQuery.Create(NIL); try with Query do begin SQL.Clear; SQL.Add('Update Table1 Set Blob_Field=NULL Where Id=:Id'); ParamByName('Id').AsInteger:= Table1.FieldByName('Id').AsInteger; ExecSQL; end; finally Query.Free; end; // ev. das hier noch Table1.Refresh; end; Heiko |
Re: DBImage-Felder leeren, nicht löschen
Vom Bildschirm und aus der DB, aber der Datensatz sollte nicht gelöscht werden (wie mit Delete vom Navigator).
Methode: Table1.ClearFields Also igendwie kann ich diese Standardanweisung zum leeren (löschen) nicht anwenden, weil die Datenbank irgendwo in Gebrauch ist (daher die Meldung: Record locked, db used by another user). Ich habe viele Tables in Gebrauch, muss ich alle Tables auf active:=false setzen ? Das wäre aber nicht gut, denn ich habe viele Units und dann müsste ich bei jedem Aufruf die Eigenschaft active auf true stellen. |
Re: DBImage-Felder leeren, nicht löschen
Nur so eine Idee:
Delphi-Quellcode:
DBImage.Datasource := nil;
|
Re: DBImage-Felder leeren, nicht löschen
Hallo,
1. was ist mit meiner Query ? 2. Schreibe dir eine Methode OpenTable, die jede unit aufruft. Dein Code ist ene schönes Bsp. wie amn es nicht macht ;) OK, habe ich früher auch so gemacht. Die TTable darf nur an genau einer Stelle stehen, z.B. in einer Datenklasse. Jede weitere Unit hat diese Klasse zu benutzen. Heiko |
Re: DBImage-Felder leeren, nicht löschen
An Heiko
Ja ich weiss, ich hätte ein Daten-Modul einbinden sollen, mit einer Table und einer Datasource. Aber das ist jetzt zu spät. Wie meinst du das: eine Methode OpenTable schreiben ? Ich kappier gar nichts mehr. Gruss Spargeltarzan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz