Announcement

Collapse
No announcement yet.

Grrr - TMemo in Memofeld einer Paradox-Tabelle

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Grrr - TMemo in Memofeld einer Paradox-Tabelle

    Moin,
    ich bekomme ne Krise! Kann mir jemand sagen, wie ich die Daten aus einem .db-Memo in ein TMemo und vor allem aus TMemo speichern kann.
    Wenn ich erstmalig einen Satz per SQL speichere klappts. Sobald ich den wieder einlese und anzeige (wohlgemerkt TMemo NICHT TDBMemo!) zeigt er den Inhalt an speichert aber keine Änderungen mehr - egal, ob mittels Update oder Insert!
    RW

  • #2
    Hallo,

    für diese Aufgabe gibt es verschiedene Lösungswege:
    <pre>
    { ************************************************** **************
    Source File Name : BLOBQueryMainForm.PAS
    Typ : Formular-Unit
    Autor : Andreas Kosch
    Erstellt am : 03.08.97
    Compiler : Delphi 3.0
    Betriebssystem : Windows 95
    Beschreibung : BLOB-Feld einer Paradox-Tabelle via TQuery
    updaten. In diesem Fall werden drei direkte
    Updates via SQL vorgestellt:
    - AsMemo
    - SetBlobData
    - LoadFromFile
    Revisionen :
    ************************************************** ************** }

    unit BLOBQuery2MainForm;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    Db, StdCtrls, ComCtrls, DBCtrls, Mask, ExtCtrls, DBTables;

    type
    TFormMain = class(TForm)
    QueryBLOB: TQuery;
    Table1: TTable;
    DataSource1: TDataSource;
    RichEdit1: TRichEdit;
    Table1Hinweis: TStringField;
    Table1RTFMemo: TBlobField;
    QueryBLOBHinweis: TStringField;
    QueryBLOBRTFMemo: TBlobField;
    Splitter1: TSplitter;
    Panel1: TPanel;
    ButtonAsMemo: TButton;
    Panel2: TPanel;
    DBRichEdit1: TDBRichEdit;
    Panel3: TPanel;
    DBNavigator1: TDBNavigator;
    DBEdit1: TDBEdit;
    ButtonSetBlobData: TButton;
    ButtonLoadFromFile: TButton;
    procedure ButtonAsMemoClick(Sender: TObject);
    procedure ButtonSetBlobDataClick(Sender: TObject);
    procedure ButtonLoadFromFileClick(Sender: TObject);
    private
    { Private-Deklarationen }
    public
    { Public-Deklarationen }
    end;

    var
    FormMain: TFormMain;

    implementation

    {$R *.DFM}

    (* QueryBLOB.SQL = UPDATE rtfmemo
    SET RTFMemo = :mRTFMemo
    WHERE Hinweis = :sHinweis

    QueryBLOB.Params = mRTFMemo : BLOB
    sHinweis : String

    Alle drei Varianten verwenden die gleiche QueryBLOB-
    Konfiguration. *)

    procedure TFormMain.ButtonAsMemoClick(Sender: TObject);
    begin
    with QueryBLOB do
    begin
    // Update-Variable via AsMemo-Zuweisung füllen
    Params[0].AsMemo := RichEdit1.Lines.Text;
    // Primärschlüssel des ausgewählten Datensatzes übergeben
    Params[1].Value := Table1Hinweis.AsString;
    ExecSQL;
    end;
    // zur Kontrolle die Anzeige via TTable aktualisieren
    Table1.Refresh;
    end;

    procedure TFormMain.ButtonSetBlobDataClick(Sender: TObject);
    var
    pBlobText : PChar;
    begin
    with QueryBLOB do
    begin
    // Old-Fashion-Way über einen PChar
    pBlobText := RichEdit1.Lines.GetText;
    Params[0].SetBlobData(pBlobText, Length(pBlobText));
    // Primärschlüssel des ausgewählten Datensatzes übergeben
    Params[1].Value := Table1Hinweis.AsString;
    ExecSQL;
    end;
    Table1.Refresh;
    end;

    procedure TFormMain.ButtonLoadFromFileClick(Sender: TObject);
    const
    sDOCName = 'C:\ablage\d3fs.htm';
    begin
    with QueryBLOB do
    begin
    // direkt aus einer externen Datei importieren
    Params[0].LoadFromFile(sDOCName, ftBlob);
    // Primärschlüssel des ausgewählten Datensatzes übergeben
    Params[1].Value := Table1Hinweis.AsString;
    ExecSQL
    end;
    Table1.Refresh;
    end;

    end.
    </pre&gt

    Comment

    Working...
    X