AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Die Zeilen eines TMemo in die Datenbank (Tabelle) speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Die Zeilen eines TMemo in die Datenbank (Tabelle) speichern

Ein Thema von LOMBI · begonnen am 7. Sep 2007 · letzter Beitrag vom 21. Sep 2007
Antwort Antwort
Seite 2 von 2     12   
LOMBI
(Gast)

n/a Beiträge
 
#11

Re: Die Zeilen eines TMemo in die Datenbank (Tabelle) speich

  Alt 15. Sep 2007, 10:43
Hallo marabu,

habe die Tabelle für Textbausteine entsprechend deiner Anweisung geändert.
Mit den beiden Codes schreibe ich in das TMemo1 bzw. lese aus:

Delphi-Quellcode:
procedure TFmTBS.BtnSpeichernClick(Sender: TObject);
var
  FileStream: TFileStream;
  BlobStream: TStream;
begin
    ...
    Edit;
    FileStream := TFileStream.Create('TBS.Txt',fmOpenRead or fmOpenWrite);
    BlobStream := CreateBlobStream(FieldByName('Text'),bmWrite);
    Memo1.Lines.SaveToStream(BlobStream); //Textbaustein, Text-ID 1 schreiben;
    FileStream.Free;
    BlobStream.Free;
   Post;
end;

procedure TFmTBS.FormCreate(Sender: TObject);
...
  Edit;
  FileStream := TFileStream.Create('TBS.Txt',fmOpenRead or fmOpenWrite);
  BlobStream := CreateBlobStream(FieldByName('Text'),bmRead );
  Memo1.Lines.LoadFromStream(BlobStream); //Textbaustein, Text-ID 1 lesen;
    ...
  end;
end;
1.) Stimmen die Codes?
2.) TBS.Txt ließ sich nicht automatisch erzeugen und mußte manuell hinzugefügt werden.
3.) Wie schreibe/lese ich die Texte für TMemo2 usw. auf der gleichen FmTBS?

Vielen Dank vorab für die Antwort.

Gruß
Lombi
  Mit Zitat antworten Zitat
marabu

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

Re: Die Zeilen eines TMemo in die Datenbank (Tabelle) speich

  Alt 15. Sep 2007, 11:37
Hallo Lombi,

dein Code mag syntaktisch korrekt sein, aber ob er tut was du willst ist ohne Kenntnis deines Konzeptes nicht prüfbar.

Ich vermute, dass du eine Form zur Pflege der Textbausteine hast. Wenn du das Lesen eines Textbausteins dann beim FormCreate() erledigst, dann ist das vielleicht nicht so toll.

Ich stelle mir eine solche Form eher so vor: In einem Memo kann der Baustein-Text bearbeitet werden. Eine ListBox stellt die Baustein-Namen zur Verfügung. Durch Auswahl eines Namens wird der entsprechende Baustein-Text in das Memo geladen. Bei Änderungen werden zwei Buttons ("Speichern" und "Zurücksetzen") aktiviert, deren Funktionalität du unschwer erkennen kannst. Zwei weitere Buttons ("Neu" und "Löschen") komplettieren die Benutzerschnittstelle.

Ich würde zwei Methoden ("LoadText" und "SaveText") entwerfen, die den Transport der Daten zwischen Memo und Datenbank erledigen. Dabei muss entschieden werden, ob man mit einem langlebigen oder einem kurzlebigen Cursor auf dem DataSet arbeiten möchte. Langlebig bedeutet, dass die Datenbank-Tabelle während der Lebensdauer der Form offen gehalten wird, ein kurzlebiger Cursor wird nach jeder Operation sofort wieder freigegeben. Im ersten Fall würde ich eine Table-Komponente einsetzen, im letzten eine Query. Da ich von einer überschaubaren Datenmenge ausgehe, halte ich hier die Table-Lösung für angemessen.

Freundliche Grüße
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#13

Re: Die Zeilen eines TMemo in die Datenbank (Tabelle) speich

  Alt 15. Sep 2007, 16:28
Anbei ein kleines Demöchen... nix besonderes und auch nicht unbedingt sauber ausgeproggt, aber zur VEranschaulichung und weiteren Experimenten sollte es genügen
Angehängte Dateien
Dateityp: zip blob_demo_111.zip (659,5 KB, 19x aufgerufen)
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#14

Re: Die Zeilen eines TMemo in die Datenbank (Tabelle) speich

  Alt 20. Sep 2007, 15:56
Hallo,

bei Klick auf eine Textbez in der Listbox muß der entsprechende Textinhalt in die Memo geladen werden.
Wie bekomme ich bitte diese Verbindung?
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#15

Re: Die Zeilen eines TMemo in die Datenbank (Tabelle) speich

  Alt 21. Sep 2007, 11:04
Nun...relativ einfach:

1. im OnActivate des Formulares die Listbox.Items mit dem Inhalt der Textbaustein-Tabelle laden (analog der ComboBox in der Demo)
2. im OnClick der Listbox die ID des Textbausteines herausfrickeln (analog ComboBoxClick in der Demo)
3. ID in der Tabelle suchen, Stream erstellen und Inhalt des Tabellenfeldes in das Memo streamen ...

That's it Oder bin ich auf dem falschen Gleis? Denke eher nicht
  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 11:41 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