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
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#11

AW: PDF in Blob speichern mit seltsamen Effekten

  Alt 9. Dez 2013, 17:51
Zitat:
Sicherheitshalber versuch ich es auch einfach mal mit Append.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#12

AW: PDF in Blob speichern mit seltsamen Effekten

  Alt 9. Dez 2013, 17:57
Bin nicht ganz sicher, wie die Felder arbeiten, aber du gibts den Stream vor dem POST frei, das könnte zu komischen Effekten führen.
Was sind denn "komische Effekte"? Davon hab ich noch nie was bemerkt! Wieso sollte es den Eintrag in der Datenbank jucken, wenn der Stream, der ihn geliefert hatte, abkratzt? Genau so gut könntest du in einer lokalen Procedure Zuweisungen an DB-Felder machen und in einer anderen Procedure dann erst mit Post abschließen:
Delphi-Quellcode:
Procedure Zuweisen;
Var
  Feld1 : Integer;
  Feld2 : String;
  Feld3 : Boolean;
Begin
  Feld1 := Self.Tag;
  Feld2 := Application.ExeName;
  Feld3 := Self.WindowState = wsMaximized;
  MyDataSet.FieldByName('Field1').AsInteger := Feld1;
  MyDataSet.FieldByName('Field2').AsString := Feld2;
  MyDataSet.FieldByName('Field3').AsBoolean := Feld3;
End;

Procedure NeuerEintrag;
Begin
  MyDataSet.Append;
  Zuweisen;
  MyDataSet.Post;
End;
Was meinst du: würde das funktionieren oder ergäbe das eine Fehlermeldung?
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#13

AW: PDF in Blob speichern mit seltsamen Effekten

  Alt 10. Dez 2013, 07:35
Ich hab mal diese Variante von swissdelphicenter probiert:
http://www.swissdelphicenter.ch/torr...de.php?id=1271

Funktioniert mit Oracle OLEDB und MS OLEDB über Oracle ODBC unter Delphi 5. Hab allerdings ein paar Bilder zum Test genommen und der Code musste bei der Blob Variable auf Typ TStream umgestellt werden.

Das läuft sowohl bei einer AdoQuery innerhalb eines Inserts oder als Update eines bestehenden Records.
Gruß, Jo
  Mit Zitat antworten Zitat
Jumpy

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

AW: PDF in Blob speichern mit seltsamen Effekten

  Alt 10. Dez 2013, 09:57
Zitat:
Sicherheitshalber versuch ich es auch einfach mal mit Append.
Ich weiß ja, Yoda sagt es gibt kein "Versuchen". Man muss es einfach nur tun.
Das zeigt halt, dass ich schon bereit bin mich an Strohhalme zu klammern, weil ich nicht verstehe, wie das Problem zustande kommt.

Wie gesagt ich kriegt ja die Files in die DB geschrieben und ich krieg sie ja wieder ausgelesen, das Vorgehen funktioniert ja prinzipiel. Nur kommt halt manchmal die falsche Datei beim wieder auslesen raus. Und bevor jetzt einer Meckert: Ich hab das im Debugger durchgespielt, ich hab das direkt and er SQL-Console durchgespielt, es kommt nicht zu ID Verwirrungen, ich fordere genau die Datei an, die ich haben will nur kommt (in den unerklärlichen problemtischen Fällen) nicht die raus, die ich will.

Bzgl. Streams freigeben:
Ich hab per Trial and Error festgestellt, dass man bei meiner Methode die Streams for dem .Post freigeben muss. Es macht aber auch irgendwo Sinn, dass der Stream, nachdem er in den Datensatz geschrieben wurde geschlossen werden muss bevor ich den Datensatz an die DB poste. Soweit ich mich erinnere kam dann keine Fehlermeldung oder so, es war einfach nichts in der DB, bzw. das Feld ID und das Feld Typ waren wohl in der DB angekommen, aber das Blobfeld blieb leer.

Ich baue mir gerade eine Testumgebung, wo ich mal ein paar eurer vorgeschlagenen Varianten durchspielen will. Bei dem Link von Jobo scheint es ja so zu sein, das die Datenmenge gar nicht mit Edit/Insert und Post "behandelt" wird. Muss das nicht, oder ist das wie bei Perlsau so, dass das in der vorgeschalteten Prozedur gemacht wird?
Das blob.Seek sollte doch eigentlich nicht nötig sein, da der Zeiger nach dem Öffnen des Streams doch eh noch am Anfang stehen sollte, oder?
Ralph
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#15

AW: PDF in Blob speichern mit seltsamen Effekten

  Alt 10. Dez 2013, 10:24
Das Dataset.Edit mache ich in meinem Test manuell per Navigator, entweder gar nicht, weil Insert gedrückt oder halt Navigator.Edit gedrückt.
Das blob.seek ist vielleicht ein "Erfahrungswert", der Dir fehlt.

Ansonsten bin ich mir nach Deinen Beiträgen nicht sicher, dass Du tatsächlich die richtigen Treiber verwendest.
In meinem Fall jedenfalls Oracle Instant Client mit OLEDB und ODBC.
Für die Connection entweder direkt Oracle OLEDB oder den Umweg über
MS OLEDB ODBC, dort dann Oracle ODBC Treiber des Instant Client.

In meinem Fall ein 11er Treiber, 11.2 auf einer 10.2er DB.
Gruß, Jo
  Mit Zitat antworten Zitat
Jumpy

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

AW: PDF in Blob speichern mit seltsamen Effekten

  Alt 10. Dez 2013, 17:34
Ich hab auch einen 11er Client installiert und gehe auf eine 10er DB.
Welchen Treiber meinst du denn, dass ich den falsch habe?

Der OBDC-Treiber ist der von Oracle: Oracle in OraClient11g_home1.

Oder meinst du den Provider aus dem Connection-String der ADO-Komponente?
So wird der ConnectionString zusammengebaut:

Code:
cs:= 'Provider=MSDASQL.1;'+
     'Persist Security Info=True;'+
     'User ID= ' + UID(v) +';'+
     'Data Source= '+DBName(v) +';'+
     'Password=' + PW(v);
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 22:33 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