AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Parameter unter Firedac
Thema durchsuchen
Ansicht
Themen-Optionen

Parameter unter Firedac

Ein Thema von Delbor · begonnen am 4. Mär 2016 · letzter Beitrag vom 11. Mär 2016
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: Parameter unter Firedac

  Alt 10. Mär 2016, 16:00
Siehe englische Hilfeseite zu TFDParam.AsStream
Zitat:
The assigned TStream object will be owned by this TFDParam .
Das herunterskalieren auf ein JPEG ist ja ok, aber diese wilde hin- und herkopiere ist zum großen Teil überflüssig.

Zumal ein FDQueryMain.Params[0].Assign( MyImage ); das auch erledigt. Also ist der Stream schonmal komplett überflüssig.

Eine GUID ist auch nur eine Bytefolge und kann mit System.Sysutils.TGUIDHelper ganz gemütlich in ein ByteArray geschoben werden.
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
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Parameter unter Firedac

  Alt 10. Mär 2016, 16:32
Hi SirRufo
Zitat:
Eine GUID ist auch nur eine Bytefolge und kann mit System.Sysutils.TGUIDHelper ganz gemütlich in ein ByteArray geschoben werden.
Danke für die Info!! Auf jeden Fall auf den von mir besuchten Seiten habe ich nichts über TGUIDHelper entdecken können. Wobei natürlich wie immer gilt: wegen der Fülle von Infos kann auch mal was überlesen werden.
Zitat:
Zumal ein FDQueryMain.Params[0].Assign( MyImage ); das auch erledigt. Also ist der Stream schonmal komplett überflüssig.
Eventuell dämliche Nachfrage: Was erledigt das auch? Das Einfügen des Bildes in einer für die DB akzeptablen Grösse?
Wenn ich eine Bitmap erstelle und diese bearbeite, will ich sie so, wie ich sie bearbeitet habe, in der DB. Ansonsten müsste ich ein Bild jedesmal neu als Bitmap erstellen und neu bearbeiten, wenn Bedarf besteht.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  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
 
#3

AW: Parameter unter Firedac

  Alt 10. Mär 2016, 16:40
Statt Grafik in Stream und Stream an Parameter einfach nur Grafik per Assign an den Parameter.
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
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Parameter unter Firedac

  Alt 10. Mär 2016, 16:49
Hi Sir Rufo
Erstmal danke für den Tip:
Zitat:
Statt Grafik in Stream und Stream an Parameter einfach nur Grafik per Assign an den Parameter.
Und nun lass mich raten: da Grafiken binäre Daten sind, hätte das auch unter DBExpress funktioniert?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  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
 
#5

AW: Parameter unter Firedac

  Alt 10. Mär 2016, 16:51
Das funktioniert mit allen Klassen, die von TPersistent abgeleitet sind und IStreamPersist implementieren.

Und TGraphic erfüllt dieses Kriterium - siehe: Delphi-Referenz durchsuchenTGraphic

Korrektur: TStrings wird beim Assign gesondert behandelt und nicht über IStreamPersist
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)

Geändert von Sir Rufo (10. Mär 2016 um 16:55 Uhr)
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Parameter unter Firedac

  Alt 11. Mär 2016, 13:14
Hi zusammen

In Bezug auf den GUID tut sich noch ein Problemm auf. Um mich selbst zu zitieren:
Zitat:
Allerdings ist mir ein Designfehler unterlaufen. Ich habe das Feld für den GUID der Bildtabelle verpasst, aber eigentlich gehört das Ding in die Kategorientabelle - die enthält "Kategorien" (diesen Namen habe ich seinerzeit falsch gewählt), die jedoch eigentlich den Ordnernamen auf der Festplatte entsprechen. Diese Ordner enthalten meist Fotos, die bei einem bestimmten Ereignis entstanden sind, können aber auch solche enthalten, die sich auf mehrere Ereignisse beziehen.
  • Grundsätzlich kann ich über ein Eingabefeld eine neue Kategorie erzeugen. Die muss dann ichts mit einem Ordnernamen gemein haben.
  • Die Kategorien können in der DB jederzeit geändert werden. Das wird vor allem der Fall sein, wenn sich die Rohdaten im Quellordner auf mehrere Ereignisse beziehen.
  • Auf diese Weise haben dann Bilder in der DB plötzlich keinen zugehörigen Rohdaten-Ordner mehr auf der Festplatte
Das bedeutet aber, dass ich so vorgehen muss, wie ich es bisher umgesetzt habe - die eigentliche Bildtabelle enthält neben den 3 Blobfeldern auch ein Feld für den GUID.
Und das wiederum widerspricht eigentlich den Normalisierungsregeln: Ich hab jetzt nur mal testweise Bilder aus einem Ordner in die DB aufgenommen - 444 Stück, und jedem wird der selbe GUID zugeordnet.

Wie liesse sich das lösen?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  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: Parameter unter Firedac

  Alt 11. Mär 2016, 14:01
Was entspricht nicht der Normalisierung? Die GUID an dem Bild zu speichern?

Wie kommst du da drauf? Den eindeutigen Pfad zu der Bilddatei bekommst du doch nur über die GUID des Ordners und dem relativen Pfad zu der Datei. Als gehören diese Informationen auch zu dem Datensatz.
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
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 05:39 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-2025 by Thomas Breitkreuz