AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken PDF's und Jpg im Datensatz speichern, vorschau und abrufen
Thema durchsuchen
Ansicht
Themen-Optionen

PDF's und Jpg im Datensatz speichern, vorschau und abrufen

Ein Thema von calikey · begonnen am 27. Mär 2015 · letzter Beitrag vom 31. Mär 2015
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: PDF's und Jpg im Datensatz speichern, vorschau und abrufen

  Alt 27. Mär 2015, 14:22
Mal etwas zum Drumherum:
  • Deine Delphi-Version kannst du in deinem Profil angeben
  • Deine User-Skills (Ich bin Anfänger) kannst du in deiner Profil-Signatur angeben
  • Die verwendete Datenbank ist MyBase und der Zugriff erfolgt über TClientDataSet
Schon verkürzen sich deine Fragen und beschränken sich auf das Wesentliche. Den Rest kann man ganz bequem deinem Profil/Signatur entnehmen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: PDF's und Jpg im Datensatz speichern, vorschau und abrufen

  Alt 27. Mär 2015, 14:42
@calikey

Ich weiß nicht ob ich dich richtig verstanden habe, aber vorausgesetzt du willst eine Datei öffnen, dazu würde ich dir ShellExecute (Unit ShellApi) ans Herz legen.
  Mit Zitat antworten Zitat
calikey

Registriert seit: 19. Mär 2015
29 Beiträge
 
Delphi XE7 Architect
 
#3

AW: PDF's und Jpg im Datensatz speichern, vorschau und abrufen

  Alt 31. Mär 2015, 11:35
So hab bissel was gefunden und versucht es um zuschreiben aber delphi mag nicht. jetzt ist eure hilfe gefragt
Delphi-Quellcode:
unit doku;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.ExtCtrls, Vcl.ImgList,
  Vcl.ExtDlgs, Data.DB, Datasnap.DBClient, Vcl.DBCtrls, Vcl.StdCtrls,
  gtScrollingPanel, gtPDFViewer, gtPDFClasses, gtCstPDFDoc, gtExPDFDoc,
  gtExProPDFDoc, gtPDFDoc, gtPDFPrinter, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB;

type
  TForm2 = class(TForm)
    OpenDialog1: TOpenDialog;
    Button1: TButton;
    SaveDialog1: TSaveDialog;
    gtPDFViewer1: TgtPDFViewer;
    gtPDFViewer2: TgtPDFViewer;
    gtPDFViewer3: TgtPDFViewer;
    dbDemos: TClientDataSet; //von mir geändert
    tVenues: TClientDataSet; //von mir geändert
    tVenuesVenueNo: TAutoIncField;
    tVenuesVenue: TStringField;
    tVenuesCapacity: TIntegerField;
    tVenuesVenue_Map: TGraphicField;
    tVenuesRemarks: TMemoField;
    DataSource1: TDataSource;
    DBNavigator1: TDBNavigator;
    DBMemo1: TDBMemo;
    DBImage1: TDBImage;
    btLoadMemo: TButton;
    btSaveMemo: TButton;
    btLoadImage: TButton;
    btSaveImage: TButton;
    odBlob: TOpenDialog;
    sdBlob: TSaveDialog;
    ClientDataSet1: TClientDataSet;
    ClientDataSet1Arbeitsvertragimg: TBlobField;
    ClientDataSet1kopie1: TBlobField;
    ClientDataSet1kopie2: TBlobField;
    ClientDataSet1kopie3: TBlobField;
    ClientDataSet1kopie4: TBlobField;
    ClientDataSet1kopie5: TBlobField;
    ClientDataSet1kopie6: TBlobField;
    ClientDataSet1kopie7: TBlobField;
    ClientDataSet1kopie8: TBlobField;
    ClientDataSet1kopie9: TBlobField;
const
  TClientDataSet: String = '..\..\Data\Demos.abs';
    procedure FormCreate(Sender: TObject);
    procedure btLoadMemoClick(Sender: TObject);
    procedure btSaveMemoClick(Sender: TObject);
    procedure btLoadImageClick(Sender: TObject);
    procedure btSaveImageClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var

  Form2: TForm2;
  openDialog : TOpenDialog;

implementation

{$R *.dfm}

uses Unit1;

