AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken PDF in Blob speichern mit seltsamen Effekten
Thema durchsuchen
Ansicht
Themen-Optionen

PDF in Blob speichern mit seltsamen Effekten

Ein Thema von Jumpy · begonnen am 6. Dez 2013 · letzter Beitrag vom 10. Dez 2013
 
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: PDF in Blob speichern mit seltsamen Effekten

  Alt 9. Dez 2013, 10:32
Hallo,

der Zugriff erfolgt mit den ADO-Komponenten, die bei Delphi (diesmal D2010) dabei sind. Es ist aber noch Oracles ODBC dazwischen, d.h. ADO->ODBC->Oracle.

Hier mal die Funktion wie ich sie jetzt benutze, wo ich nur noch evtl. schon vorhandene Einträge lösche (die Funktion ist jetzt nicht hier dabei, da einfach nur ein Delete) und dann neu einfüge.
Vorher stand da anstatt q.Insert sowas ala "If IDExists(ID) then q.Edit else q.Insert;"

Delphi-Quellcode:
procedure TBL.PutFileInDB(const id,Typ,fname:String; var filesize:integer);
var q:TADOTable;
    s:TStream;
    f:TFileStream;
begin
  q:=TADOTable.Create(nil);
  q.Connection:=Con;
  q.TableName:=Table(TabDatei);
  q.Open;
  If FileExists(fname) then
    begin
    q.Insert;
    q.FieldByName('ID').AsString:=id;
    q.FieldByName('Typ').AsString:=Typ;
    s:=q.CreateBlobStream(q.FieldByName('Datei'), bmReadWrite);
    f:=TFileStream.Create(fname, fmOpenRead);
    filesize:=s.CopyFrom(f,f.Size);
    f.Free;
    s.Free;
    q.Post;
    end
  else
    filesize:=0;
  q.Free;
end;
@Perlsau: Was du gezeigt hast, war in etwa was ich meinte, aber das war in einem anderen Thread, wo du das noch ausführlicher geschrieben hast, ich kanns aber wie gesagt nicht mehr finden, war auch schon älter. Ich hab deine Funktion dabei nur als Hinweis genommen, wie man in den Blob schreibt/streamt, das aber nicht als eigene Funktion abstrahiert, sondern einfach mit dem Füllen der restlichen Tabellenfelder in einer Funktion gelassen.

Was mir aufgefallen ist, ist, das du in deinem Post von "Append" gesprochen hast, ich aber "Insert" benutzt habe. Könnte das Probleme im Zusammenhang mit Blobs Probleme machen? Der unterschied ist wie ich das verstanden habe ist doch nur, ob sich der Datensatzzeiger vor dem Einfügen ans Ende verschiebt oder nicht und ich dachte, das betrifft nur die clientseitige Anzeige und nicht den Speicherort in der DB oder so.
Ralph
  Mit Zitat antworten Zitat
 


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 07:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz