Entwickler-Ecke

Datenbanken - Memofeld leeren


colaka - Mo 02.01.12 09:21
Titel: Memofeld leeren
Hallo,

ich möchte eine Tabelle durchlaufen und bei Bedarf ein Memofeld leeren. Das habe ich so versucht:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TFArtID.Button1Click(Sender: TObject);
begin
  DatMod.TAID.First;
  while not DatMod.TAID.Eof do
  begin
    if DatMod.TAIDTextfeld.BlobSize > 0 then
    begin
      if MessageDlg('Soll das Textfeld geleert werden?', mtInformation, [mbYes, mbNo], 0) = mrYes then
      begin
        DatMod.TAID.Edit;
        DatMod.TAID['Textfeld'] := '';
        DatMod.TAID.Post;
      end;
    end;
    Application.ProcessMessages;
    DatMod.TAID.Next;
  end;
end;


Es ist egal, ob ich ja oder nein sage, das Memofeld wird nicht geleert. Leider kann ich mir das nicht erklären.

Für Hinweise wäre ich sehr dankbar.


zuma - Mo 02.01.12 10:01

Ich versuchs mal, obwohl da reichlich wenig infos sind ;)
(welche DB, TAID = ?, DatMod = ?)

versuch mal folgendes


Delphi-Quelltext
1:
DatMod.TAID.FieldByName('Textfeld').AsString := '';                    


Zuma


bummi - Mo 02.01.12 10:24

naja wenn "leeren" ansteht dann besser

Delphi-Quelltext
1:
DatMod.TAID.FieldByName('Textfeld').Clear;                    


colaka - Mo 02.01.12 10:28

Hallo,

damit geht es leider auch nicht.

Die Tabelle wird durchlaufen, und es kommt auch bei jedem Feld mit Inhalt die Abfrage, aber der Inhalt wird nicht gelöscht.

Um die Fragen zu beantworten:
DB = Paradox
TAID = Tabellenname
DatMod = Datenmodul

Trotzdem vielen Dank für Eure Bemühungen.


zuma - Mo 02.01.12 10:33

ähm, mal ganz doof gefragt:
Die Tabelle ist auch für den schreibenden Zugriff geöffnet ?


colaka - Mo 02.01.12 10:36

ich denke, wenn edit und post klaglos akzeptiert wird, muß die Tabelle doch wohl geöffnet sein. Oder wie soll ich das machen?


zuma - Mo 02.01.12 10:42

geöffnet wird die Tabelle schon sein, sonst könnteste ja nich mal durchlaufen ;)
Aber ich kenn das so, das ich eine Tabelle lesend und/oder schreibend öffnen kann.
Nur weil ein Edit/Post geht, heisst das nicht unbedingt, das die Tabelle schreibend geöffnet wurde (Stichwort cachen).
Kannst du den Text im Blob denn ändern ?

Ich kenn mich mit Paradox nicht aus, arbeite mit anderer DB, also stochere ich auch ein wenig im dunkeln.

Zuma