AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi DBImage-Felder leeren, nicht löschen
Thema durchsuchen
Ansicht
Themen-Optionen

DBImage-Felder leeren, nicht löschen

Ein Thema von Spargeltarzan · begonnen am 17. Aug 2009 · letzter Beitrag vom 21. Aug 2009
Antwort Antwort
Seite 2 von 3     12 3      
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: DBImage-Felder leeren, nicht löschen

  Alt 19. Aug 2009, 22:30
Verweisen die anderen Tables auf die selbe Datenbanktablle?
Markus Kinzler
  Mit Zitat antworten Zitat
hoika
Online

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: DBImage-Felder leeren, nicht löschen

  Alt 19. Aug 2009, 23:07
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
Heiko
  Mit Zitat antworten Zitat
Spargeltarzan
(Gast)

n/a Beiträge
 
#13

Re: DBImage-Felder leeren, nicht löschen

  Alt 20. Aug 2009, 04:51
An mkinzler:

Ja die Tables weisen auf dieselbe Datenbank.
  Mit Zitat antworten Zitat
Spargeltarzan
(Gast)

n/a Beiträge
 
#14

Re: DBImage-Felder leeren, nicht löschen

  Alt 20. Aug 2009, 05:07
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
Angehängte Grafiken
Dateityp: bmp save_150.bmp (2,54 MB, 4x aufgerufen)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: DBImage-Felder leeren, nicht löschen

  Alt 20. Aug 2009, 06:34
Sollen die Bilder nur am Bildschirm geleert werden oder auch aus der DB entfernt?
Markus Kinzler
  Mit Zitat antworten Zitat
hoika
Online

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: DBImage-Felder leeren, nicht löschen

  Alt 20. Aug 2009, 08:27
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
Heiko
  Mit Zitat antworten Zitat
Spargeltarzan
(Gast)

n/a Beiträge
 
#17

Re: DBImage-Felder leeren, nicht löschen

  Alt 21. Aug 2009, 05:31
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#18

Re: DBImage-Felder leeren, nicht löschen

  Alt 21. Aug 2009, 13:08
Nur so eine Idee:DBImage.Datasource := nil;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
hoika
Online

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: DBImage-Felder leeren, nicht löschen

  Alt 21. Aug 2009, 13:38
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
Heiko
  Mit Zitat antworten Zitat
Spargeltarzan
(Gast)

n/a Beiträge
 
#20

Re: DBImage-Felder leeren, nicht löschen

  Alt 21. Aug 2009, 16:37
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:34 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