AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi HowTo: PDF oder HTML Dokumente in Paradox Datenbank ablegen?
Thema durchsuchen
Ansicht
Themen-Optionen

HowTo: PDF oder HTML Dokumente in Paradox Datenbank ablegen?

Ein Thema von hacki · begonnen am 24. Feb 2004 · letzter Beitrag vom 17. Jun 2004
Antwort Antwort
Seite 1 von 2  1 2      
hacki

Registriert seit: 15. Nov 2002
96 Beiträge
 
Delphi XE5 Professional
 
#1

HowTo: PDF oder HTML Dokumente in Paradox Datenbank ablegen?

  Alt 24. Feb 2004, 10:29
Hallo,

ich möchte gerne grafisch aufbereitete Dokumente wie z.B. PDF oder HTML- Dokumente so ablegen, daß der 0815-Anwender sie nicht einfach von der Festplatte kopieren kann. Für meine Applikation setze ich die Desktopdatenbank Paradox ein.

Die einfachste Möglichkeit wäre diese Dokumente irgendwie als BLOB - Feld in eine Tabelle rein schreiben zu können. Reine RTF-Dokumente reichen leider nicht aus, da sie keine Grafiken fassen können.

Bin momentan ratlos und suche dringend Euren RAT !!!

Danke und Grüsse
Hacki
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: HowTo: PDF oder HTML Dokumente in Paradox Datenbank able

  Alt 1. Mär 2004, 09:17
Hi Hacki,

also ich benutze Interbase, aber das Prinzip ist wohl das gleiche:

Delphi-Quellcode:
procedure irgendwas;
var
  MyStream : TStream;
  Image : TBitmap;
begin
    //Tabelle bearbeiten
    Table1.edit;

    //Bitmapobjekt erzeugen und aus Datei laden
    Image:=TBitmap.Create;
    Image.LoadFromFile('D:\Bilder\test.bmp');

    //einen Blobstream aus dem Tabellenfeld (Typ BLOB) erstellen
    MyStream:=Table1.CreateBlobStream(table1.FieldByName('BILD'),bmReadWrite);
    
    //Das Bild in den Stream speichern - das BLOB-Feld wird automatisch aktualisiert
    Image.SaveToStream(MyStream);

    //Allen Kram freigeben
    Image.Free;
    MyStream.Free;
    
    //Änderungen schreiben
    Table1.Post;
end
Ciao

Marco
Marco Warm
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: HowTo: PDF oder HTML Dokumente in Paradox Datenbank able

  Alt 1. Mär 2004, 09:32
Halt - ich hab noch was vergessen

Wenn der Dateityp nicht bekannt ist mag es sinnvoll sein die Datei in einen
Filestream zu laden und diesen in den BLOB-Stream zu kopieren

Delphi-Quellcode:
...
MyFileStream:=TFileStream.Create('c:\myfile.xyz',fmOpenRead);

MyStream.CopyFrom(MyFileStream, 0);
...
Ciao
Marco Warm
  Mit Zitat antworten Zitat
hacki

Registriert seit: 15. Nov 2002
96 Beiträge
 
Delphi XE5 Professional
 
#4

Re: HowTo: PDF oder HTML Dokumente in Paradox Datenbank able

  Alt 1. Mär 2004, 18:54
Hallo Marco,

danke für die Tips.

Welchen BLOB Typ muß ich in der Datenbank denn anlegen.

Soweit ich weiß gibt es doch unterschiedliche BLOB Deklarationen.

Werde es dann gleich ausprobieren.

Grüsse hacki
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: HowTo: PDF oder HTML Dokumente in Paradox Datenbank able

  Alt 2. Mär 2004, 05:37
Hi,

nun, wie gesagt, hab ich das in Paradox noch nie gemacht, aber laut

http://www.cpcug.org/user/clemenzi/t...ieldTypes.html

solltest du den Typ "Binary" nehmen.

Ciao

Marco
Marco Warm
  Mit Zitat antworten Zitat
hacki

Registriert seit: 15. Nov 2002
96 Beiträge
 
Delphi XE5 Professional
 
#6

Re: HowTo: PDF oder HTML Dokumente in Paradox Datenbank able

  Alt 2. Mär 2004, 20:48
Hallo Marco,

nun habe ich es ausprobiert:

Code:
procedure TForm1.Button2Click(Sender: TObject);
var
  MyStream : TStream;
  MyFileStream : TFileStream;