procedure TForm2.FormCreate(Sender: TObject);
begin
  dbDemos.DatabaseFileName := ExtractFilePath(Application.ExeName) + DataBaseFileName; //Hier Tclientdataset enthält kein databasefilename
  dbDemos.Open;
  tVenues.Open;
end;

procedure TForm2.btLoadMemoClick(Sender: TObject);
var
  FileStream: TFileStream;
  BlobStream: TStream;
begin
 if (odBlob.Execute) then
   begin
     tVenues.Edit;
     try
       BlobStream := tVenues.CreateBlobStream(tVenues.FieldByName('kopie1'),bmWrite);
       FileStream := TFileStream.Create(odBlob.FileName,fmOpenRead or fmShareDenyNone);
       BlobStream.CopyFrom(FileStream,FileStream.Size);
       FileStream.Free;
       BlobStream.Free;
       tVenues.Post;
     except
       tVenues.Cancel;
     end;
   end;
end;

procedure TForm2.btSaveMemoClick(Sender: TObject);
var
  FileStream: TFileStream;
  BlobStream: TStream;
begin
  if (sdBlob.Execute) then
    begin
      FileStream := TFileStream.Create(sdBlob.FileName,fmCreate);
      BlobStream := tVenues.CreateBlobStream(tVenues.FieldByName('kopie1'),bmRead);
      FileStream.CopyFrom(BlobStream,BlobStream.Size);
      BlobStream.Free;
      FileStream.Free;
    end;
end;

procedure TForm2.btLoadImageClick(Sender: TObject);
var
  FileStream: TFileStream;
  BlobStream: TStream;
begin
 if (odBlob.Execute) then
   begin
     tVenues.Edit;
     try
       BlobStream := tVenues.CreateBlobStream(tVenues.FieldByName('kopie1'),bmWrite);
       FileStream := TFileStream.Create(odBlob.FileName,fmOpenRead or fmShareDenyNone);
       BlobStream.CopyFrom(FileStream,FileStream.Size);
       FileStream.Free;
       BlobStream.Free;
       tVenues.Post;
     except
       tVenues.Cancel;
       raise;
     end;
   end;
end;

procedure TForm2.btSaveImageClick(Sender: TObject);
var
  FileStream: TFileStream;
  BlobStream: TStream;
begin
  if (sdBlob.Execute) then
    begin
      FileStream := TFileStream.Create(sdBlob.FileName,fmCreate);
      BlobStream := tVenues.CreateBlobStream(tVenues.FieldByName('kopie1'),bmRead);
      FileStream.CopyFrom(BlobStream,BlobStream.Size);
      BlobStream.Free;
      FileStream.Free;
    end;
end;

end.
was ist mein fehler oder besser wie muss ich das ändern?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: PDF's und Jpg im Datensatz speichern, vorschau und abrufen

  Alt 31. Mär 2015, 11:41
Ist das jetzt das Rätsel des Tages "Wo ist hier ein Fehler?" oder teilst du uns - irgendwann - mit was genau nicht funktioniert?

Ein Blick in den uses Teil lässt schon mal eine große Verwirrung erahnen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
calikey

Registriert seit: 19. Mär 2015
29 Beiträge
 
Delphi XE7 Architect
 
#5

AW: PDF's und Jpg im Datensatz speichern, vorschau und abrufen

  Alt 31. Mär 2015, 13:12
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
  dbDemos.DatabaseFileName := ExtractFilePath(Application.ExeName) + DataBaseFileName; //Hier Tclientdataset enthält kein databasefilename
  dbDemos.Open;
  tVenues.Open;
end;
so noch mal das problem
habe
Delphi-Quellcode:
dbDemos: TClientDataSet; //von mir geändert
tVenues: TClientDataSet; //von mir geändert
vorher
Delphi-Quellcode:
dbDemos: TABSDatabase;
tVenues: TABSTable;
da ich ja eine mybase datenbank habe dachte ich änder das mal und bis auf das eine meckert delphi ja auch nicht.aber wie sag ich da jetzt delphi das er da meine datenbank benutzen soll?

