| Autor |
Beitrag |
UGrohne
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Do 13.02.03 21:38
Wie speichere ich eine Datei (ist eine PDF) in einem BLOB-Feld der Datenbank (IB) ???
Ich krieg das irgendwie net auf die Reihe... sorry
Gruß
Moderiert von Tino: Satz entfernt.
|
|
bis11
      
Beiträge: 1247
Erhaltene Danke: 2
Apple Mac OSX 10.11
|
Verfasst: Do 13.02.03 22:26
Warum speicherst Du nicht einfach einen Link in die DB ? Ist doch viel einfacher als alles andere.
|
|
UGrohne 
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Do 13.02.03 23:21
Hmm, wenn das von Vorteil wäre, würde ich das ja machen. Aber das Problem ist, dass die Dateien von mehreren Rechnern in Verbindung mit anderen Datensätzen verfügbar sein müssen. Denn so wäre sie ja nur auf einem Client und schließlich werden diese Daten auch aufgrund von Daten aus der DB erzeugt.
Gruß
|
|
bis11
      
Beiträge: 1247
Erhaltene Danke: 2
Apple Mac OSX 10.11
|
Verfasst: Do 13.02.03 23:28
Und wenn Du die PDF's alle auf den Server stellst ? Dann kann jeder Client darauf zugreifen, Du hast die Inhalte nur einmal, belegst keinen doppelten Speicherplatz und Du hast alles zentral, was vielleichter zu administrieren ist.
|
|
UGrohne 
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Do 13.02.03 23:46
Warum kleinerer Admin-Aufwand? Seh ich ganz anders: Ein Anwender, der das ganze in seinem Betrieb aufstellt, will das Teil nicht administrieren, sondern einfach einsetzen. Wenn ich die Dinger aufm Server speichere, brauch ich ne Dateifreigabe und es muss bei jedem Client eingestellt werden, wo die PDFs gespeichert werden.
Und das mit dem doppelten Platz versteh ich auch net: Die PDF wird vom Programm generiert (mit Daten aus der DB), und nicht lokal gespeichert, sie soll sofort in der DB landen!
Sagt mir doch einfach wie's geht!
Gruß
|
|
foxy
      
Beiträge: 814
Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
|
Verfasst: Fr 14.02.03 08:52
guden
Ugrohne also ich habe mir darüber auch schon lange gedanken gemacht .... ich bin auch gerade an einem IB-Server dran, indem ein datensatz auch dateien enthalten sollte ... ich habe mich aber entschlossen, die dateien in einem ordner im netz ab zu legen, und dann den programmpfa speichern und diese dateien einfach mit ShellExecute aufrufen..... es ist ja wohl kein Problem, das du das anwender freundlich codest.... sag einfach beim datensatz edit, das wenn der anwender eine lokale datei in den datensatz anhängen möchte diese dein programm in den entsprechenden pfad kopiert und diese URL dann im datensatz speichert !!! so hab ich das mal gemacht
_________________ "Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
|
|
UGrohne 
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Fr 14.02.03 10:14
Es gibt dann aber noch ein Problem: Die Sicherung. Hab ich alles in der Datenbank, kann ich einfach eine Komplettsicherung machen, wenn ich noch Dateien auf dem Server hab, müssen die auch noch dazugepackt werden... ist auch wieder Aufwand.
Kann mir denn nicht einfach einer sagen, wie's geht? Ich brauch einfach nur den Code, um mit Hilfe eines IBDataset eine Datei in einem BLOB-Feld zu speichern, nur die paar Zeilen.....
Ich habe dieses Thema schon einmal angesprochen, da hätten das alle so gemacht und jetzt auf einmal nicht mehr? Die Dateien sind nur 7-8kB groß!
Gruß
|
|
Lemmy
      
Beiträge: 792
Erhaltene Danke: 49
Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
|
Verfasst: Fr 14.02.03 10:53
Hi,
doch ich sags Dir:
Erzeuge im zugehörige DataSet im Feldeditor alle Felder (RMT auf DataSet und dann Feldeditor, RMT auf Feldeditor und alle Felder hinzufügen).
Jetzt kannst Du mit
NameDerDataSetNameDesBlob.LoadFromFile() arbeiten, wobei NameDerDataSetNameDesBlob der Name des Blob-Feldes ist.
Das speichern von Dateien in einer DB wird fast vergleichbar leidenschaftlich diskutiert, wie die Disskussion um das bessere BS.
Nachteil: es werden relativ große Dateien in der DB gespeichert was dazu führt, dass diese sehr schnell groß wird -> Sicherung dauert lange, evtl. gibts Probleme bei großen Datenbanken, weil das BS so große Dateien nicht unterstützt.
Der Vorteil: Einfache Handhabung, einfach Sicherung, alles ist kompakt.
Grüße
Lemmy
|
|
UGrohne 
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Sa 15.02.03 18:31
| Lemmy hat folgendes geschrieben: | Erzeuge im zugehörige DataSet im Feldeditor alle Felder (RMT auf DataSet und dann Feldeditor, RMT auf Feldeditor und alle Felder hinzufügen).
NameDerDataSetNameDesBlob.LoadFromFile() arbeiten, wobei NameDerDataSetNameDesBlob der Name des Blob-Feldes ist.
y |
OK, das erste versteh ich irgendwie net ganz, glaub ich. Hab alle Felder im Feldeditor eingefügt.
Aber ich bekomm immer "Nicht im Bearbeitungsmodus". Ich glaub ich mach das was mit der IBDataset.Kompo falsch, kann das sein?
Gruß
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Sa 15.02.03 19:36
Ist das DataSet active, oder nicht ?
_________________ Gruß
Hansa
|
|
Lemmy
      
Beiträge: 792
Erhaltene Danke: 49
Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
|
Verfasst: Sa 15.02.03 19:44
Hi,
hast Du die IBDataset korrekt mit der DB verbunden (IBDatabase, IBTransactio)? Sind alle SQL's korrekt (schalte die DataSet mal auf active=?
Grüße
Lemmy
|
|
UGrohne 
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: Sa 15.02.03 23:10
Sie ist richtig verbunden, ich hab ein Grid dabei, darin kann ich auch die Daten schön editieren.... *grml*
Gruß
|
|