begin
    Table1.Open;

    Table1.Append;

     //Tabelle bearbeiten
    Table1.edit;

    MyFileStream:=TFileStream.Create('C:\download\test.pdf',fmOpenRead);

    MyStream := TStream.Create;

    MyStream.CopyFrom(MyFileStream, 0);

    //einen Blobstream aus dem Tabellenfeld (Typ BLOB) erstellen
    MyStream:=Table1.CreateBlobStream(table1.FieldByName('pdf'),bmReadWrite);

    MyStream.Free;

    //Änderungen schreiben
    Table1.Post;

    Table1.Close;
end;
Leiser erhalte ich in der Zeile:

Code:
MyStream:=Table1.CreateBlobStream(table1.FieldByName('pdf'),bmReadWrite);
Immer einen "abstract error" !?

Habe ich da etwas falsch gemacht ?

Wäre nett, wenn Du mir nochmal helfen könntest.

Danke und Grüsse
Hacki
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

Re: HowTo: PDF oder HTML Dokumente in Paradox Datenbank able

  Alt 3. Mär 2004, 05:34
Hi Hacki,

Der abstrakte Fehler kommt, da Du Versuchst direkt in ein als TStream erzeugten Stream
zu schreiben - das klappt aber nicht. Der Stream wird nämlich durch CreateBlobStream
erzeugt und somit dem Blob-Feld zugeordnet.

So klappts:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  MyStream : TStream;
  MyFileStream : TFileStream;
begin
    Table1.Open;

    Table1.Append;

     //Tabelle bearbeiten
    Table1.edit;

    MyFileStream:=TFileStream.Create('C:\temp\test.pdf',fmOpenRead);

    //einen Blobstream aus dem Tabellenfeld (Typ BLOB) erstellen
    MyStream:=Table1.CreateBlobStream(table1.FieldByName('pdf'),bmReadWrite);

    //Dateiinhalt in BLOB kopieren
    MyStream.CopyFrom(MyFileStream, 0);

    MyStream.Free;
    MyFileStream.Free;

    //Änderungen schreiben
    Table1.Post;

    Table1.Close;
end;
Hope this helps

Ciao

marco
Marco Warm
  Mit Zitat antworten Zitat
hacki

Registriert seit: 15. Nov 2002
96 Beiträge
 
Delphi XE5 Professional
 
#8

Re: HowTo: PDF oder HTML Dokumente in Paradox Datenbank able

  Alt 3. Mär 2004, 18:22
Hi Marco,

klappt echt Super ! Erstmal vielen vielen Dank !!!

Jetzt habe ich nur noch das Problem, die Datei wieder raus zu lutschen und vielleicht zu speichern (später will ich sie dann im PDF-Reader direkt anzeigen).

Wenn Du da noch einen Tip hast, wie ich das nun wieder anstelle ? Mit Streams habe ich es nicht so - habe noch nie damit gearbeitet.

Sieht aber eigentlich gut aus wenn's funzt.


Ciao hacki
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

Re: HowTo: PDF oder HTML Dokumente in Paradox Datenbank able

  Alt 4. Mär 2004, 05:29
Dann machst Du es einfach umgekehrt:

1. Blobstream erzeugen
2. Filestream erzeugen (mit fmCreate)
3. Filestream.CopyFrom(BlobStream,0)
4. Alles Freigeben

und schon hast Du die Datei wieder draußen

Ciao

marco
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
hacki

Registriert seit: 15. Nov 2002
96 Beiträge
 
Delphi XE5 Professional
 
#10

Re: HowTo: PDF oder HTML Dokumente in Paradox Datenbank able

  Alt 17. Jun 2004, 16:49
Hallo Marco,

mit dem Schreiben in die Datenbank hat wunderbar geklappt. Das rauslesen bekomme ich nicht hin. Mag trivial sein - aber ich weiß nicht wie ?? Ich habe folgendes versucht:

Delphi-Quellcode:
    MyStream:=Table1.CreateBlobStream(table1.FieldByName('pdf'),bmReadWrite);

    MyFileStream.CopyFrom(MyStream, 0);

    MyFileStream.Create('C:\transfer\12345.pdf',fmOpenRead);
Bei   MyFileStream.CopyFrom(MyStream, 0); bekomme ich immer eine Access Violation. Keine Ahnung was da passiert. Funzt es überhaupt so oder mache ich grundsätzlich etwas falsch ??

Wäre toll wenn ich Hilfe bekäme !!

Danke und Grüsse, hacki
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:14 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