Einzelnen Beitrag anzeigen

Borschti

Registriert seit: 1. Nov 2007
Ort: Marburg Lahn
235 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Memofeld in Tabelle schreiben?

  Alt 1. Apr 2008, 11:11
Danke erstmal, also die Fehlermeldung ist zumindest schonmal weg, aber das alte Problem das es nicht auf die Tabelle übertragen wird besteht immernoch

Hier ist mal mein derzeitiger Code, mir fällt einfach nicht auf woran es liegen kann, es wird mir auch nichts angezeigt warum es nicht auf die Tabelle übertragen wird...

Delphi-Quellcode:
var
  ms: TStream;
  sl: TStrings;
  n, nTotal: Integer;
begin
  ms := TMemoryStream.Create;
  sl := TStringList.Create;
  nTotal := 0;


  with VddTable1 do
    while not Eof do
    begin
      TBlobField(FieldByName('Langtext')).SaveToStream(ms);
      ms.Position := 0;
      sl.LoadFromStream(ms);
      n := sl.Count;
      sl.Text := Trim(sl.Text);
      Inc(nTotal, n - sl.Count);
      ms.Size := 0;
      sl.SaveToStream(ms);
      ms.Position := 0;
      Edit;
      if sl.Count > 0
        then
          VddTable1.FieldByName('Langtext').Clear
        else begin
          Edit;
          TBlobfield(VddTable1.FieldByName('Langtext')).LoadFromStream(ms);
          Post;
          Next;
        end;
    end;

  sl.Free;
  ms.Free;

end;
Das wäre Marabus Variante, so wollte ich es probieren:

Delphi-Quellcode:
var zwischS1, zwischS2, i, zaehler2, zaehler : Integer;
begin

 zwischS1 := 0;
 zwischS2 := 0;
 zaehler2 := 0;
 zaehler := 0;
 Memo1.Clear;
 Memo2.Clear;
 VddTable1.First;
 VddTable1.Edit;

 for i := 0 to vddTable1.RecordCount-1 do
   begin
     Memo1.Clear;
     Memo1.Text := VddTable1.FieldByName('Langtext').asstring;
     zwischS1 := Memo1.Lines.Count + zwischS1;
     Memo2.Text := Trim(Memo1.text);
     zwischS2 := Memo2.Lines.Count;
     zaehler := zwischS1 - zwischS2;
     zaehler2 := zaehler2 + zaehler;
     VddTable1.Edit;
     VddTable1.FieldByName('Langtext').Value := Memo1.Text;
     VddTable1.Post;
     vddTable1.Next;
   end;
Beide schreiben nichts in meine Tabelle obwohl sie die eigentliche Aktion ausführen. Mir ist aufgefallen das Ich nur nichts ins Langtextfeld(vom Typ Memo) schreiben kann, wie schon gesagt, in das Feld Bezeichnung welches vom Typ Character ist, konnte Ich mit der gleichen Anweisung etwas reinschreiben(es wurde auch direkt auf die Tabelle übertragen).

Ich denke es liegt an dem Feldtypen...aber genau sagen kann Ichs nicht =(

Vielleicht muss man den Code direkt auf diesen Feldtypen anpassen, hoffe jemand kennt sich damit besser aus als Ich

Trotzdem nochmal vielen Dank für eure viele Hilfe.

mfg
Alex
  Mit Zitat antworten Zitat