Geändert von calikey (31. Mär 2015 um 13:28 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: PDF's und Jpg im Datensatz speichern, vorschau und abrufen

  Alt 31. Mär 2015, 13:21
gt ? Gnostice-Units?
Ist zwar jetzt nicht direkt das Problem. Aber stell dich schon mal darauf ein das beim Betrachten von realen PDFs dir die Anwendung öfter um die Ohren fliegen wird.
Die Implementierung von Gnostice ist mehr oder minder so aufgebaut das unbekannte Elemente als erstes zu einem Programmabsturz fürhen sollen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: PDF's und Jpg im Datensatz speichern, vorschau und abrufen

  Alt 31. Mär 2015, 13:21
Wenn man in ganzen Sätzen spricht und dabei sehr genau in der Beschreibung ist, dann wird es für Aussenstehende einfacher zu verstehen.

Ich versuche es jetzt mal zu interpretieren:

Kann es sein, dass tVenues - was ja jetzt auch ein TClientDataSet ist - nicht geöffnet werden kann, weil das Programm nicht weiß wie bzw. woher, weil du diesem keinen Dateinamen (und damit keine Quelle, woher die Daten kommen sollen) gegeben hast?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#8

AW: PDF's und Jpg im Datensatz speichern, vorschau und abrufen

  Alt 31. Mär 2015, 13:59
Mein lieber Calikey,

ganz offensichtlich bist du mit der Delphi-Programmierung nicht nur kaum vertraut, sondern scheinst im Grunde auch keine Ahnung davon zu haben, was irgendwelche Befehle in deinem unter Nr. 5 geposteten Quelltext zu bedeuten haben:
  1. hast du z.B. in den Uses etliche Units doppelt drin, und zwar in verschiedenen Versionen – einmal für neuere Delphi-IDEs und einmal für ältere Delphi-IDEs, u.a.: Windows, Messages, SysUtils, Classes, Graphics, Forms, Dialogs und etliche mehr. Woher soll dein Programm denn wissen, welche Unit zu verwenden ist?
  2. kann man nirgendwo im bereits genannten Post erkennen, was wo wann angeblich nicht funktioniert.
  3. solltest du dir erst gar nicht angewöhnen, sämtliche Algorithmen in den Ereignisbehandlungsmethoden unterzubringen.
  4. ist die einzige Frage die, was dein Fehler sei. Dein Fehler ist der Versuch, ohne die vorausgegangene Aneignung von Basiskenntnissen zu versuchen, eine funktionierende Anwendung zu entwickeln. Das muß zwangsläufig in die Hose gehen.
  5. Dieser Punkt mit den fehlenden Basiskenntnissen wird durch dein Posting Nr. 7 noch einmal bekräftigt und bestätigt: Du kopierst einfach irgendwelche Quelltexte, die du nicht mal ansatzweise verstehst, zusammen, und hoffst, das Delphi automatisch den Rest erledigt, indem es errät, was du eigentlich tun willst und das Programm deinen unausgesprochenen Wünschen entsprechend erstellt. So funktioniert das nicht!
Daher möchte ich dir an dieser Stelle einige gutgemeinte Vorschläge unterbreiten:
  1. Arbeite ein paar der zahlreich verfügbaren Delphi-Grundlagen-Tutorials durch, um überhaupt erst einmal die Programmiersprache zu erlernen.
  2. Übe dich danach in dem bereits Erlernten durch die Entwicklung einfacher, auf deinen bisherigen Kenntnissen aufbauenden Programmen.
  3. Arbeite dann weiterführende Tutorials durch, die dir z.B. den Umgang mit Datenbanken vermitteln.
  4. Übe dich auch hier wieder ausgiebig im Programmieren, indem du das neu Erlernte in eigenen kleinen Programmen anzuwenden suchst.

Wenn du dagegen weiterhin so vorzugehen beabsichtigst, wie du das hier sehr anschaulich vorgeführt hast, wirst du erfahrungsgemäß eher früher als später das Handtuch werfen und dich in Zukunft nicht mehr mit Programmieren beschäftigen wollen, weil du durch die falsche Herangehensweise gelernt hast, daß Programmieren nur Frust und Enttäuschung bietet. Es ist auch kaum möglich, dir hier im Rahmen des Forums diese fehlenden Grundlagen beizubringen, denn erstens wäre das sowieso nur eine Wiederholung bereits existierender Tutorials und zweitens äußerst zeitintensiv, wie z.B. dieser Thread in der Entwickler-Ecke zeigt. Die meisten Leute hier müssen nämlich nebenher arbeiten und haben daher nicht die Zeit und Muse, die der Admin des Entwicklertreffs in diesem Fall bewundernswerterweise aufzubringen in der Lage ist.
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:51 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