Forum: Datenbanken
Delphi
by DeddyH,
14. Mai 2012
Prinzipiell waren ja beide Methoden im Ausgangspost falsch. Das haben wir nur (hoffentlich) korrigiert.
Forum: Datenbanken
Delphi
by DeddyH,
14. Mai 2012
Das ist noch keinem aufgefallen (mir auch nicht) :lol:. OK, wenn wir eh schon dabei sind:
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Filter:='*.pdf|*.pdf';
if OpenDialog1.Execute then
try
ADOTable1.Edit;
TBlobField(ADOTable1.FieldByName('PDFFILE')).LoadFromFile(OpenDialog1.FileName);
ADOTable1.Post;
except
Forum: Datenbanken
Delphi
by DeddyH,
14. Mai 2012
Jaja :stupid:, letzter Vorschlag (ungetestet):
procedure TForm17.Button2Click(Sender: TObject);
const
FILENAME = 'Dok.pdf';
var
PDFField: TBlobField;
TempPath : String;
ExecuteInfo: SHELLEXECUTEINFO;
begin
ADOTable1.Open;
Forum: Datenbanken
Delphi
by DeddyH,
13. Mai 2012
Wenn Stützen nicht hilft, muss man es halt mit Schubsen versuchen :mrgreen:
Forum: Datenbanken
Delphi
by DeddyH,
12. Mai 2012
Nicht wundern, nur staunen :zwinker:
Forum: Datenbanken
Delphi
by DeddyH,
11. Mai 2012
Versuch mal
procedure TForm17.Button2Click(Sender: TObject);
const
FILENAME = 'Dok.pdf';
var
myPDF, TempPath : String;
fs : TFileStream;
begin
SetLength(TempPath, GetTempPath(0, nil));
GetTempPath(Length(TempPath), PChar(TempPath));
Forum: Datenbanken
Delphi
by DeddyH,
11. Mai 2012
Da fehlt aber noch mindestens ein try-finally-Block. Den Dateinamen solltest Du in einer Variablen oder Konstanten ablegen und dann die benutzen, außerdem sind relative Pfade böse.
Forum: Datenbanken
Delphi
by DeddyH,
11. Mai 2012
Im Ausgangspost und in #9 haben wir TBlobField.SaveToFile benutzt, deshalb war ich über den String als Puffer etwas verwundert.
Forum: Datenbanken
Delphi
by DeddyH,
11. Mai 2012
Das sollte wohl SizeOf(Char) heißen. Aber wieso der umständliche Weg über String, statt wie vorher direkt das BLOB-Feld zu benutzen? Du brauchst doch nur den "%Temp%"-Pfad, kannst dann mit GetTempFilename einen temporären Dateinamen generieren lassen und speicherst unter diesem Namen ab. Nun kannst Du den installierten Reader öffnen, warten, bis der wieder geschlossen wird und dann die temporäre...
Forum: Datenbanken
Delphi
by DeddyH,
9. Mai 2012
Wie soll denn Adobe auf Deine Datenbank zugreifen? Speichere doch einfach den Feldinhalt in einer temporären Datei und öffne die dann.
Forum: Datenbanken
Delphi
by DeddyH,
9. Mai 2012
Back to topic: wenn Du Daten abfragen willst, setzt Du die Datenmenge in den Editiermodus? Wozu soll das gut sein? Versuch es stattdessen einmal so:
- Datenmenge öffnen
- Inhalt des Feldes auf NULL prüfen
- wenn nicht NULL, Inhalt in Datei kopieren
- ggf. Datenmenge wieder schließen
Das sollte eigentlich funktionieren, wenn ich nichts vergessen habe.
Forum: Datenbanken
Delphi
by DeddyH,
9. Mai 2012
Du weißt schon, wozu diese Sparte gedacht ist? Wieso stellst Du Deine Fragen eigentlich alle hier?