AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Memofeld in Tabelle schreiben?
Thema durchsuchen
Ansicht
Themen-Optionen

Memofeld in Tabelle schreiben?

Ein Thema von Borschti · begonnen am 31. Mär 2008 · letzter Beitrag vom 3. Apr 2008
Antwort Antwort
Seite 2 von 2     12   
Borschti

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

Re: Memofeld in Tabelle schreiben?

  Alt 1. Apr 2008, 10:10
Ok, Ich glaub Ich hab die Fehlermeldung jetzt verstanden ~~

Anscheind kann das Blobfeld nur gelesen aber nich bearbeitet werden, wie kann man das denn ändern? Oder geht das vielleicht garnicht?

mfg
Alex
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#12

Re: Memofeld in Tabelle schreiben?

  Alt 1. Apr 2008, 10:38
Delphi-Quellcode:
table.edit;
TBlobfield(table.fieldbyname('anyblob')).loadfromstream(anystream);
table.post;
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
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, 12: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
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#14

Re: Memofeld in Tabelle schreiben?

  Alt 1. Apr 2008, 12:21
Kein Wunder, dass du nichts in das Feld schreiben kannst: Ich hatte in meinem ursprünglichen Code THEN und ELSE vertauscht, es aber nach dem Hinweis von Peinhard korrigiert. Du musst dir einfach nochmal den Code in Beitrag #7 anschauen.
  Mit Zitat antworten Zitat
Borschti

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

Re: Memofeld in Tabelle schreiben?

  Alt 1. Apr 2008, 12:27
Hmm hatte Ich schon verändert, aber es geht trotzdem nicht.
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#16

Re: Memofeld in Tabelle schreiben?

  Alt 1. Apr 2008, 12:58
steht denn in Memo1.Text überhaupt etwas drin? Ersetze mal die folgende Zeile
VddTable1.FieldByName('Langtext').Value := Memo1.Text; mit
VddTable1.FieldByName('Langtext').Value := 'hallo Welt'; Wenn jetzt immer noch nichts in Langtext drinsteht, gibt es eine größeres Problem, ansonsten stimmen einfach deine Routinen zur reformatierung des Textes nicht.
Wenn du nicht weiter kommst, extrahiere das ganze in ein kleines Projekt, packe es zusammen mit den Tabellen und lade es hier hoch. Vielleicht können wir dann gemeinsam debuggen
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Borschti

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

Re: Memofeld in Tabelle schreiben?

  Alt 1. Apr 2008, 13:53
Danke für den Tipp, hatte das auch schon Probiert, mir ist aber auch grade aufgefallen das ich Memo1 statt Memo2 genommen hatte, in Memo1 stehn ja die unveränderten Inhalte drinne und werden dann mit Trim() in Memo2 ausgegeben, also war es klar das keine Veränderten Feldinhalte übertragen werden konnten, Ich konnte es aber immernoch nicht testen weil aufeinmal mein Notebook wirklich richtig lahm ist, bei den ersten Datensätzen isser noch recht schnell dann wird er immer langsamer bis er sich letzten Endes ganz aufhängt, muss erstmal gucken was da los ist, habs schonmal an einem anderen Rechner ausprobiert, dort klappt es zumindest mit der Geschwindigkeit 1a

Also werde mich dann nochmal melden wenn ich noch weitere Probleme mit dem Thema hab und mein Notebook es endlich wieder auf die Reihe bekommt.

mfg
Alex
  Mit Zitat antworten Zitat
Borschti

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

Re: Memofeld in Tabelle schreiben?

  Alt 3. Apr 2008, 10:07
Also das Problem hat sich erledigt, es hing an dem Tabellenfeld welches in dem Programm auf das das Memofeld angewendet wird, ist in den älteren Versionen anders als in den neueren und deswegen konnte man im Endeffekt auch keinen Unterschied erkennnen.

Danke nochmal für die ganze hilfe
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 07:39 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