AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FireDAC Makro vs Parameter

Ein Thema von Elrond · begonnen am 23. Nov 2017 · letzter Beitrag vom 24. Nov 2017
Antwort Antwort
Seite 1 von 2  1 2      
Elrond

Registriert seit: 29. Sep 2014
71 Beiträge
 
#1

FireDAC Makro vs Parameter

  Alt 23. Nov 2017, 15:10
Datenbank: Any • Version: 1 • Zugriff über: FireDAC
Hallo Zusammen,

ich arbeite mich gerade in FireDAC ein und mir ist nicht klar was der Unterschied zwischen einen Makro und Parameter ist.
Nach den lesen der Dokumentation habe ich irgendwie den Eindruck das beide das selbe machen.

Viele Grüße
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: FireDAC Makro vs Parameter

  Alt 23. Nov 2017, 15:15
Auf den ersten Blick ja, auf den 2. aber nicht mehr.
Bei der Verwendung wird die Abfrage mit den Parametern (nicht den Werten) an das DBMS gesendet. Dort wird die Abfrage dann werteunabhängig vorbereitet ( Zugriffsplan usw.). Anschliessend werden die Werte übermittelt und auf die vorbereitete Abfarge angewendet. Dies kann auch mehrfach geschehen, der Pepare muss nur einmal stattfinden.
Bei den Makros wird lokal eine Abfrage mit den konkreten Werten gebildet.
Makros kann man deshalb auch für Dinge verwenden, welche nicht parametrisierbar sind (Datenbanken, Tabellen, Felder ...). Parameter gehen nur für Werte.
Markus Kinzler
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: FireDAC Makro vs Parameter

  Alt 23. Nov 2017, 15:50
Danke auch von mir für die Erklärung.

Das hieße dass bspw. Parameter u.U. auch auf Seite des DBMS unterstützt werden während "FireDAC Makros" etwas sind das garantiert immer Client-seitig abläuft?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: FireDAC Makro vs Parameter

  Alt 23. Nov 2017, 16:17
Ja. Parameter sind ein Feature des DBMS (sollte aber von jedem unterstützt werden).
Mit Makros wird lokal im Client für jede Ausprägung die individuelle Abfrage erzeugt.
Markus Kinzler
  Mit Zitat antworten Zitat
HeZa

Registriert seit: 4. Nov 2004
Ort: Dortmund
182 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: FireDAC Makro vs Parameter

  Alt 23. Nov 2017, 18:12
Ich möchte noch hinzufügen, dass Parameter vor SQL-Injection (ein Sicherheitsproblem) schützen Macros aber nicht.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: FireDAC Makro vs Parameter

  Alt 23. Nov 2017, 18:30
Ok, das wäre meine nächste Frage gewesen. Danke fürs Gedankenlesen
  Mit Zitat antworten Zitat
Elrond

Registriert seit: 29. Sep 2014
71 Beiträge
 
#7

AW: FireDAC Makro vs Parameter

  Alt 24. Nov 2017, 08:16
Auch von mir ein Danke für die kompakte Erklärung.
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: FireDAC Makro vs Parameter

  Alt 24. Nov 2017, 08:41
Makro braucht man dann, wenn man nicht Werte, sondern z.B. Feldnamen oder komplexe Teile ersetzen muss.

Beispiel: select * from rechnung where mandant_nummer in <<nummern>>.

Dann kann man <<nummern>> ersetzen durch ('300', '301', '400').

Das geht mit Params nicht.

Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#9

AW: FireDAC Makro vs Parameter

  Alt 24. Nov 2017, 08:57
Moin...
Ich mache ja ungern die Spaßbremse. So schön wie das alles ist, du bindest dich mit Macros ausschließlich an diese Komponente. Für meinen Teil schwöre ich auf klassisches SQL mit klassischen Querys. Mit einer ausgetauschten Deklaration habe ich einen Komponentenwechsel (sinngemäß)...
  Mit Zitat antworten Zitat
Elrond

Registriert seit: 29. Sep 2014
71 Beiträge
 
#10

AW: FireDAC Makro vs Parameter

  Alt 24. Nov 2017, 10:34
Moin...
Ich mache ja ungern die Spaßbremse. So schön wie das alles ist, du bindest dich mit Macros ausschließlich an diese Komponente. Für meinen Teil schwöre ich auf klassisches SQL mit klassischen Querys. Mit einer ausgetauschten Deklaration habe ich einen Komponentenwechsel (sinngemäß)...
In der Regel ist das auch meine bevorzugte Herangehensweise. Jedoch stehe ich aktuell vor der Anforderung mindestens drei unterschiedliche Datenbanksysteme zu unterstützen. Würde ich auf reines SQL zurückgreifen müsste ich für jede DB alle Querys unter Beachtung der Syntaxregeln neu schreiben, hinzukommt noch die individuelle Unterstützung von Transaktionen. Am ende hätte ich meinen eigenen DAC Derivaten.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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