<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Roxanac</id>
	<title>RAD Studio - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Roxanac"/>
	<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/de/Spezial:Beitr%C3%A4ge/Roxanac"/>
	<updated>2026-09-03T18:54:31Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Herstellen_einer_Verbindung_zum_DataSnap-Server_(FireDAC)&amp;diff=209063</id>
		<title>Herstellen einer Verbindung zum DataSnap-Server (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Herstellen_einer_Verbindung_zum_DataSnap-Server_(FireDAC)&amp;diff=209063"/>
		<updated>2016-07-28T09:37:56Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Datenbankkonnektivität (FireDAC)}}&lt;br /&gt;
In diesem Thema wird beschrieben, wie eine Verbindung zu mehrschichtigen DataSnap-Servern hergestellt wird.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Versionen==&lt;br /&gt;
&lt;br /&gt;
Der mehrschichtige FireDAC-DataSnap-Treiber unterstützt:&lt;br /&gt;
&lt;br /&gt;
* Mit {{Product}} 2007 und höher erzeugte DataSnap-Server.&lt;br /&gt;
* Mit {{Product}} XE2 Enterprise und höher erzeugte DataSnap-Clients.&lt;br /&gt;
&lt;br /&gt;
==Client-Software==&lt;br /&gt;
&lt;br /&gt;
FireDAC linkt den {{Company}} DataSnap-dbExpress-Treiber statisch, daher sind keine weiteren Dateien oder DLLs erforderlich. Unterstützt wird {{Product}} XE2 Enterprise und höher.&lt;br /&gt;
&lt;br /&gt;
==Treibereinbindung==&lt;br /&gt;
&lt;br /&gt;
So binden Sie den DataSnap-Treiber ein:&lt;br /&gt;
&lt;br /&gt;
* Ziehen Sie aus der Paletten-Seite &amp;quot;FireDAC Links&amp;quot; eine [[lib_de:FireDAC.Phys.DS.TFDPhysDSDriverLink|TFDPhysDSDriverLink]]-Komponente auf das Formular.&lt;br /&gt;
* Oder fügen Sie die Unit [[lib_de:FireDAC.Phys.DS|FireDAC.Phys.DS]] in die uses-Klausel ein.&lt;br /&gt;
&lt;br /&gt;
==Verbindungsdefinitionsparameter==&lt;br /&gt;
&lt;br /&gt;
Für eine Verbindung mit dem DataSnap-Server ist für die meisten Anwendungen die Angabe von &#039;&#039;&#039;DriverID&#039;&#039;&#039;, &#039;&#039;&#039;Protocol&#039;&#039;&#039;, &#039;&#039;&#039;Server&#039;&#039;&#039;, &#039;&#039;&#039;Port&#039;&#039;&#039;, &#039;&#039;&#039;User_Name&#039;&#039;&#039; und &#039;&#039;&#039;Password&#039;&#039;&#039; erforderlich (Einzelheiten finden Sie unter [[Definieren von Verbindungen (FireDAC)|Definieren von Verbindungen (FireDAC)]]).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DriverID=DS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beispielwert&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;Protocol&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Das für die Verbindung mit dem DataSnap-Server verwendete Protokoll. Folgende Werte sind möglich:&lt;br /&gt;
* TCP/IP: Verbindung über das TCP/IP-Protokoll. Dies ist das Standardprotokoll.&lt;br /&gt;
* HTTP: Verbindung über das HTTP-Protokoll.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TCP/IP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;Server &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Adresse des Servers, mit dem verbunden werden soll.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | 127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;Port &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Der TCP/IP- oder HTTP-Port, über den der DataSnap-Server empfängt. Der Vorgabewert für TCP/IP ist 211, für HTTP - 8080.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | 211&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;User_Name &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Benutzername für die Authentifizierung beim DataSnap-Server.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;Password&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Passwort für die Authentifizierung beim DataSnap-Server.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;BufferKBSize &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zu verwendende Puffergröße in Kilobyte für Lese- und Schreibvorgänge. Der Vorgabewert ist 32 KB.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | 64&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;Filters &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Client-Filter zum Speichern der Filterkonfiguration. Der Vorgabewert ist leer. Weitere Informationen unter: [[lib_de:Data.DBXCommon.TDBXPropertyNames#filters|TDBXPropertyNames.Filters]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |{ &amp;quot;ZLibCompression&amp;quot;: {} }&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;URLPath &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. URL-Pfad für den HTTP-DataSnap-Dienst, wenn das HTTP-Protokoll verwendet wird. Der Vorgabewert ist leer.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;DatasnapContext &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. Pfad zum DS-HTTP-Dienst für die Zusammenstellung des URL. Die aktuelle Konvention lautet: &amp;quot;[http://x.com/datasnap/provider/classname/method/params http://x.com/datasnap/provider/classname/method/params]&amp;quot;. Der Benutzer kann dabei das Wort &amp;quot;datasnap&amp;quot; ändern oder löschen. Der Vorgabewert ist &amp;quot;datasnap/&amp;quot;.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;DSProxyHost &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. Der Host, über den Anforderungen gesendet werden können, oder ein leerer String, wenn Sie keinen Proxy verwenden. Der Vorgabewert ist leer.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;DSProxyPort &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. Der Port auf dem Proxy-Host, über den Anforderungen gesendet werden können. Wenn DSProxyHost festgelegt ist, wird dieser Wert ignoriert. Der Vorgabewert ist leer.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;DSProxyUsername &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. Benutzername für die Authentifizierung beim Proxy. Der Vorgabewert ist leer.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;DSProxyPassword &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. Passwort für die Authentifizierung beim Proxy. Der Vorgabewert ist leer.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;DSAuthenticationScheme &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. DataSnap-Authentifizierungsschema. Wird in Verbindung mit dem DataSnap-Benutzernamen und -Passwort für die Authentifizierung mit dem HTTP-Protokoll verwendet. Setzen Sie diesen Parameter auf &amp;quot;basic&amp;quot;, um &amp;quot;User_Name&amp;quot;-/&amp;quot;Password&amp;quot;-Werte mit einer HTTP-Basisauthentifizierung zusätzlich zum Senden dieser Werte in dem DBX-Verbindungsstring zu senden. Mit der HTTP-Basisauthentifizierung können Anmeldeinformationen an einen Zwischenprozess-DataSnap-HTTP-Tunnelserver übergeben werden. Der Vorgabewert ist leer.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;LoginTimeout &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. Zeitüberschreitungswert bei der Verbindung. Der Wert enthält die Anzahl von Millisekunden, die der Client darauf wartet, dass die Verbindung möglich wird. Der Wert stellt die Zeitüberschreitung für die erste Serverantwortbestätigung und nicht für die gesamte Verbindungs-/Authentifizierungsphase bereit. Dieser Parameter sollte verwendet werden, um das Einfrieren der Anwendung zu verhindern, wenn die Möglichkeit besteht, dass Verbindungen zu älteren DataSnap-Server-Versionen oder zu anderen Anwendungen versucht werden, die das aktuelle Kommunikationsprotokoll nicht bestätigen. Der Vorgabewert ist 10000ms.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039; CommunicationTimeout &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. Zeitüberschreitungswert in Millisekunden für eine Antwort nach Herstellen der Verbindung. Der Vorgabewert ist leer.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Anwendungsfälle==&lt;br /&gt;
&lt;br /&gt;
Herstellen einer Verbindung zum lokalen DataSnap-Server mit Standardeinstellungen:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 DriverID=DS&lt;br /&gt;
&lt;br /&gt;
Herstellen einer Verbindung zum DataSnap-Server mit dem auf einem lokalen Host ausgeführten TCP/IP-Protokoll:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 DriverID=DS&lt;br /&gt;
 Protocol=tcp/ip&lt;br /&gt;
 Server=127.0.0.1&lt;br /&gt;
 Port=211&lt;br /&gt;
 User_Name=dsusr&lt;br /&gt;
 Password=123&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Allgemeine Verbindungsparameter (FireDAC)|Allgemeine Verbindungsparameter]]&lt;br /&gt;
* [[FAQ (FireDAC)|FAQs]]&lt;br /&gt;
* [[Konfigurieren von Treibern (FireDAC)|Konfigurieren von FireDAC-Treibern]]&lt;br /&gt;
* [[Definieren von Verbindungen (FireDAC)|Verwalten von FireDAC-Verbindungsdefinitionen]]&lt;br /&gt;
* [[Samp:DataSnap.FireDAC Sample|DataSnap.FireDAC (Beispiel)]]&lt;br /&gt;
* [[Samp:DataSnap.FireDAC DBX Sample|DataSnap.FireDAC DBX (Beispiel)]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
&lt;br /&gt;
[[en:Connect to DataSnap Server (FireDAC)]]&lt;br /&gt;
[[fr:Connexion à un serveur DataSnap (FireDAC)]]&lt;br /&gt;
[[ja:DataSnap サーバーへの接続（FireDAC）]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Herstellen_einer_Verbindung_zum_DataSnap-Server_(FireDAC)&amp;diff=209062</id>
		<title>Herstellen einer Verbindung zum DataSnap-Server (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Herstellen_einer_Verbindung_zum_DataSnap-Server_(FireDAC)&amp;diff=209062"/>
		<updated>2016-07-28T09:31:52Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Updated online. LOC-22895&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Datenbankkonnektivität (FireDAC)}}&lt;br /&gt;
In diesem Thema wird beschrieben, wie eine Verbindung zu mehrschichtigen DataSnap-Servern hergestellt wird.&lt;br /&gt;
&lt;br /&gt;
==Unterstützte Versionen==&lt;br /&gt;
&lt;br /&gt;
Der mehrschichtige FireDAC-DataSnap-Treiber unterstützt:&lt;br /&gt;
&lt;br /&gt;
* Mit {{Product}} 2007 und höher erzeugte DataSnap-Server.&lt;br /&gt;
* Mit {{Product}} XE2 Enterprise und höher erzeugte DataSnap-Clients.&lt;br /&gt;
&lt;br /&gt;
==Client-Software==&lt;br /&gt;
&lt;br /&gt;
FireDAC linkt den {{Company}} DataSnap-dbExpress-Treiber statisch, daher sind keine weiteren Dateien oder DLLs erforderlich. Unterstützt wird {{Product}} XE2 Enterprise und höher.&lt;br /&gt;
&lt;br /&gt;
==Treibereinbindung==&lt;br /&gt;
&lt;br /&gt;
So binden Sie den DataSnap-Treiber ein:&lt;br /&gt;
&lt;br /&gt;
* Ziehen Sie aus der Paletten-Seite &amp;quot;FireDAC Links&amp;quot; eine [[lib_de:FireDAC.Phys.DS.TFDPhysDSDriverLink|TFDPhysDSDriverLink]]-Komponente auf das Formular.&lt;br /&gt;
* Oder fügen Sie die Unit [[lib_de:FireDAC.Phys.DS|FireDAC.Phys.DS]] in die uses-Klausel ein.&lt;br /&gt;
&lt;br /&gt;
==Verbindungsdefinitionsparameter==&lt;br /&gt;
&lt;br /&gt;
Für eine Verbindung mit dem DataSnap-Server ist für die meisten Anwendungen die Angabe von &#039;&#039;&#039;DriverID&#039;&#039;&#039;, &#039;&#039;&#039;Protocol&#039;&#039;&#039;, &#039;&#039;&#039;Server&#039;&#039;&#039;, &#039;&#039;&#039;Port&#039;&#039;&#039;, &#039;&#039;&#039;User_Name&#039;&#039;&#039; und &#039;&#039;&#039;Password&#039;&#039;&#039; erforderlich (Einzelheiten finden Sie unter [[Definieren von Verbindungen (FireDAC)|Definieren von Verbindungen (FireDAC)]]).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DriverID=DS&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beispielwert&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;Protocol&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Das für die Verbindung mit dem DataSnap-Server verwendete Protokoll. Folgende Werte sind möglich:&lt;br /&gt;
* TCP/IP: Verbindung über das TCP/IP-Protokoll. Dies ist das Standardprotokoll.&lt;br /&gt;
* HTTP: Verbindung über das HTTP-Protokoll.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TCP/IP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;Server &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Adresse des Servers, mit dem verbunden werden soll.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | 127.0.0.1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;Port &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Der TCP/IP- oder HTTP-Port, über den der DataSnap-Server empfängt. Der Vorgabewert für TCP/IP ist 211, für HTTP - 8080.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | 211&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;User_Name &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Benutzername für die Authentifizierung beim DataSnap-Server.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;Password&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Passwort für die Authentifizierung beim DataSnap-Server.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;BufferKBSize &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zu verwendende Puffergröße in Kilobyte für Lese- und Schreibvorgänge. Der Vorgabewert ist 32 KB.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | 64&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;Filters &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Client-Filter zum Speichern der Filterkonfiguration. Der Vorgabewert ist leer. Weitere Informationen unter: [[lib_de:Data.DBXCommon.TDBXPropertyNames#filters|TDBXPropertyNames.Filters]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |{ &amp;quot;ZLibCompression&amp;quot;: {} }&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;URLPath &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. URL-Pfad für den HTTP-DataSnap-Dienst, wenn das HTTP-Protokoll verwendet wird. Der Vorgabewert ist leer.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;DatasnapContext &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. Pfad zum DS-HTTP-Dienst für die Zusammenstellung des URL. Die aktuelle Konvention lautet: &amp;quot;[http://x.com/datasnap/provider/classname/method/params http://x.com/datasnap/provider/classname/method/params]&amp;quot;. Der Benutzer kann dabei das Wort &amp;quot;datasnap&amp;quot; ändern oder löschen. Der Vorgabewert ist &amp;quot;datasnap/&amp;quot;.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;DSProxyHost &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. Der Host, über den Anforderungen gesendet werden können, oder ein leerer String, wenn Sie keinen Proxy verwenden. Der Vorgabewert ist leer.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;DSProxyPort &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. Der Port auf dem Proxy-Host, über den Anforderungen gesendet werden können. Wenn DSProxyHost festgelegt ist, wird dieser Wert ignoriert. Der Vorgabewert ist leer.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;DSProxyUsername &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. Benutzername für die Authentifizierung beim Proxy. Der Vorgabewert ist leer.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;DSProxyPassword &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. Passwort für die Authentifizierung beim Proxy. Der Vorgabewert ist leer.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;DSAuthenticationScheme &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. DataSnap-Authentifizierungsschema. Wird in Verbindung mit dem DataSnap-Benutzernamen und -Passwort für die Authentifizierung mit dem HTTP-Protokoll verwendet. Setzen Sie diesen Parameter auf &amp;quot;basic&amp;quot;, um &amp;quot;User_Name&amp;quot;-/&amp;quot;Password&amp;quot;-Werte mit einer HTTP-Basisauthentifizierung zusätzlich zum Senden dieser Werte in dem DBX-Verbindungsstring zu senden. Mit der HTTP-Basisauthentifizierung können Anmeldeinformationen an einen Zwischenprozess-DataSnap-HTTP-Tunnelserver übergeben werden. Der Vorgabewert ist leer.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039;LoginTimeout &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. Zeitüberschreitungswert bei der Verbindung. Der Wert enthält die Anzahl von Millisekunden, die der Client darauf wartet, dass die Verbindung möglich wird. Der Wert stellt die Zeitüberschreitung für die erste Serverantwortbestätigung und nicht für die gesamte Verbindungs-/Authentifizierungsphase bereit. Dieser Parameter sollte verwendet werden, um das Einfrieren der Anwendung zu verhindern, wenn die Möglichkeit besteht, dass Verbindungen zu älteren DataSnap-Server-Versionen oder zu anderen Anwendungen versucht werden, die das aktuelle Kommunikationsprotokoll nicht bestätigen. Der Vorgabewert ist 10000ms.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&#039;&#039;&#039; CommunicationTimeout &#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nur HTTP. Zeitüberschreitungswert in Millisekunden für eine Antwort nach Herstellen der Verbindung. Der Vorgabewert ist leer.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Anwendungsfälle==&lt;br /&gt;
&lt;br /&gt;
Herstellen einer Verbindung zum lokalen DataSnap-Server mit Standardeinstellungen:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 DriverID=DS&lt;br /&gt;
&lt;br /&gt;
Herstellen einer Verbindung zum DataSnap-Server mit dem auf einem lokalen Host ausgeführten TCP/IP-Protokoll:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 DriverID=DS&lt;br /&gt;
 Protocol=tcp/ip&lt;br /&gt;
 Server=127.0.0.1&lt;br /&gt;
 Port=211&lt;br /&gt;
 User_Name=dsusr&lt;br /&gt;
 Password=123&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Allgemeine Verbindungsparameter (FireDAC)|Allgemeine Verbindungsparameter]]&lt;br /&gt;
* [[FAQ (FireDAC)|FAQs]]&lt;br /&gt;
* [[Konfigurieren von Treibern (FireDAC)|Konfigurieren von FireDAC-Treibern]]&lt;br /&gt;
* [[Definieren von Verbindungen (FireDAC)|Verwalten von FireDAC-Verbindungsdefinitionen]]&lt;br /&gt;
* [[Samp:DataSnap.FireDAC Sample|DataSnap.FireDAC (Beispiel)]]&lt;br /&gt;
* [[Samp:DataSnap.FireDAC DBX Sample|DataSnap.FireDAC DBX (Beispiel)]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
&lt;br /&gt;
[[en:Connect to DataSnap Server (FireDAC)]]&lt;br /&gt;
[[fr:Connexion à un serveur DataSnap (FireDAC)]]&lt;br /&gt;
[[ja:DataSnap サーバーへの接続（FireDAC）]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Native_FireMonkey-iOS-Steuerelemente&amp;diff=208901</id>
		<title>Native FireMonkey-iOS-Steuerelemente</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Native_FireMonkey-iOS-Steuerelemente&amp;diff=208901"/>
		<updated>2016-06-23T10:55:21Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Imported June 17, 2016 TP. LOC-22913_Topics_BE_GO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Native FireMonkey-Steuerelemente}}&lt;br /&gt;
&lt;br /&gt;
In diesem Thema werden die &#039;&#039;&#039;nativen iOS-Steuerelemente&#039;&#039;&#039; von {{FM}} beschrieben.&lt;br /&gt;
&lt;br /&gt;
==Darstellung von nativen {{FM}}-iOS-Steuerelementen==&lt;br /&gt;
&lt;br /&gt;
{{FM}} bietet für bestimmte visuelle Komponenten eine native Darstellung.&lt;br /&gt;
&lt;br /&gt;
* Setzen Sie die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] auf {{Const|Styled}}, um das Steuerelement in der Standard-{{FM}}-Darstellung anzuzeigen. {{Const|Styled}} ist der Vorgabewert von [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]].&lt;br /&gt;
* Setzen Sie die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] auf {{Const|Platform}}, um dieses Steuerelement im nativen Stil anzuzeigen.&lt;br /&gt;
&lt;br /&gt;
==Verfügbare native {{FM}}-iOS-Steuerelemente==&lt;br /&gt;
&lt;br /&gt;
Die folgende Liste enthält alle Steuerelemente, die eine native Darstellung unterstützen:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.Calendar.TCalendar|TCalendar]]&lt;br /&gt;
* [[lib_de:FMX.Edit.TEdit|TEdit]]&lt;br /&gt;
* [[lib_de:FMX.ListView.TCustomListView|TListView]]&lt;br /&gt;
* [[lib_de:FMX.Memo.TMemo|TMemo]]&lt;br /&gt;
* Bildlauffeld-Steuerelemente: [[lib_de:FMX.ScrollBox.TPresentedScrollBox|TPresentedScrollBox]], [[lib_de:FMX.ScrollBox.TPresentedVertScrollBox|TPresentedVertScrollBox]], [[lib_de:FMX.ScrollBox.TPresentedHorzScrollBox|TPresentedHorzScrollBox]], [[lib_de:FMX.ScrollBox.TPresentedFramedScrollBox|TPresentedFramedScrollBox]], [[lib_de:FMX.ScrollBox.TPresentedFramedVertScrollBox|TPresentedFramedVertScrollBox]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TSwitch|TSwitch]]&lt;br /&gt;
&lt;br /&gt;
==Visuelle Änderungen an nativen iOS-Steuerelementen==&lt;br /&gt;
&lt;br /&gt;
Wenn die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] einer visuellen Komponente auf {{Const|Platform}} gesetzt wird, ändert sich die Darstellung dieses Steuerelements im [[Formular-Designer|Formular-Designer]], um anzuzeigen, dass es sich um ein natives Steuerelement handelt, und ein kleines telefonähnliches Symbol erscheint in der rechten unteren Ecke.&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle enthält einige Beispielbilder, die das Aussehen von nativen iOS-Steuerelementen zur Entwurfszeit und zur Laufzeit zeigen, wenn die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] auf {{Const|Styled}} bzw. {{Const|Platform}} gesetzt ist:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; |Steuerelement&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Entwurfszeit&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Laufzeit&lt;br /&gt;
|-&lt;br /&gt;
! {{Const|Styled}}&lt;br /&gt;
! {{Const|Platform}}&lt;br /&gt;
! {{Const|Styled}}&lt;br /&gt;
! {{Const|Platform}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_de:FMX.Calendar.TCalendar|TCalendar]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TCalendar styled.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TCalendar native DT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TCalendar styled.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TCalendar native.png|200px]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_de:FMX.Edit.TEdit|TEdit]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEditStyled.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEditPlatform DT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEditStyled.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEditPlatform.png|200px]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_de:FMX.ListView.TListView|TListView]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TListViewStyled RT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TListViewPlatform RT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TListViewStyled RT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TListViewPlatform RT.png|200px]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_de:FMX.ScrollBox.TPresentedScrollBox|TPresentedScrollBox]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TPresentedScrollBox Styled DT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TPresentedScrollBox Platform DT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TPresentedScrollBox Styled.jpg|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TPresentedScrollBox Platform.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_de:FMX.StdCtrls.TSwitch|TSwitch]]&lt;br /&gt;
|&lt;br /&gt;
* Ein:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchStyledOn.png|100px]]&lt;br /&gt;
* Aus:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchStyledOff.png|100px]]&lt;br /&gt;
|&lt;br /&gt;
* Ein:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchPlatformOn DT.png|100px]]&lt;br /&gt;
* Aus:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchPlatformOff DT.png|100px]]&lt;br /&gt;
|&lt;br /&gt;
* Ein:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchStyledOn.png|100px]]&lt;br /&gt;
* Aus:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchStyledOff.png|100px]]&lt;br /&gt;
|&lt;br /&gt;
* Ein:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchPlatformOn.png|100px]]&lt;br /&gt;
* Aus:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchPlatformOff.png|100px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hinzufügen von nativen iOS-Steuerelementen zu Anwendungen==&lt;br /&gt;
&lt;br /&gt;
So fügen Sie Ihrer Anwendung native iOS-Steuerelemente hinzu:&lt;br /&gt;
&lt;br /&gt;
# Fügen Sie dem Formular eine Komponente hinzu, die die native Darstellung unterstützt ([[#Verfügbare native FireMonkey-iOS-Steuerelemente|Liste der unterstützten Steuerelemente]]).&lt;br /&gt;
# Setzen Sie im [[Objektinspektor|Objektinspektor]] auf der Registerkarte &#039;&#039;&#039;Eigenschaften&#039;&#039;&#039; die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] auf {{Const|Platform}}. Die Darstellung der Komponente zur Entwurfszeit ändert sich (siehe [[#Visuelle Änderungen an nativen iOS-Steuerelementen|Visuelle Änderungen an nativen iOS-Steuerelementen]]).&lt;br /&gt;
# Führen Sie die Anwendung entweder auf einem [[Ausführen von iOS-Anwendungen auf einem iOS-Gerät|iOS-Gerät]] oder im [[Ausführen von iOS-Anwendungen auf dem iOS-Simulator|iOS-Simulator]] aus.&lt;br /&gt;
&lt;br /&gt;
Alternativ können Sie den Wert von [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] zur Laufzeit ändern. Um die native Darstellung eines [[lib_de:FMX.Edit.TEdit|TEdit]]-Steuerelements auszuwählen, fügen Sie die folgende Codezeile in Ihre Anwendung ein: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
Edit1.ControlType := TPresentedControl.TControlType.Platform;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
Edit1-&amp;gt;ControlType = TPresentedControl::TControlType::Platform;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kombinieren nativer iOS-Steuerelemente mit nicht nativen Steuerelementen==&lt;br /&gt;
&lt;br /&gt;
Kombinieren Sie native Steuerelemente nicht mit nicht nativen Steuerelementen. Native Steuerelemente unterstützen die Z-Reihenfolge des Formulars nicht: ein natives Steuerelement befindet sich immer über allen anderen Steuerelementen auf dem Formular. Es gibt aber einige nicht native Steuerelemente, die Sie mit nativen Steuerelementen kombinieren können, da sie die Z-Reihenfolge auf nativen Steuerelementen unterstützen.&lt;br /&gt;
&lt;br /&gt;
Die folgende Liste enthält alle Steuerelemente, die über die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] verfügen und daher mit nativen Steuerelementen kombiniert werden können:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.MultiView.TMultiView.ControlType|TMultiView]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TButton|TButton]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TSpeedButton|TSpeedButton]]&lt;br /&gt;
* [[lib_de:FMX.Colors.TColorButton|TColorButton]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TCornerButton|TCornerButton]]&lt;br /&gt;
* [[lib_de:FMX.ExtCtrls.TPopupBox|TPopupBox]]&lt;br /&gt;
* {{Code|TMagnifierGlass}}&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TPanel|TPanel]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TLabel|TLabel]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TCheckBox|TCheckBox]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TRadioButton|TRadioButton]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TGroupBox|TGroupBox]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TStatusBar|TStatusBar]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TToolBar|TToolBar]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TProgressBar|TProgressBar]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TTrackBar|TTrackBar]]&lt;br /&gt;
&lt;br /&gt;
Die folgende Liste enthält alle Steuerelemente, die nicht über die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] verfügen, jedoch auch mit nativen Steuerelementen kombiniert werden können:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.WebBrowser.TWebBrowser|TWebBrowser]]&lt;br /&gt;
* [[lib_de:FMX.Media.TMediaPlayer|TMediaPlayer]]&lt;br /&gt;
* [[lib_de:FMX.Advertising.TBannerAd|TBannerAd]]&lt;br /&gt;
* [[lib_de:FMX.Maps.TMapView|TMapView]]&lt;br /&gt;
&lt;br /&gt;
==Vorteile von nativen iOS-Steuerelementen==&lt;br /&gt;
&lt;br /&gt;
Einige Steuerelemente unterstützen zusätzliche Funktionen, wenn sie als native Steuerelemente verwendet werden: &lt;br /&gt;
&lt;br /&gt;
===TMemo und TEdit===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Auto-Korrektur&#039;&#039;&#039;: Bei der Eingabe werden Wörter vorgeschlagen; diese können durch Klicken auf die Leertaste verwendet werden.&lt;br /&gt;
* &#039;&#039;&#039;Textersetzung&#039;&#039;&#039;: Als falsch geschrieben erkannte Wörter werden mit Rot unterstrichen. Durch Tippen auf dieses Wort wird eine Popup-Blase mit der empfohlenen Ersetzung eingeblendet. Die empfohlenen Ersatzwörter werden auch angezeigt, wenn Sie den Text auswählen und auf die Schaltfläche &#039;&#039;&#039;Ersetzen…&#039;&#039;&#039; klicken.&lt;br /&gt;
* &#039;&#039;&#039;Definieren&#039;&#039;&#039;: Sie können ein Wort auswählen und auf &#039;&#039;&#039;Definieren&#039;&#039;&#039; klicken, um die Definition dieses Wortes in einem Wörterbuch anzuzeigen.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;.&amp;quot;-Kürzel&#039;&#039;&#039;: Durch Doppeltippen auf die Leertaste wird ein Punkt gefolgt von einem Leerzeichen eingefügt.&lt;br /&gt;
* &#039;&#039;&#039;Kürzel&#039;&#039;&#039;: Damit wird das Wort oder der Ausdruck bei der Eingabe erweitert.&lt;br /&gt;
* Erkennung von Telefonnummern, Adressen.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Wählen Sie in &#039;&#039;&#039;iOS&#039;&#039;&#039; {{Menu|Einstellungen &amp;amp;gt; Allgemein &amp;amp;gt; Tastatur}}, um eine Seite zu öffnen, auf der Sie einige dieser Funktionen umschalten können.&lt;br /&gt;
&lt;br /&gt;
 Einige der obigen Funktionen sind im Kontextmenü des Steuerelements enthalten. Deshalb unterscheiden sich die Kontextmenüs von Memo-Steuerelementen oder Eingabe-Steuerelementen für {{Const|Styled}} und {{Const|Platform}}:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Steuerelement&lt;br /&gt;
! Kontextmenü ({{Const|Styled}})&lt;br /&gt;
! Kontextmenü ({{Const|Platform}})&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_de:FMX.Memo.TMemo|TMemo]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TMemo ContextMenu Styled RT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TMemo ContextMenu Platform RT.png|400px]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_de:FMX.Edit.TEdit|TEdit]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEdit ContextMenu Styled RT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEdit ContextMenu Platform RT.png|400px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TListView===&lt;br /&gt;
&lt;br /&gt;
Listenansichten verfügen über die Eigenschaft &#039;&#039;&#039;[[lib_de:FMX.ListView.TListViewBase.NativeOptions|NativeOptions]]&#039;&#039;&#039;, die Untereigenschaften zum Anpassen der nativen Darstellung der Listenansicht bereitstellt.&lt;br /&gt;
&lt;br /&gt;
==Beschränkungen von nativen iOS-Steuerelementen==&lt;br /&gt;
&lt;br /&gt;
Bevor Sie die nativen Steuerelemente verwenden, sollten Sie die folgenden Beschränkungen beachten:&lt;br /&gt;
&lt;br /&gt;
* Native Steuerelemente unterstützen keine vordefinierten oder benutzerdefinierten Stile. Wenn die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] eines nativen Steuerelements auf {{Const|Platform}} gesetzt ist, wird der Wert der Eigenschaft [[lib_de:FMX.Controls.TStyledControl.StyleLookup|StyleLookup]] ignoriert.&lt;br /&gt;
* Native Steuerelemente unterstützen die Z-Reihenfolge des Formulars nicht: ein natives Steuerelement wird immer über anderen verfügbaren {{FM}}-Steuerelementen auf Ihrem Formular angezeigt. Weitere Details finden Sie unter [[#Kombinieren nativer iOS-Steuerelemente mit nicht nativen Steuerelementen|Kombinieren nativer iOS-Steuerelemente mit nicht nativen Steuerelementen]].&lt;br /&gt;
* Die folgenden Ereignisbehandlungsroutinen werden nicht unterstützt und können nicht implementiert werden:&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnApplyStyleLookup|OnApplyStyleLookup]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnClick|OnClick]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnDblClick|OnDblClick]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnDragDrop|OnDragDrop]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnDragEnd|OnDragEnd]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnDragEnter|OnDragEnter]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnDragLeave|OnDragLeave]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnDragOver|OnDragOver]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnGesture|OnGesture]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnKeyDown|OnKeyDown]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnKeyUp|OnKeyUp]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnPaint|OnPaint]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnPainting|OnPainting]]&lt;br /&gt;
&lt;br /&gt;
Es gibt auch einige steuerelementspezifische Beschränkungen:&lt;br /&gt;
&lt;br /&gt;
===TCalendar===&lt;br /&gt;
&lt;br /&gt;
In der nativen Darstellung einer Kalenderansicht werden keine vollen Monate angezeigt, daher werden die folgenden Eigenschaften nicht unterstützt:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.Calendar.TCalendar.WeekNumbers|WeekNumbers]]&lt;br /&gt;
* [[lib_de:FMX.Calendar.TCalendar.FirstDayOfWeek|FirstDayOfWeek]]&lt;br /&gt;
&lt;br /&gt;
===TListView===&lt;br /&gt;
&lt;br /&gt;
Wie beim Steuerelementtyp {{Const|Styled}} hängen das Erscheinungsbild und das Verhalten einer Listenansicht mit dem Steuerelementtyp {{Const|Platform}} von Eigenschaften des Listenansichts-Steuerelements, wie [[lib_de:FMX.ListView.TAppearanceListView.ItemAppearance|ItemAppearance]], ab. Die native Darstellung der Listenansicht ist jedoch von einigen anderen für das Listenansichts-Steuerelement spezifischen Beschränkungen betroffen:&lt;br /&gt;
&lt;br /&gt;
* Nicht alle stilbezogenen Eigenschaften funktionieren in der nativen Darstellung. Für mit Stilen versehene Darstellungsmodi stehen nur die Standardoptionen für die native Darstellung zur Verfügung. Bei der nativen Darstellung verwendet die Listenansicht den Standardstil, die Ausrichtung und die Positionierung der Zielplattform. Sie können [[lib_de:FMX.ListView.TListViewBase.NativeOptions|NativeOptions.Styled]] aktivieren, um das Erscheinungsbild der nativen Darstellung einer Listenansicht anzupassen, aber Sie können nicht so viele Aspekte des Erscheinungsbilds wie beim [[lib_de:FMX.ListView.TListViewBase.ControlType|ControlType]] {{Const|Styled}} anpassen.&lt;br /&gt;
* Mit dem [[lib_de:FMX.ListView.TAppearanceListView.ItemEditAppearanceName|Bearbeitungs-Erscheinungsbild]] kann nur festgelegt werden, ob in der Listenansicht Kontrollkästchen oder Löschen-Schaltflächen angezeigt werden. Weitere Effekte sind nicht möglich.&lt;br /&gt;
* Die Funktion [[lib_de:FMX.ListView.TListViewBase.CanSwipeDelete|Wischen zum Löschen]] funktioniert nur, wenn das Bearbeitungs-Erscheinungsbild, das Löschen-Schaltflächen enthält, ausgewählt ist.&lt;br /&gt;
* Sie können die Ausrichtung und Position von Bildern und Schaltflächen nicht ändern. Bilder werden links und Schaltflächen rechts angezeigt.&lt;br /&gt;
* Die Animationen und das Timing können von denjenigen einer Listenansicht mit dem Steuerelementtyp {{Const|Styled}} abweichen.&lt;br /&gt;
* Eintragsüberschriften sind immer fest.&lt;br /&gt;
* Die Funktion [[lib_de:FMX.ListView.TListViewBase.SearchAlwaysOnTop|Suchfeld immer im Vordergrund]] funktioniert nur, wenn keine Überschriften vorhanden sind.&lt;br /&gt;
* Das Ereignis [[lib_de:FMX.ListView.TListViewBase.OnItemClickEx|OnItemClickEx]] stellt keine Informationen über die angeklickte Position oder das angeklickte Objekt bereit.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Native FireMonkey-Steuerelemente|Native FireMonkey-Steuerelemente]]&lt;br /&gt;
* [[Native FireMonkey-Windows-Steuerelemente|Native FireMonkey-Windows-Steuerelemente]]&lt;br /&gt;
* [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|TPresentedControl.ControlType]]&lt;br /&gt;
* [[Anpassen der Darstellung von FireMonkey-Listenansichten|Anpassen der Darstellung von {{FM}}-Listenansichten]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
&lt;br /&gt;
* [[samp_en:FMX.NativeControls Sample|{{FM}} Native Controls]] (Beispiel)&lt;br /&gt;
&lt;br /&gt;
[[Category:Geräteübergreifend]]&lt;br /&gt;
[[Category:FMX]]&lt;br /&gt;
[[Category:IOS]]&lt;br /&gt;
[[Category:XE8]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=%C3%84nderungen_f%C3%BCr_FireMonkey-Gittersteuerelemente_in_Berlin&amp;diff=208899</id>
		<title>Änderungen für FireMonkey-Gittersteuerelemente in Berlin</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=%C3%84nderungen_f%C3%BCr_FireMonkey-Gittersteuerelemente_in_Berlin&amp;diff=208899"/>
		<updated>2016-06-23T10:55:18Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Imported June 17, 2016 TP. LOC-22913_Topics_BE_GO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Neuerungen}}&lt;br /&gt;
&lt;br /&gt;
In {{Version|Berlin}} wurden die [[lib_de:FMX.Grid.Style.TStyledGrid|Darstellungslogik]] und das [[lib_de:FMX.Grid.TGridModel|Datenmodell]] von [[lib_de:FMX.Grid.TCustomGrid|Gittersteuerelementen]] von den Steuerelementen selbst getrennt. Diese Trennung ermöglicht die Unterstützung von [[Native FireMonkey-Steuerelemente|nativen Darstellungen]] von Gittersteuerelementen.&lt;br /&gt;
&lt;br /&gt;
Als Folge dieser Änderung hat sich die API von Gittersteuerelementen ([[lib_de:FMX.Grid.TCustomGrid|TCustomGrid]] und deren Unterklassen, [[lib_de:FMX.Grid.TGrid|TGrid]] und [[lib_de:FMX.Grid.TStringGrid|TStringGrid]]) geändert. Wenn Sie ein altes Projekt, in dem Gittersteuerelemente verwendet werden, nach {{Version|Berlin}} migrieren, müssen Sie diese API-Änderungen berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
==Neues Datenmodell==&lt;br /&gt;
&lt;br /&gt;
Gittersteuerelemente haben die neue Eigenschaft [[lib_de:FMX.Grid.TCustomGrid.Model|Model]], die auf ihr Datenmodell zeigt, das eine Instanz von [[lib_de:FMX.Grid.TGridModel|TGridModel]] oder eine Unterklasse ist (z. B. [[lib_de:FMX.Grid.TStringGrid|TStringGrid]] verwendet [[lib_de:FMX.Grid.TStringGridModel|TStringGridModel]]). Einige Eigenschaften von Gittersteuerelementen, wie [[lib_de:FMX.Grid.TGridModel.Options|Options]], wurden in das Datenmodell verschoben und sind in Gittersteuerelementen nur als Spiegel ihres Datenmodelläquivalents verblieben.&lt;br /&gt;
&lt;br /&gt;
Es wurden außerdem zwei neue Optionen, [[lib_de:FMX.Grid.TGridOption|TGridOption.AutoDisplacement]] und [[lib_de:FMX.Grid.TGridOption|TGridOption.CancelEditingByDefault]], implementiert, um die Bearbeitung von Gitterzellen auf mobilen Geräten mit einer virtuellen Tastatur zu vereinfachen.&lt;br /&gt;
&lt;br /&gt;
==Neue Darstellungssteuerelemente==&lt;br /&gt;
&lt;br /&gt;
Die auffälligste Änderung ist die neu hinzugefügte Unit [[lib_de:FMX.Grid.Style|FMX.Grid.Style]]. Die darin enthaltene Klasse [[lib_de:FMX.Grid.Style.TStyledGrid|TStyledGrid]] implementiert die [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|Standard-{{FM}}-Darstellung]] für Gittersteuerelemente. Sie müssen die neue Unit [[lib_de:FMX.Grid.Style|FMX.Grid.Style]] in eine der &amp;lt;source lang=&amp;quot;delphi&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;uses&amp;lt;/source&amp;gt;-Klauseln jedes alten Projekts einfügen.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; In neue Projekte wird diese Unit automatisch eingefügt.&lt;br /&gt;
&lt;br /&gt;
Sie sollten mit der Darstellungsklasse nicht direkt arbeiten, sondern stattdessen das [[#Neues Datenmodell|Datenmodell]] verwenden.&lt;br /&gt;
&lt;br /&gt;
==Andere Änderungen für Gittersteuerelemente==&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zur Trennung des [[#Neues Datenmodell|Datenmodells]] und der [[#Neue Darstellungssteuerelemente|Darstellungssteuerelemente]] von den Gittersteuerelementen wurden weitere Änderungen vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Zu Gittersteuerelementen wurden einige neue API-Member hinzugefügt: [[lib_de:FMX.Grid.TCustomGrid.CellByPoint|CellByPoint]], [[lib_de:FMX.Grid.TCustomGrid.CellRect|CellRect]], [[lib_de:FMX.Grid.TCustomGrid.CanEdit|CanEdit]], [[lib_de:FMX.Grid.TCustomGrid.Col|Col]], [[lib_de:FMX.Grid.TCustomGrid.DisplayCells|DisplayCells]], [[lib_de:FMX.Grid.TCustomGrid.LeftColumn|LeftColumn]], [[lib_de:FMX.Grid.TCustomGrid.RightColumn|RightColumn]], [[lib_de:FMX.Grid.TCustomGrid.Row|Row]], [[lib_de:FMX.Grid.TCustomGrid.ScrollToSelectedCell|ScrollToSelectedCell]], [[lib_de:FMX.Grid.TCustomGrid.SetTopLeft|SetTopLeft]].&lt;br /&gt;
&lt;br /&gt;
Zu {{Code|TStringGrid}} wurden Eigenschaften zur Unterstützung des Hilfekontextes hinzugefügt: [[lib_de:FMX.Grid.TStringGrid.HelpContext|HelpContext]], [[lib_de:FMX.Grid.TStringGrid.HelpKeyword|HelpKeyword]], [[lib_de:FMX.Grid.TStringGrid.HelpType|HelpType]].&lt;br /&gt;
&lt;br /&gt;
Gittersteuerelemente sind nicht mehr für deren Darstellung zuständig. Daher wird [[lib_de:FMX.Controls.TControl.OnApplyStyleLookup|OnApplyStyleLookup]] nur von {{Code|TStringGrid}} unterstützt, und folgende Ereignisse werden nicht mehr von Gittersteuerelementen veröffentlicht: [[lib_de:FMX.Controls.TControl.OnCanFocus|OnCanFocus]], [[lib_de:FMX.Controls.TControl.OnClick|OnClick]], [[lib_de:FMX.Controls.TControl.OnDblClick|OnDblClick]], [[lib_de:FMX.Controls.TControl.OnDragEnter|OnDragEnter]], [[lib_de:FMX.Controls.TControl.OnDragLeave|OnDragLeave]], [[lib_de:FMX.Controls.TControl.OnDragOver|OnDragOver]], [[lib_de:FMX.Controls.TControl.OnDragDrop|OnDragDrop]], [[lib_de:FMX.Controls.TControl.OnDragEnd|OnDragEnd]], [[lib_de:FMX.Controls.TControl.OnEnter|OnEnter]], [[lib_de:FMX.Controls.TControl.OnExit|OnExit]], [[lib_de:FMX.Controls.TControl.OnKeyDown|OnKeyDown]], [[lib_de:FMX.Controls.TControl.OnKeyUp|OnKeyUp]], [[lib_de:FMX.Controls.TControl.OnMouseDown|OnMouseDown]], [[lib_de:FMX.Controls.TControl.OnMouseEnter|OnMouseEnter]], [[lib_de:FMX.Controls.TControl.OnMouseLeave|OnMouseLeave]], [[lib_de:FMX.Controls.TControl.OnMouseMove|OnMouseMove]], [[lib_de:FMX.Controls.TControl.OnMouseUp|OnMouseUp]], [[lib_de:FMX.Controls.TControl.OnMouseWheel|OnMouseWheel]], [[lib_de:FMX.Controls.TControl.OnResize|OnResize]].&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Diese Ereignisse werden nicht als published, sonder als public deklariert, d. h., Sie können sie zur Laufzeit verwenden. Allerdings sollten Sie, wenn möglich, stattdessen [[lib_de:FMX.Grid.TGridModel Events|Ereignisse aus dem Gittermodell]] verwenden.&lt;br /&gt;
&lt;br /&gt;
==Änderungen für Spalten==&lt;br /&gt;
&lt;br /&gt;
Es wurden zwei neue Spaltentypen hinzugefügt:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.Grid.TCurrencyColumn|TCurrencyColumn]] für [[lib_de:System.Currency|Currency]]-Werte.&lt;br /&gt;
* [[lib_de:FMX.Grid.TGlyphColumn|TGlyphColumn]] für Bilder aus [[lib_de:FMX.ImgList.TImageList|Bilderlisten]]. Die Eigenschaft [[lib_de:FMX.Grid.TGrid.Images|TGrid.Images]] wurde zur Angabe der Bilderliste hinzugefügt.&lt;br /&gt;
&lt;br /&gt;
Einige vorhandene Spaltentypen wurden verbessert:&lt;br /&gt;
&lt;br /&gt;
* Zu [[lib_de:FMX.Grid.TDateColumn|TDateColumn]] wurden zwei neue Eigenschaften hinzugefügt: [[lib_de:FMX.Grid.TDateColumn.Format|Format]], [[lib_de:FMX.Grid.TDateColumn.ShowClearButton|ShowClearButton]].&lt;br /&gt;
* [[lib_de:FMX.Grid.TPopupColumn.Items|TPopupColumn.Items]] ist keine Instanz von [[lib_de:System.Classes.TStringList|TStringList]].&lt;br /&gt;
&lt;br /&gt;
An [[lib_de:FMX.Grid.TColumn|TColumn]] wurden einige kleinere Änderungen in Bezug auf das Verhalten der Komponente vorgenommen:&lt;br /&gt;
&lt;br /&gt;
* Durch einige neue Eigenschaften wurde die Arbeit mit dem Zelleditor erleichtert: [[lib_de:FMX.Grid.TColumn.CanEdit|CanEdit]], [[lib_de:FMX.Grid.TColumn.RefreshEditor|RefreshEditor]], [[lib_de:FMX.Grid.TColumn.ValidChar|ValidChar]].&lt;br /&gt;
* Die Eigenschaft [[lib_de:FMX.Grid.TColumn.InEditMode|InEditMode]] hat nun einen booleschen Wert, und es gibt eine neue Eigenschaft, [[lib_de:FMX.Grid.TColumn.EditorState|EditorState]], die weitere Details bereitstellt.&lt;br /&gt;
* Die Eigenschaft {{Code|ApplyImmediately}} ist nicht mehr verfügbar. Eine ähnliche (aber nicht identische) Option wurde hinzugefügt: [[lib_de:FMX.Grid.TGridOption|TGridOption.AutoDisplacement]]. Sie können diese neue Option den [[lib_de:FMX.Grid.TGridModel.Options|Optionen]] des [[lib_de:FMX.Grid.TCustomGrid.Model|Modells]] der Gittersteuerelemente hinzufügen.&lt;br /&gt;
&lt;br /&gt;
{{Code|TColumn}} ist nicht mehr für seine Darstellung zuständig. Daher erhielt {{Code|TColumn}} die Eigenschaft [[lib_de:FMX.Grid.TColumn.Model|Model]], die auf das Datenmodell des übergeordneten Gitters zeigt, und die Eigenschaft [[lib_de:FMX.Grid.TColumn.PresentedControl|PresentedControl]], die auf das Darstellungssteuerelement zeigt. Allerdings wurden viele Eigenschaften und Ereignisse von {{Code|TColumn}} ersetzt oder werden auch nicht mehr unterstützt:&lt;br /&gt;
&lt;br /&gt;
* Verwenden Sie [[lib_de:FMX.Grid.TColumn.SetBounds|SetBounds]], um die Werte der entfernten Eigenschaften [[lib_de:FMX.Controls.TControl.Position|Position]] und [[lib_de:FMX.Controls.TControl.Height|Height]] festzulegen.&lt;br /&gt;
* Nicht mehr unterstützte Eigenschaften: [[lib_de:FMX.Controls.TControl.Align|Align]], [[lib_de:FMX.Controls.TControl.ClipChildren|ClipChildren]], [[lib_de:FMX.Controls.TControl.ClipParent|ClipParent]], [[lib_de:FMX.Controls.TControl.Cursor|Cursor]], [[lib_de:FMX.Controls.TControl.DragMode|DragMode]], [[lib_de:FMX.Controls.TControl.EnableDragHighlight|EnableDragHighlight]], [[lib_de:FMX.Controls.TControl.HitTest|HitTest]], [[lib_de:FMX.Controls.TControl.RotationAngle|RotationAngle]], [[lib_de:FMX.Controls.TControl.RotationCenter|RotationCenter]], [[lib_de:FMX.Controls.TControl.Scale|Scale]], [[lib_de:FMX.Controls.TControl.Size|Size]], [[lib_de:FMX.Controls.TControl.TabOrder|TabOrder]], [[lib_de:FMX.Controls.TControl.TabStop|TabStop]], [[lib_de:FMX.Controls.TControl.TouchTargetExpansion|TouchTargetExpansion]].&lt;br /&gt;
* Nicht mehr unterstützte Ereignisse: [[lib_de:FMX.Controls.TControl.OnApplyStyleLookup|OnApplyStyleLookup]], [[lib_de:FMX.Controls.TControl.OnCanFocus|OnCanFocus]], [[lib_de:FMX.Controls.TControl.OnClick|OnClick]], [[lib_de:FMX.Controls.TControl.OnDblClick|OnDblClick]], [[lib_de:FMX.Controls.TControl.OnDragEnter|OnDragEnter]], [[lib_de:FMX.Controls.TControl.OnDragLeave|OnDragLeave]], [[lib_de:FMX.Controls.TControl.OnDragOver|OnDragOver]], [[lib_de:FMX.Controls.TControl.OnDragDrop|OnDragDrop]], [[lib_de:FMX.Controls.TControl.OnDragEnd|OnDragEnd]], [[lib_de:FMX.Controls.TControl.OnEnter|OnEnter]], [[lib_de:FMX.Controls.TControl.OnExit|OnExit]], [[lib_de:FMX.Controls.TControl.OnKeyDown|OnKeyDown]], [[lib_de:FMX.Controls.TControl.OnKeyUp|OnKeyUp]], [[lib_de:FMX.Controls.TControl.OnMouseDown|OnMouseDown]], [[lib_de:FMX.Controls.TControl.OnMouseEnter|OnMouseEnter]], [[lib_de:FMX.Controls.TControl.OnMouseLeave|OnMouseLeave]], [[lib_de:FMX.Controls.TControl.OnMouseMove|OnMouseMove]], [[lib_de:FMX.Controls.TControl.OnMouseUp|OnMouseUp]], [[lib_de:FMX.Controls.TControl.OnMouseWheel|OnMouseWheel]].&lt;br /&gt;
*: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Diese Ereignisse werden nicht als published, sonder als public deklariert, d. h., Sie können sie zur Laufzeit verwenden. Allerdings sollten Sie, wenn möglich, stattdessen [[lib_de:FMX.Grid.TGridModel Events|Ereignisse aus dem Gittermodell]] verwenden.&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Native_FireMonkey-iOS-Steuerelemente&amp;diff=208900</id>
		<title>Native FireMonkey-iOS-Steuerelemente</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Native_FireMonkey-iOS-Steuerelemente&amp;diff=208900"/>
		<updated>2016-06-23T10:55:09Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Imported June 17, 2016 TP. LOC-22913_Topics_BE_GO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Native FireMonkey-Steuerelemente}}&lt;br /&gt;
&lt;br /&gt;
In diesem Thema werden die &#039;&#039;&#039;nativen iOS-Steuerelemente&#039;&#039;&#039; von {{FM}} beschrieben.&lt;br /&gt;
&lt;br /&gt;
==Darstellung von nativen {{FM}}-iOS-Steuerelementen==&lt;br /&gt;
&lt;br /&gt;
{{FM}} bietet für bestimmte visuelle Komponenten eine native Darstellung.&lt;br /&gt;
&lt;br /&gt;
* Setzen Sie die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] auf {{Const|Styled}}, um das Steuerelement in der Standard-{{FM}}-Darstellung anzuzeigen. {{Const|Styled}} ist der Vorgabewert von [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]].&lt;br /&gt;
* Setzen Sie die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] auf {{Const|Platform}}, um dieses Steuerelement im nativen Stil anzuzeigen.&lt;br /&gt;
&lt;br /&gt;
==Verfügbare native {{FM}}-iOS-Steuerelemente==&lt;br /&gt;
&lt;br /&gt;
Die folgende Liste enthält alle Steuerelemente, die eine native Darstellung unterstützen:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.Calendar.TCalendar|TCalendar]]&lt;br /&gt;
* [[lib_de:FMX.Edit.TEdit|TEdit]]&lt;br /&gt;
* [[lib_de:FMX.ListView.TCustomListView|TListView]]&lt;br /&gt;
* [[lib_de:FMX.Memo.TMemo|TMemo]]&lt;br /&gt;
* Bildlauffeld-Steuerelemente: [[lib_de:FMX.ScrollBox.TPresentedScrollBox|TPresentedScrollBox]], [[lib_de:FMX.ScrollBox.TPresentedVertScrollBox|TPresentedVertScrollBox]], [[lib_de:FMX.ScrollBox.TPresentedHorzScrollBox|TPresentedHorzScrollBox]], [[lib_de:FMX.ScrollBox.TPresentedFramedScrollBox|TPresentedFramedScrollBox]], [[lib_de:FMX.ScrollBox.TPresentedFramedVertScrollBox|TPresentedFramedVertScrollBox]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TSwitch|TSwitch]]&lt;br /&gt;
&lt;br /&gt;
==Visuelle Änderungen an nativen iOS-Steuerelementen==&lt;br /&gt;
&lt;br /&gt;
Wenn die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] einer visuellen Komponente auf {{Const|Platform}} gesetzt wird, ändert sich die Darstellung dieses Steuerelements im [[Formular-Designer|Formular-Designer]], um anzuzeigen, dass es sich um ein natives Steuerelement handelt, und ein kleines telefonähnliches Symbol erscheint in der rechten unteren Ecke.&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle enthält einige Beispielbilder, die das Aussehen von nativen iOS-Steuerelementen zur Entwurfszeit und zur Laufzeit zeigen, wenn die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] auf {{Const|Styled}} bzw. {{Const|Platform}} gesetzt ist:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; |Steuerelement&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Entwurfszeit&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Laufzeit&lt;br /&gt;
|-&lt;br /&gt;
! {{Const|Styled}}&lt;br /&gt;
! {{Const|Platform}}&lt;br /&gt;
! {{Const|Styled}}&lt;br /&gt;
! {{Const|Platform}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_de:FMX.Calendar.TCalendar|TCalendar]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TCalendar styled.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TCalendar native DT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TCalendar styled.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TCalendar native.png|200px]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_de:FMX.Edit.TEdit|TEdit]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEditStyled.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEditPlatform DT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEditStyled.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEditPlatform.png|200px]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_de:FMX.ListView.TListView|TListView]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TListViewStyled RT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TListViewPlatform RT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TListViewStyled RT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TListViewPlatform RT.png|200px]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_de:FMX.ScrollBox.TPresentedScrollBox|TPresentedScrollBox]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TPresentedScrollBox Styled DT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TPresentedScrollBox Platform DT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TPresentedScrollBox Styled.jpg|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TPresentedScrollBox Platform.jpg|200px]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_de:FMX.StdCtrls.TSwitch|TSwitch]]&lt;br /&gt;
|&lt;br /&gt;
* Ein:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchStyledOn.png|100px]]&lt;br /&gt;
* Aus:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchStyledOff.png|100px]]&lt;br /&gt;
|&lt;br /&gt;
* Ein:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchPlatformOn DT.png|100px]]&lt;br /&gt;
* Aus:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchPlatformOff DT.png|100px]]&lt;br /&gt;
|&lt;br /&gt;
* Ein:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchStyledOn.png|100px]]&lt;br /&gt;
* Aus:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchStyledOff.png|100px]]&lt;br /&gt;
|&lt;br /&gt;
* Ein:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchPlatformOn.png|100px]]&lt;br /&gt;
* Aus:&lt;br /&gt;
&lt;br /&gt;
[[File:TSwitchPlatformOff.png|100px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hinzufügen von nativen iOS-Steuerelementen zu Anwendungen==&lt;br /&gt;
&lt;br /&gt;
So fügen Sie Ihrer Anwendung native iOS-Steuerelemente hinzu:&lt;br /&gt;
&lt;br /&gt;
# Fügen Sie dem Formular eine Komponente hinzu, die die native Darstellung unterstützt ([[#Verfügbare native FireMonkey-iOS-Steuerelemente|Liste der unterstützten Steuerelemente]]).&lt;br /&gt;
# Setzen Sie im [[Objektinspektor|Objektinspektor]] auf der Registerkarte &#039;&#039;&#039;Eigenschaften&#039;&#039;&#039; die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] auf {{Const|Platform}}. Die Darstellung der Komponente zur Entwurfszeit ändert sich (siehe [[#Visuelle Änderungen an nativen iOS-Steuerelementen|Visuelle Änderungen an nativen iOS-Steuerelementen]]).&lt;br /&gt;
# Führen Sie die Anwendung entweder auf einem [[Ausführen von iOS-Anwendungen auf einem iOS-Gerät|iOS-Gerät]] oder im [[Ausführen von iOS-Anwendungen auf dem iOS-Simulator|iOS-Simulator]] aus.&lt;br /&gt;
&lt;br /&gt;
Alternativ können Sie den Wert von [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] zur Laufzeit ändern. Um die native Darstellung eines [[lib_de:FMX.Edit.TEdit|TEdit]]-Steuerelements auszuwählen, fügen Sie die folgende Codezeile in Ihre Anwendung ein: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
Edit1.ControlType := TPresentedControl.TControlType.Platform;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;C++:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
Edit1-&amp;gt;ControlType = TPresentedControl::TControlType::Platform;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kombinieren nativer iOS-Steuerelemente mit nicht nativen Steuerelementen==&lt;br /&gt;
&lt;br /&gt;
Kombinieren Sie native Steuerelemente nicht mit nicht nativen Steuerelementen. Native Steuerelemente unterstützen die Z-Reihenfolge des Formulars nicht: ein natives Steuerelement befindet sich immer über allen anderen Steuerelementen auf dem Formular. Es gibt aber einige nicht native Steuerelemente, die Sie mit nativen Steuerelementen kombinieren können, da sie die Z-Reihenfolge auf nativen Steuerelementen unterstützen.&lt;br /&gt;
&lt;br /&gt;
Die folgende Liste enthält alle Steuerelemente, die über die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] verfügen und daher mit nativen Steuerelementen kombiniert werden können:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.MultiView.TMultiView.ControlType|TMultiView]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TButton|TButton]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TSpeedButton|TSpeedButton]]&lt;br /&gt;
* [[lib_de:FMX.Colors.TColorButton|TColorButton]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TCornerButton|TCornerButton]]&lt;br /&gt;
* [[lib_de:FMX.ExtCtrls.TPopupBox|TPopupBox]]&lt;br /&gt;
* {{Code|TMagnifierGlass}}&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TPanel|TPanel]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TLabel|TLabel]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TCheckBox|TCheckBox]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TRadioButton|TRadioButton]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TGroupBox|TGroupBox]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TStatusBar|TStatusBar]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TToolBar|TToolBar]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TProgressBar|TProgressBar]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TTrackBar|TTrackBar]]&lt;br /&gt;
&lt;br /&gt;
Die folgende Liste enthält alle Steuerelemente, die nicht über die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] verfügen, jedoch auch mit nativen Steuerelementen kombiniert werden können:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.WebBrowser.TWebBrowser|TWebBrowser]]&lt;br /&gt;
* [[lib_de:FMX.Media.TMediaPlayer|TMediaPlayer]]&lt;br /&gt;
* [[lib_de:FMX.Advertising.TBannerAd|TBannerAd]]&lt;br /&gt;
* [[lib_de:FMX.Maps.TMapView|TMapView]]&lt;br /&gt;
&lt;br /&gt;
==Vorteile von nativen iOS-Steuerelementen==&lt;br /&gt;
&lt;br /&gt;
Einige Steuerelemente unterstützen zusätzliche Funktionen, wenn sie als native Steuerelemente verwendet werden: &lt;br /&gt;
&lt;br /&gt;
===TMemo und TEdit===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Auto-Korrektur&#039;&#039;&#039;: Bei der Eingabe werden Wörter vorgeschlagen; diese können durch Klicken auf die Leertaste verwendet werden.&lt;br /&gt;
* &#039;&#039;&#039;Textersetzung&#039;&#039;&#039;: Als falsch geschrieben erkannte Wörter werden mit Rot unterstrichen. Durch Tippen auf dieses Wort wird eine Popup-Blase mit der empfohlenen Ersetzung eingeblendet. Die empfohlenen Ersatzwörter werden auch angezeigt, wenn Sie den Text auswählen und auf die Schaltfläche &#039;&#039;&#039;Ersetzen…&#039;&#039;&#039; klicken.&lt;br /&gt;
* &#039;&#039;&#039;Definieren&#039;&#039;&#039;: Sie können ein Wort auswählen und auf &#039;&#039;&#039;Definieren&#039;&#039;&#039; klicken, um die Definition dieses Wortes in einem Wörterbuch anzuzeigen.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;.&amp;quot;-Kürzel&#039;&#039;&#039;: Durch Doppeltippen auf die Leertaste wird ein Punkt gefolgt von einem Leerzeichen eingefügt.&lt;br /&gt;
* &#039;&#039;&#039;Kürzel&#039;&#039;&#039;: Damit wird das Wort oder der Ausdruck bei der Eingabe erweitert.&lt;br /&gt;
* Erkennung von Telefonnummern, Adressen.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Wählen Sie in &#039;&#039;&#039;iOS&#039;&#039;&#039; {{Menu|Einstellungen &amp;amp;gt; Allgemein &amp;amp;gt; Tastatur}}, um eine Seite zu öffnen, auf der Sie einige dieser Funktionen umschalten können.&lt;br /&gt;
&lt;br /&gt;
 Einige der obigen Funktionen sind im Kontextmenü des Steuerelements enthalten. Deshalb unterscheiden sich die Kontextmenüs von Memo-Steuerelementen oder Eingabe-Steuerelementen für {{Const|Styled}} und {{Const|Platform}}:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Steuerelement&lt;br /&gt;
! Kontextmenü ({{Const|Styled}})&lt;br /&gt;
! Kontextmenü ({{Const|Platform}})&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_de:FMX.Memo.TMemo|TMemo]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TMemo ContextMenu Styled RT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TMemo ContextMenu Platform RT.png|400px]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[lib_de:FMX.Edit.TEdit|TEdit]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEdit ContextMenu Styled RT.png|200px]]&lt;br /&gt;
|&lt;br /&gt;
[[File:TEdit ContextMenu Platform RT.png|400px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TListView===&lt;br /&gt;
&lt;br /&gt;
Listenansichten verfügen über die Eigenschaft &#039;&#039;&#039;[[lib_de:FMX.ListView.TListViewBase.NativeOptions|NativeOptions]]&#039;&#039;&#039;, die Untereigenschaften zum Anpassen der nativen Darstellung der Listenansicht bereitstellt.&lt;br /&gt;
&lt;br /&gt;
==Beschränkungen von nativen iOS-Steuerelementen==&lt;br /&gt;
&lt;br /&gt;
Bevor Sie die nativen Steuerelemente verwenden, sollten Sie die folgenden Beschränkungen beachten:&lt;br /&gt;
&lt;br /&gt;
* Native Steuerelemente unterstützen keine vordefinierten oder benutzerdefinierten Stile. Wenn die Eigenschaft [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|ControlType]] eines nativen Steuerelements auf {{Const|Platform}} gesetzt ist, wird der Wert der Eigenschaft [[lib_de:FMX.Controls.TStyledControl.StyleLookup|StyleLookup]] ignoriert.&lt;br /&gt;
* Native Steuerelemente unterstützen die Z-Reihenfolge des Formulars nicht: ein natives Steuerelement wird immer über anderen verfügbaren {{FM}}-Steuerelementen auf Ihrem Formular angezeigt. Weitere Details finden Sie unter [[#Kombinieren nativer iOS-Steuerelemente mit nicht nativen Steuerelementen|Kombinieren nativer iOS-Steuerelemente mit nicht nativen Steuerelementen]].&lt;br /&gt;
* Die folgenden Ereignisbehandlungsroutinen werden nicht unterstützt und können nicht implementiert werden:&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnApplyStyleLookup|OnApplyStyleLookup]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnClick|OnClick]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnDblClick|OnDblClick]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnDragDrop|OnDragDrop]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnDragEnd|OnDragEnd]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnDragEnter|OnDragEnter]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnDragLeave|OnDragLeave]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnDragOver|OnDragOver]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnGesture|OnGesture]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnKeyDown|OnKeyDown]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnKeyUp|OnKeyUp]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnPaint|OnPaint]]&lt;br /&gt;
** [[lib_de:FMX.Controls.TControl.OnPainting|OnPainting]]&lt;br /&gt;
&lt;br /&gt;
Es gibt auch einige steuerelementspezifische Beschränkungen:&lt;br /&gt;
&lt;br /&gt;
===TCalendar===&lt;br /&gt;
&lt;br /&gt;
In der nativen Darstellung einer Kalenderansicht werden keine vollen Monate angezeigt, daher werden die folgenden Eigenschaften nicht unterstützt:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.Calendar.TCalendar.WeekNumbers|WeekNumbers]]&lt;br /&gt;
* [[lib_de:FMX.Calendar.TCalendar.FirstDayOfWeek|FirstDayOfWeek]]&lt;br /&gt;
&lt;br /&gt;
===TListView===&lt;br /&gt;
&lt;br /&gt;
Wie beim Steuerelementtyp {{Const|Styled}} hängen das Erscheinungsbild und das Verhalten einer Listenansicht mit dem Steuerelementtyp {{Const|Platform}} von Eigenschaften des Listenansichts-Steuerelements, wie [[lib_de:FMX.ListView.TAppearanceListView.ItemAppearance|ItemAppearance]], ab. Die native Darstellung der Listenansicht ist jedoch von einigen anderen für das Listenansichts-Steuerelement spezifischen Beschränkungen betroffen:&lt;br /&gt;
&lt;br /&gt;
* Nicht alle stilbezogenen Eigenschaften funktionieren in der nativen Darstellung. Für mit Stilen versehene Darstellungsmodi stehen nur die Standardoptionen für die native Darstellung zur Verfügung. Bei der nativen Darstellung verwendet die Listenansicht den Standardstil, die Ausrichtung und die Positionierung der Zielplattform. Sie können [[lib_de:FMX.ListView.TListViewBase.NativeOptions|NativeOptions.Styled]] aktivieren, um das Erscheinungsbild der nativen Darstellung einer Listenansicht anzupassen, aber Sie können nicht so viele Aspekte des Erscheinungsbilds wie beim [[lib_de:FMX.ListView.TListViewBase.ControlType|ControlType]] {{Const|Styled}} anpassen.&lt;br /&gt;
* Mit dem [[lib_de:FMX.ListView.TAppearanceListView.ItemEditAppearanceName|Bearbeitungs-Erscheinungsbild]] kann nur festgelegt werden, ob in der Listenansicht Kontrollkästchen oder Löschen-Schaltflächen angezeigt werden. Weitere Effekte sind nicht möglich.&lt;br /&gt;
* Die Funktion [[lib_de:FMX.ListView.TListViewBase.CanSwipeDelete|Wischen zum Löschen]] funktioniert nur, wenn das Bearbeitungs-Erscheinungsbild, das Löschen-Schaltflächen enthält, ausgewählt ist.&lt;br /&gt;
* Sie können die Ausrichtung und Position von Bildern und Schaltflächen nicht ändern. Bilder werden links und Schaltflächen rechts angezeigt.&lt;br /&gt;
* Die Animationen und das Timing können von denjenigen einer Listenansicht mit dem Steuerelementtyp {{Const|Styled}} abweichen.&lt;br /&gt;
* Eintragsüberschriften sind immer fest.&lt;br /&gt;
* Die Funktion [[lib_de:FMX.ListView.TListViewBase.SearchAlwaysOnTop|Suchfeld immer im Vordergrund]] funktioniert nur, wenn keine Überschriften vorhanden sind.&lt;br /&gt;
* Das Ereignis [[lib_de:FMX.ListView.TListViewBase.OnItemClickEx|OnItemClickEx]] stellt keine Informationen über die angeklickte Position oder das angeklickte Objekt bereit.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Native FireMonkey-Steuerelemente|Native FireMonkey-Steuerelemente]]&lt;br /&gt;
* [[Native FireMonkey-Windows-Steuerelemente|Native FireMonkey-Windows-Steuerelemente]]&lt;br /&gt;
* [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|TPresentedControl.ControlType]]&lt;br /&gt;
* [[Anpassen der Darstellung von FireMonkey-Listenansichten|Anpassen der Darstellung von {{FM}}-Listenansichten]]&lt;br /&gt;
&lt;br /&gt;
===Beispiele===&lt;br /&gt;
&lt;br /&gt;
* [[samp_en:FMX.NativeControls Sample|{{FM}} Native Controls]] (Beispiel)&lt;br /&gt;
&lt;br /&gt;
[[Category:Geräteübergreifend]]&lt;br /&gt;
[[Category:FMX]]&lt;br /&gt;
[[Category:IOS]]&lt;br /&gt;
[[Category:XE8]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=%C3%84nderungen_f%C3%BCr_FireMonkey-Gittersteuerelemente_in_Berlin&amp;diff=208898</id>
		<title>Änderungen für FireMonkey-Gittersteuerelemente in Berlin</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=%C3%84nderungen_f%C3%BCr_FireMonkey-Gittersteuerelemente_in_Berlin&amp;diff=208898"/>
		<updated>2016-06-23T10:55:09Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Imported June 17, 2016 TP. LOC-22913_Topics_BE_GO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Neuerungen}}&lt;br /&gt;
&lt;br /&gt;
In {{Version|Berlin}} wurden die [[lib_de:FMX.Grid.Style.TStyledGrid|Darstellungslogik]] und das [[lib_de:FMX.Grid.TGridModel|Datenmodell]] von [[lib_de:FMX.Grid.TCustomGrid|Gittersteuerelementen]] von den Steuerelementen selbst getrennt. Diese Trennung ermöglicht die Unterstützung von [[Native FireMonkey-Steuerelemente|nativen Darstellungen]] von Gittersteuerelementen.&lt;br /&gt;
&lt;br /&gt;
Als Folge dieser Änderung hat sich die API von Gittersteuerelementen ([[lib_de:FMX.Grid.TCustomGrid|TCustomGrid]] und deren Unterklassen, [[lib_de:FMX.Grid.TGrid|TGrid]] und [[lib_de:FMX.Grid.TStringGrid|TStringGrid]]) geändert. Wenn Sie ein altes Projekt, in dem Gittersteuerelemente verwendet werden, nach {{Version|Berlin}} migrieren, müssen Sie diese API-Änderungen berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
==Neues Datenmodell==&lt;br /&gt;
&lt;br /&gt;
Gittersteuerelemente haben die neue Eigenschaft [[lib_de:FMX.Grid.TCustomGrid.Model|Model]], die auf ihr Datenmodell zeigt, das eine Instanz von [[lib_de:FMX.Grid.TGridModel|TGridModel]] oder eine Unterklasse ist (z. B. [[lib_de:FMX.Grid.TStringGrid|TStringGrid]] verwendet [[lib_de:FMX.Grid.TStringGridModel|TStringGridModel]]). Einige Eigenschaften von Gittersteuerelementen, wie [[lib_de:FMX.Grid.TGridModel.Options|Options]], wurden in das Datenmodell verschoben und sind in Gittersteuerelementen nur als Spiegel ihres Datenmodelläquivalents verblieben.&lt;br /&gt;
&lt;br /&gt;
Es wurden außerdem zwei neue Optionen, [[lib_de:FMX.Grid.TGridOption|TGridOption.AutoDisplacement]] und [[lib_de:FMX.Grid.TGridOption|TGridOption.CancelEditingByDefault]], implementiert, um die Bearbeitung von Gitterzellen auf mobilen Geräten mit einer virtuellen Tastatur zu vereinfachen.&lt;br /&gt;
&lt;br /&gt;
==Neue Darstellungssteuerelemente==&lt;br /&gt;
&lt;br /&gt;
Die auffälligste Änderung ist die neu hinzugefügte Unit [[lib_de:FMX.Grid.Style|FMX.Grid.Style]]. Die darin enthaltene Klasse [[lib_de:FMX.Grid.Style.TStyledGrid|TStyledGrid]] implementiert die [[lib_de:FMX.Controls.Presentation.TPresentedControl.ControlType|Standard-{{FM}}-Darstellung]] für Gittersteuerelemente. Sie müssen die neue Unit [[lib_de:FMX.Grid.Style|FMX.Grid.Style]] in eine der &amp;lt;source lang=&amp;quot;delphi&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;uses&amp;lt;/source&amp;gt;-Klauseln jedes alten Projekts einfügen.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; In neue Projekte wird diese Unit automatisch eingefügt.&lt;br /&gt;
&lt;br /&gt;
Sie sollten mit der Darstellungsklasse nicht direkt arbeiten, sondern stattdessen das [[#Neues Datenmodell|Datenmodell]] verwenden.&lt;br /&gt;
&lt;br /&gt;
==Andere Änderungen für Gittersteuerelemente==&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zur Trennung des [[#Neues Datenmodell|Datenmodells]] und der [[#Neue Darstellungssteuerelemente|Darstellungssteuerelemente]] von den Gittersteuerelementen wurden weitere Änderungen vorgenommen.&lt;br /&gt;
&lt;br /&gt;
Zu Gittersteuerelementen wurden einige neue API-Member hinzugefügt: [[lib_de:FMX.Grid.TCustomGrid.CellByPoint|CellByPoint]], [[lib_de:FMX.Grid.TCustomGrid.CellRect|CellRect]], [[lib_de:FMX.Grid.TCustomGrid.CanEdit|CanEdit]], [[lib_de:FMX.Grid.TCustomGrid.Col|Col]], [[lib_de:FMX.Grid.TCustomGrid.DisplayCells|DisplayCells]], [[lib_de:FMX.Grid.TCustomGrid.LeftColumn|LeftColumn]], [[lib_de:FMX.Grid.TCustomGrid.RightColumn|RightColumn]], [[lib_de:FMX.Grid.TCustomGrid.Row|Row]], [[lib_de:FMX.Grid.TCustomGrid.ScrollToSelectedCell|ScrollToSelectedCell]], [[lib_de:FMX.Grid.TCustomGrid.SetTopLeft|SetTopLeft]].&lt;br /&gt;
&lt;br /&gt;
Zu {{Code|TStringGrid}} wurden Eigenschaften zur Unterstützung des Hilfekontextes hinzugefügt: [[lib_de:FMX.Grid.TStringGrid.HelpContext|HelpContext]], [[lib_de:FMX.Grid.TStringGrid.HelpKeyword|HelpKeyword]], [[lib_de:FMX.Grid.TStringGrid.HelpType|HelpType]].&lt;br /&gt;
&lt;br /&gt;
Gittersteuerelemente sind nicht mehr für deren Darstellung zuständig. Daher wird [[lib_de:FMX.Controls.TControl.OnApplyStyleLookup|OnApplyStyleLookup]] nur von {{Code|TStringGrid}} unterstützt, und folgende Ereignisse werden nicht mehr von Gittersteuerelementen veröffentlicht: [[lib_de:FMX.Controls.TControl.OnCanFocus|OnCanFocus]], [[lib_de:FMX.Controls.TControl.OnClick|OnClick]], [[lib_de:FMX.Controls.TControl.OnDblClick|OnDblClick]], [[lib_de:FMX.Controls.TControl.OnDragEnter|OnDragEnter]], [[lib_de:FMX.Controls.TControl.OnDragLeave|OnDragLeave]], [[lib_de:FMX.Controls.TControl.OnDragOver|OnDragOver]], [[lib_de:FMX.Controls.TControl.OnDragDrop|OnDragDrop]], [[lib_de:FMX.Controls.TControl.OnDragEnd|OnDragEnd]], [[lib_de:FMX.Controls.TControl.OnEnter|OnEnter]], [[lib_de:FMX.Controls.TControl.OnExit|OnExit]], [[lib_de:FMX.Controls.TControl.OnKeyDown|OnKeyDown]], [[lib_de:FMX.Controls.TControl.OnKeyUp|OnKeyUp]], [[lib_de:FMX.Controls.TControl.OnMouseDown|OnMouseDown]], [[lib_de:FMX.Controls.TControl.OnMouseEnter|OnMouseEnter]], [[lib_de:FMX.Controls.TControl.OnMouseLeave|OnMouseLeave]], [[lib_de:FMX.Controls.TControl.OnMouseMove|OnMouseMove]], [[lib_de:FMX.Controls.TControl.OnMouseUp|OnMouseUp]], [[lib_de:FMX.Controls.TControl.OnMouseWheel|OnMouseWheel]], [[lib_de:FMX.Controls.TControl.OnResize|OnResize]].&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Diese Ereignisse werden nicht als published, sonder als public deklariert, d. h., Sie können sie zur Laufzeit verwenden. Allerdings sollten Sie, wenn möglich, stattdessen [[lib_de:FMX.Grid.TGridModel Events|Ereignisse aus dem Gittermodell]] verwenden.&lt;br /&gt;
&lt;br /&gt;
==Änderungen für Spalten==&lt;br /&gt;
&lt;br /&gt;
Es wurden zwei neue Spaltentypen hinzugefügt:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.Grid.TCurrencyColumn|TCurrencyColumn]] für [[lib_de:System.Currency|Currency]]-Werte.&lt;br /&gt;
* [[lib_de:FMX.Grid.TGlyphColumn|TGlyphColumn]] für Bilder aus [[lib_de:FMX.ImgList.TImageList|Bilderlisten]]. Die Eigenschaft [[lib_de:FMX.Grid.TGrid.Images|TGrid.Images]] wurde zur Angabe der Bilderliste hinzugefügt.&lt;br /&gt;
&lt;br /&gt;
Einige vorhandene Spaltentypen wurden verbessert:&lt;br /&gt;
&lt;br /&gt;
* Zu [[lib_de:FMX.Grid.TDateColumn|TDateColumn]] wurden zwei neue Eigenschaften hinzugefügt: [[lib_de:FMX.Grid.TDateColumn.Format|Format]], [[lib_de:FMX.Grid.TDateColumn.ShowClearButton|ShowClearButton]].&lt;br /&gt;
* [[lib_de:FMX.Grid.TPopupColumn.Items|TPopupColumn.Items]] ist keine Instanz von [[lib_de:System.Classes.TStringList|TStringList]].&lt;br /&gt;
&lt;br /&gt;
An [[lib_de:FMX.Grid.TColumn|TColumn]] wurden einige kleinere Änderungen in Bezug auf das Verhalten der Komponente vorgenommen:&lt;br /&gt;
&lt;br /&gt;
* Durch einige neue Eigenschaften wurde die Arbeit mit dem Zelleditor erleichtert: [[lib_de:FMX.Grid.TColumn.CanEdit|CanEdit]], [[lib_de:FMX.Grid.TColumn.RefreshEditor|RefreshEditor]], [[lib_de:FMX.Grid.TColumn.ValidChar|ValidChar]].&lt;br /&gt;
* Die Eigenschaft [[lib_de:FMX.Grid.TColumn.InEditMode|InEditMode]] hat nun einen booleschen Wert, und es gibt eine neue Eigenschaft, [[lib_de:FMX.Grid.TColumn.EditorState|EditorState]], die weitere Details bereitstellt.&lt;br /&gt;
* Die Eigenschaft {{Code|ApplyImmediately}} ist nicht mehr verfügbar. Eine ähnliche (aber nicht identische) Option wurde hinzugefügt: [[lib_de:FMX.Grid.TGridOption|TGridOption.AutoDisplacement]]. Sie können diese neue Option den [[lib_de:FMX.Grid.TGridModel.Options|Optionen]] des [[lib_de:FMX.Grid.TCustomGrid.Model|Modells]] der Gittersteuerelemente hinzufügen.&lt;br /&gt;
&lt;br /&gt;
{{Code|TColumn}} ist nicht mehr für seine Darstellung zuständig. Daher erhielt {{Code|TColumn}} die Eigenschaft [[lib_de:FMX.Grid.TColumn.Model|Model]], die auf das Datenmodell des übergeordneten Gitters zeigt, und die Eigenschaft [[lib_de:FMX.Grid.TColumn.PresentedControl|PresentedControl]], die auf das Darstellungssteuerelement zeigt. Allerdings wurden viele Eigenschaften und Ereignisse von {{Code|TColumn}} ersetzt oder werden auch nicht mehr unterstützt:&lt;br /&gt;
&lt;br /&gt;
* Verwenden Sie [[lib_de:FMX.Grid.TColumn.SetBounds|SetBounds]], um die Werte der entfernten Eigenschaften [[lib_de:FMX.Controls.TControl.Position|Position]] und [[lib_de:FMX.Controls.TControl.Height|Height]] festzulegen.&lt;br /&gt;
* Nicht mehr unterstützte Eigenschaften: [[lib_de:FMX.Controls.TControl.Align|Align]], [[lib_de:FMX.Controls.TControl.ClipChildren|ClipChildren]], [[lib_de:FMX.Controls.TControl.ClipParent|ClipParent]], [[lib_de:FMX.Controls.TControl.Cursor|Cursor]], [[lib_de:FMX.Controls.TControl.DragMode|DragMode]], [[lib_de:FMX.Controls.TControl.EnableDragHighlight|EnableDragHighlight]], [[lib_de:FMX.Controls.TControl.HitTest|HitTest]], [[lib_de:FMX.Controls.TControl.RotationAngle|RotationAngle]], [[lib_de:FMX.Controls.TControl.RotationCenter|RotationCenter]], [[lib_de:FMX.Controls.TControl.Scale|Scale]], [[lib_de:FMX.Controls.TControl.Size|Size]], [[lib_de:FMX.Controls.TControl.TabOrder|TabOrder]], [[lib_de:FMX.Controls.TControl.TabStop|TabStop]], [[lib_de:FMX.Controls.TControl.TouchTargetExpansion|TouchTargetExpansion]].&lt;br /&gt;
* Nicht mehr unterstützte Ereignisse: [[lib_de:FMX.Controls.TControl.OnApplyStyleLookup|OnApplyStyleLookup]], [[lib_de:FMX.Controls.TControl.OnCanFocus|OnCanFocus]], [[lib_de:FMX.Controls.TControl.OnClick|OnClick]], [[lib_de:FMX.Controls.TControl.OnDblClick|OnDblClick]], [[lib_de:FMX.Controls.TControl.OnDragEnter|OnDragEnter]], [[lib_de:FMX.Controls.TControl.OnDragLeave|OnDragLeave]], [[lib_de:FMX.Controls.TControl.OnDragOver|OnDragOver]], [[lib_de:FMX.Controls.TControl.OnDragDrop|OnDragDrop]], [[lib_de:FMX.Controls.TControl.OnDragEnd|OnDragEnd]], [[lib_de:FMX.Controls.TControl.OnEnter|OnEnter]], [[lib_de:FMX.Controls.TControl.OnExit|OnExit]], [[lib_de:FMX.Controls.TControl.OnKeyDown|OnKeyDown]], [[lib_de:FMX.Controls.TControl.OnKeyUp|OnKeyUp]], [[lib_de:FMX.Controls.TControl.OnMouseDown|OnMouseDown]], [[lib_de:FMX.Controls.TControl.OnMouseEnter|OnMouseEnter]], [[lib_de:FMX.Controls.TControl.OnMouseLeave|OnMouseLeave]], [[lib_de:FMX.Controls.TControl.OnMouseMove|OnMouseMove]], [[lib_de:FMX.Controls.TControl.OnMouseUp|OnMouseUp]], [[lib_de:FMX.Controls.TControl.OnMouseWheel|OnMouseWheel]].&lt;br /&gt;
*: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Diese Ereignisse werden nicht als published, sonder als public deklariert, d. h., Sie können sie zur Laufzeit verwenden. Allerdings sollten Sie, wenn möglich, stattdessen [[lib_de:FMX.Grid.TGridModel Events|Ereignisse aus dem Gittermodell]] verwenden.&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Hilfe_zur_Hilfe_-_CHM&amp;diff=208897</id>
		<title>Hilfe zur Hilfe - CHM</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Hilfe_zur_Hilfe_-_CHM&amp;diff=208897"/>
		<updated>2016-06-23T10:20:27Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Internal Review. LOC-22378&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Hilfe zur Hilfe}}&lt;br /&gt;
&lt;br /&gt;
Die CHM-Hilfe von {{Product}} wird mit {{Product}} ausgeliefert und reagiert auf die &#039;&#039;&#039;Hilfe&#039;&#039;&#039;-Schaltfläche oder die Taste {{Key|F1}} in der IDE. Diese Hilfe liegt im Format &#039;&#039;&#039;[[Wikipedia:Microsoft Compiled HTML Help|Microsoft Compilierte HTML-Hilfe]]&#039;&#039;&#039;, auch als CHM bezeichnet, vor.&lt;br /&gt;
&lt;br /&gt;
Im &#039;&#039;&#039;HTML-Hilfe-Viewer unter Windows&#039;&#039;&#039; gibt es zwei Bereiche:&lt;br /&gt;
&lt;br /&gt;
* Im linken Bereich können Sie auf Navigationsfunktionen: &#039;&#039;&#039;Inhalt&#039;&#039;&#039;, &#039;&#039;&#039;Index&#039;&#039;&#039;, &#039;&#039;&#039;Suchen&#039;&#039;&#039;, &#039;&#039;&#039;Favoriten&#039;&#039;&#039; zugreifen.&lt;br /&gt;
* Im rechten Bereich wird das aktuelle Hilfethema angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Kontextsensitive F1-Hilfe in der IDE==&lt;br /&gt;
&lt;br /&gt;
Kontextsensitive Hilfe wird durch Auswahl eines Elements in der IDE und Drücken von {{Key|F1}} aufgerufen:&lt;br /&gt;
&lt;br /&gt;
* Im &#039;&#039;&#039;[[Quelltext-Editor#Verwenden_von_F1-Hilfe|Quelltext-Editor]]&#039;&#039;&#039; können Sie:&lt;br /&gt;
** Auf einen {{Code|identifier}} zeigen, der einem Namen einer Prozedur, Funktion, Konstanten, Eigenschaft, Variablen, Feld, Typ, Programm, Unit, Bibliothek oder Package, das in den installierten CHM-Hilfedateien beschrieben wird, entspricht.&lt;br /&gt;
** Auf ein {{Code|word}} (oder {{Code|token}}) zeigen, der einem [[Grundlegende syntaktische Elemente (Delphi)#Reservierte_Wörter|reservierten Wort]], [[Grundlegende syntaktische Elemente (Delphi)#Directiven|Directive]] oder [[Schlüsselwörter|C++-Schlüsselwort]] entspricht.&lt;br /&gt;
** Einen qualifizierten Bezeichner {{Code|identifier1.identifier2}} auswählen. Hier qualifiziert {{Code|identifier1}} {{Code|identifier2}}. Sie können z. B. {{Code|TCollection.Clear}} auswählen.&lt;br /&gt;
** Im &#039;&#039;&#039;Quelltext-Editor&#039;&#039;&#039; auf eine beliebe Stelle zeigen. &lt;br /&gt;
* In einem Formular im &#039;&#039;&#039;[[Formular-Designer|Formular-Designer]]&#039;&#039;&#039; markieren Sie die Komponente.&lt;br /&gt;
* Im Fenster &#039;&#039;&#039;[[Fenster: Meldungen|Meldungen]]&#039;&#039;&#039; markieren Sie eine Meldung.&lt;br /&gt;
* In IDE-Fenstern, wie der &#039;&#039;&#039;[[Projektverwaltung|Projektverwaltung]]&#039;&#039;&#039; oder der &#039;&#039;&#039;[[Modellansicht|Modellansicht]]&#039;&#039;&#039;, klicken Sie in das Fenster.&lt;br /&gt;
&lt;br /&gt;
==DocWiki enthält die aktuellen Informationen==&lt;br /&gt;
&lt;br /&gt;
Die {{Product}}-Hilfe wird aus einem Wiki erzeugt: &#039;&#039;&#039;[[Hilfe zur Hilfe: DocWiki|DocWiki]]&#039;&#039;&#039;. Die Hilfe mit den neuesten Informationen finden Sie stets im DocWiki.  Alle Benutzer von {{Product}} sind eingeladen, sich am DocWiki zu beteiligen. Sie können ein eigenes Benutzerkonto erstellen, indem Sie auf einer beliebigen Seite im DocWiki auf &#039;&#039;&#039;Anmelden/Benutzerkonto anlegen&#039;&#039;&#039; klicken.&lt;br /&gt;
&lt;br /&gt;
Das DocWiki ist in drei einzelne DocWikis unterteilt:&lt;br /&gt;
&lt;br /&gt;
* Themenbezogene Seiten: {{f|radstudio|[http://docwiki.embarcadero.com/RADStudio/en/Main_Page}}{{f|appmethod|http://docwiki.appmethod.com/appmethod/topics/en/Main_Page}} http://docwiki.embarcadero.com/RADStudio/de/Hauptseite}}{{f|appmethod|http://docwiki.appmethod.com/appmethod/topics/de/Hauptseite}}]&lt;br /&gt;
* Bibliotheksreferenz: {{f|radstudio|[http://docwiki.embarcadero.com/Libraries/en/Main_Page}}{{f|appmethod|http://docwiki.appmethod.com/appmethod/libraries/en/Main_Page}} http://docwiki.embarcadero.com/Libraries/de/Hauptseite}}{{f|appmethod|http://docwiki.appmethod.com/appmethod/libraries/de/Hauptseite}}]&lt;br /&gt;
* Code- und Produktbeispiele: {{f|radstudio|[http://docwiki.embarcadero.com/CodeExamples/en/Main_Page}}{{f|appmethod|docwiki.appmethod.com/appmethod/codeexamples/en/Main_Page}} http://docwiki.embarcadero.com/CodeExamples/en/Main_Page}}{{f|appmethod|docwiki.appmethod.com/appmethod/codeexamples/en/Main_Page}}]&lt;br /&gt;
&lt;br /&gt;
In der Offline-CHM-Hilfe wird auf jeder Seite ein Link, &#039;&#039;&#039;Aktuelle Wiki-Seite&#039;&#039;&#039; angezeigt: Klicken Sie auf diesen Link, um auf die aktuelle Docwiki-Version der angezeigten Seite zuzugreifen.&lt;br /&gt;
&lt;br /&gt;
===Die Offline-CHM-Hilfe aktualisieren===&lt;br /&gt;
&lt;br /&gt;
Gelegentlich&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; wird eine neuere Version der Offline-CHM-Hilfe als separater Download bereitgestellt. Um die neuere Version anzuwenden, folgenden Sie den unten genannten Schritten:&lt;br /&gt;
&amp;lt;section begin=&amp;quot;steps&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#  Schließen Sie {{Product}}.&lt;br /&gt;
#  Laden Sie die [http://docs.embarcadero.com/products/rad_studio/radstudio{{RadstudioVersion}}/{{RadstudioVersion}}-CHM-en.zip Zip-Datei] mit den CHM-Dateien herunter.&lt;br /&gt;
#  Extrahieren Sie die ZIP-Datei.&lt;br /&gt;
#  Navigieren Sie zum Speicherort der CHM-Dateien (standardmäßig {{Path|{{InstallPath}}\Help\Doc\de}}).&lt;br /&gt;
#  Überschreiben Sie die vorhandenen CHM-Dateien mit denen aus der ZIP-Datei (Sie können vorher eine Sicherung der alten CHM-Dateien erstellen).&lt;br /&gt;
#  Öffnen Sie {{Product}}.&lt;br /&gt;
#  Starten Sie die Hilfe.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;steps&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Sie finden das Datum, an dem die CHM-Dateien aktualisiert wurden, [http://docs.embarcadero.com/products/rad_studio/ hier] oder in der Readme-Datei, di in der [http://docs.embarcadero.com/products/rad_studio/radstudio{{RadstudioVersion}}/{{RadstudioVersion}}-CHM-en.zip Zip-Datei] enthalten ist.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Hilfe für Ihre Komponenten bereitstellen|Hilfe für Ihre Komponenten bereitstellen]]&lt;br /&gt;
* [[Einführung in RAD Studio|Einführung in {{Product}}]]&lt;br /&gt;
* [[Hilfe zur Hilfe: DocWiki|Hilfe zur Hilfe: DocWiki]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Einführung]]&lt;br /&gt;
[[Category:XE8]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Hilfe_zur_Hilfe_-_CHM&amp;diff=208896</id>
		<title>Hilfe zur Hilfe - CHM</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Hilfe_zur_Hilfe_-_CHM&amp;diff=208896"/>
		<updated>2016-06-23T10:20:23Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Internal Review. LOC-22378&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Hilfe zur Hilfe}}&lt;br /&gt;
&lt;br /&gt;
Die CHM-Hilfe von {{Product}} wird mit {{Product}} ausgeliefert und reagiert auf die &#039;&#039;&#039;Hilfe&#039;&#039;&#039;-Schaltfläche oder die Taste {{Key|F1}} in der IDE. Diese Hilfe liegt im Format &#039;&#039;&#039;[[Wikipedia:Microsoft Compiled HTML Help|Microsoft Compilierte HTML-Hilfe]]&#039;&#039;&#039;, auch als CHM bezeichnet, vor.&lt;br /&gt;
&lt;br /&gt;
Im &#039;&#039;&#039;HTML-Hilfe-Viewer unter Windows&#039;&#039;&#039; gibt es zwei Bereiche:&lt;br /&gt;
&lt;br /&gt;
* Im linken Bereich können Sie auf Navigationsfunktionen: &#039;&#039;&#039;Inhalt&#039;&#039;&#039;, &#039;&#039;&#039;Index&#039;&#039;&#039;, &#039;&#039;&#039;Suchen&#039;&#039;&#039;, &#039;&#039;&#039;Favoriten&#039;&#039;&#039; zugreifen.&lt;br /&gt;
* Im rechten Bereich wird das aktuelle Hilfethema angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Kontextsensitive F1-Hilfe in der IDE==&lt;br /&gt;
&lt;br /&gt;
Kontextsensitive Hilfe wird durch Auswahl eines Elements in der IDE und Drücken von {{Key|F1}} aufgerufen:&lt;br /&gt;
&lt;br /&gt;
* Im &#039;&#039;&#039;[[Quelltext-Editor#Verwenden_von_F1-Hilfe|Quelltext-Editor]]&#039;&#039;&#039; können Sie:&lt;br /&gt;
** Auf einen {{Code|identifier}} zeigen, der einem Namen einer Prozedur, Funktion, Konstanten, Eigenschaft, Variablen, Feld, Typ, Programm, Unit, Bibliothek oder Package, das in den installierten CHM-Hilfedateien beschrieben wird, entspricht.&lt;br /&gt;
** Auf ein {{Code|word}} (oder {{Code|token}}) zeigen, der einem [[Grundlegende syntaktische Elemente (Delphi)#Reservierte_Wörter|reservierten Wort]], [[Grundlegende syntaktische Elemente (Delphi)#Directiven|Directive]] oder [[Schlüsselwörter|C++-Schlüsselwort]] entspricht.&lt;br /&gt;
** Einen qualifizierten Bezeichner {{Code|identifier1.identifier2}} auswählen. Hier qualifiziert {{Code|identifier1}} {{Code|identifier2}}. Sie können z. B. {{Code|TCollection.Clear}} auswählen.&lt;br /&gt;
** Im &#039;&#039;&#039;Quelltext-Editor&#039;&#039;&#039; auf eine beliebe Stelle zeigen. &lt;br /&gt;
* In einem Formular im &#039;&#039;&#039;[[Formular-Designer|Formular-Designer]]&#039;&#039;&#039; markieren Sie die Komponente.&lt;br /&gt;
* Im Fenster &#039;&#039;&#039;[[Fenster: Meldungen|Meldungen]]&#039;&#039;&#039; markieren Sie eine Meldung.&lt;br /&gt;
* In IDE-Fenstern, wie der &#039;&#039;&#039;[[Projektverwaltung|Projektverwaltung]]&#039;&#039;&#039; oder der &#039;&#039;&#039;[[Modellansicht|Modellansicht]]&#039;&#039;&#039;, klicken Sie in das Fenster.&lt;br /&gt;
&lt;br /&gt;
==DocWiki enthält die aktuellen Informationen==&lt;br /&gt;
&lt;br /&gt;
Die {{Product}}-Hilfe wird aus einem Wiki erzeugt: &#039;&#039;&#039;[[Hilfe zur Hilfe: DocWiki|DocWiki]]&#039;&#039;&#039;. Die Hilfe mit den neuesten Informationen finden Sie stets im DocWiki.  Alle Benutzer von {{Product}} sind eingeladen, sich am DocWiki zu beteiligen. Sie können ein eigenes Benutzerkonto erstellen, indem Sie auf einer beliebigen Seite im DocWiki auf &#039;&#039;&#039;Anmelden/Benutzerkonto anlegen&#039;&#039;&#039; klicken.&lt;br /&gt;
&lt;br /&gt;
Das DocWiki ist in drei einzelne DocWikis unterteilt:&lt;br /&gt;
&lt;br /&gt;
* Themenbezogene Seiten: {{f|radstudio|[http://docwiki.embarcadero.com/RADStudio/en/Main_Page}}{{f|appmethod|http://docwiki.appmethod.com/appmethod/topics/en/Main_Page}} http://docwiki.embarcadero.com/RADStudio/de/Hauptseite}}{{f|appmethod|http://docwiki.appmethod.com/appmethod/topics/de/Hauptseite}}]&lt;br /&gt;
* Bibliotheksreferenz: {{f|radstudio|[http://docwiki.embarcadero.com/Libraries/en/Main_Page}}{{f|appmethod|http://docwiki.appmethod.com/appmethod/libraries/en/Main_Page}} http://docwiki.embarcadero.com/Libraries/de/Hauptseite}}{{f|appmethod|http://docwiki.appmethod.com/appmethod/libraries/de/Hauptseite}}]&lt;br /&gt;
* Code- und Produktbeispiele: {{f|radstudio|[http://docwiki.embarcadero.com/CodeExamples/en/Main_Page}}{{f|appmethod|docwiki.appmethod.com/appmethod/codeexamples/en/Main_Page}} http://docwiki.embarcadero.com/CodeExamples/en/Main_Page}}{{f|appmethod|docwiki.appmethod.com/appmethod/codeexamples/en/Main_Page}}]&lt;br /&gt;
&lt;br /&gt;
In der Offline-CHM-Hilfe wird auf jeder Seite ein Link, &#039;&#039;&#039;Aktuelle Wiki-Seite&#039;&#039;&#039; angezeigt: Klicken Sie auf diesen Link, um auf die aktuelle Docwiki-Version der angezeigten Seite zuzugreifen.&lt;br /&gt;
&lt;br /&gt;
===Die Offline-CHM-Hilfe aktualisieren===&lt;br /&gt;
&lt;br /&gt;
Gelegentlich&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; wird eine neuere Version der Offline-CHM-Hilfe als separater Download bereitgestellt. Um die neuere Version anzuwenden, folgenden Sie den unten genannten Schritten:&lt;br /&gt;
&amp;lt;section begin=&amp;quot;steps&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#  Schließen Sie {{Product}}.&lt;br /&gt;
#  Laden Sie die [http://docs.embarcadero.com/products/rad_studio/radstudio{{RadstudioVersion}}/{{RadstudioVersion}}-CHM-en.zip Zip-Datei] mit den CHM-Dateien herunter.&lt;br /&gt;
#  Extrahieren Sie die ZIP-Datei.&lt;br /&gt;
#  Navigieren Sie zum Speicherort der CHM-Dateien (standardmäßig {{Path|{{InstallPath}}\Help\Doc\de}}).&lt;br /&gt;
#  Überschreiben Sie die vorhandenen CHM-Dateien mit denen aus der ZIP-Datei (Sie können vorher eine Sicherung der alten CHM-Dateien erstellen).&lt;br /&gt;
#  Öffnen Sie {{Product}}.&lt;br /&gt;
#  Starten Sie die Hilfe.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;steps&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;Sie finden das Datum, an dem die CHM-Dateien aktualisiert wurden, [http://docs.embarcadero.com/products/rad_studio/ hier] oder in der Readme-Datei, di in der [http://docs.embarcadero.com/products/rad_studio/radstudio{{RadstudioVersion}}/{{RadstudioVersion}}-CHM-en.zip Zip-Datei] enthalten ist.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Hilfe für Ihre Komponenten bereitstellen|Hilfe für Ihre Komponenten bereitstellen]]&lt;br /&gt;
* [[Einführung in RAD Studio|Einführung in {{Product}}]]&lt;br /&gt;
* [[Hilfe zur Hilfe: DocWiki|Hilfe zur Hilfe: DocWiki]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Einführung]]&lt;br /&gt;
[[Category:XE8]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Neuerungen&amp;diff=208831</id>
		<title>Neuerungen</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Neuerungen&amp;diff=208831"/>
		<updated>2016-06-22T13:20:49Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Imported June 17, 2016 TP. LOC-22913_Topics_GO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Hauptseite}} &lt;br /&gt;
__TOC__&lt;br /&gt;
Das {{Version|Godzilla}}-Release enthält die folgenden neuen und verbesserten Features.&lt;br /&gt;
&lt;br /&gt;
==Linux 64 Bit für Serveranwendungen==&lt;br /&gt;
&lt;br /&gt;
Die neuesten {{Product|Godzilla}}-Technologien für Serveranwendungen unterstützen nun 64-Bit-Linux.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[FireDAC|FireDAC]]&#039;&#039;&#039; stellt Linux-Unterstützung für alle Linux-fähigen DBMS, außer [[Herstellen einer Verbindung zu Informix (FireDAC)|Informix]], bereit. Siehe [[Datenbankkonnektivität (FireDAC)|Datenbankkonnektivität]].&lt;br /&gt;
&lt;br /&gt;
==[[FireMonkey|{{FM|Godzilla}}]]==&lt;br /&gt;
&lt;br /&gt;
===Neue {{FM|Godzilla}}-Stile===&lt;br /&gt;
&lt;br /&gt;
Neue {{FM|Godzilla}}-Stile für &#039;&#039;&#039;Windows 10&#039;&#039;&#039; sind in {{Version|Godzilla}} enthalten: &#039;&#039;&#039;Win10ModernSlateGray.Style&#039;&#039;&#039;, &#039;&#039;&#039;Win10ModernPurple.Style&#039;&#039;&#039; und &#039;&#039;&#039;Win10ModernGreen.Style&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die {{FM|Godzilla}}-Stile finden Sie unter {{Code|{{StylesPath|Godzilla}}}}.&lt;br /&gt;
&lt;br /&gt;
==[[Überblick zu VCL|VCL]]==&lt;br /&gt;
&lt;br /&gt;
===Neue VCL-Stile===&lt;br /&gt;
&lt;br /&gt;
In {{Version|Godzilla}} sind neue VCL-Stile für &#039;&#039;&#039;Windows 10&#039;&#039;&#039; enthalten: &#039;&#039;&#039;Windows10SlateGray.vsf&#039;&#039;&#039;, &#039;&#039;&#039;Windows10Purple.vsf&#039;&#039;&#039; und &#039;&#039;&#039;Windows10Green.vsf&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Über {{menu | Projekt &amp;amp;gt; Optionen &amp;amp;gt; Anwendung &amp;amp;gt; Erscheinungsbild}} können Sie auf die VCL-Stile zugreifen.&lt;br /&gt;
&lt;br /&gt;
==[[FireDAC|FireDAC]]==&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen bei [[Herstellen einer Verbindung zu Firebird (FireDAC)|Firebird]]===&lt;br /&gt;
&lt;br /&gt;
* Neue Eigenschaft [[lib_de:FireDAC.Phys.FB.TFDFBNBackup.Direct|Direct]] zum Hinzufügen von Unterstützung für die [http://www.firebirdsql.org/manual/nbackup-backups.html#nbackup-backups-directio Direct I/O (EN)]-Sicherungsfunktion.&lt;br /&gt;
&lt;br /&gt;
===Weitere FireDAC-Änderungen===&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FireDAC.Comp.BatchMove.TFDBatchMove|TFDBatchMove]] wurde optimiert. Als Nebeneffekt stehen die Eigenschaften {{Code|DestValue}} und {{Code|SourceValue}} von [[lib_de:FireDAC.Comp.BatchMove.TFDBatchMoveMappingItem|TFDBatchMoveMappingItem]] nicht mehr zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
==[[RTL|RTL]]==&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen bei App-Tethering===&lt;br /&gt;
&lt;br /&gt;
Zu [[Verwenden von App-Tethering|App-Tethering]] wurden die folgenden Features hinzugefügt: &lt;br /&gt;
&lt;br /&gt;
* Neue Eigenschaft {{code|SynchronizeEvents}} für [[lib_de:System.Tether.Manager.TTetheringManager.SynchronizeEvents|TTetheringManager]] und [[lib_de:System.Tether.Manager.TTetheringProfile.SynchronizeEvents|TTetheringProfile]] zur Steuerung der Ereignissynchronisierung mit dem Haupt-Thread. Deshalb können jetzt [[lib_de:System.Tether.Manager.TTetheringManager|Manager]] und [[lib_de:System.Tether.Manager.TTetheringProfile|Profile]] steuern, ob ihre Ereignisbehandlungsroutinen im [[lib_de:System.Classes.TThread.Synchronize|Haupt-Thread]] ausgeführt werden oder nicht.&lt;br /&gt;
* Verbesserte Unterstützung für die [[lib_de:System.Tether.Manager.TTetheringAdapter|Protokollfilterung]]: Es wurden weitere Protokollmeldungen hinzugefügt.&lt;br /&gt;
&lt;br /&gt;
===Neue und verbesserte [[lib_de:System.Hash|Hash]]-Funktionen===&lt;br /&gt;
&lt;br /&gt;
Die folgenden Methoden aus der Unit [[lib_de:System.Hash|System.Hash]] akzeptieren jetzt entweder einen [[lib_de:System.Classes.TStream|Stream]] oder einen String als Eingabeparameter:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Hash.THashMD5.GetHashString|THashMD5.GetHashString]]&lt;br /&gt;
* [[lib_de:System.Hash.THashMD5.GetHashBytes|THashMD5.GetHashBytes]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA1.GetHashString|THashSHA1.GetHashString]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA1.GetHashBytes|THashSHA1.GetHashBytes]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA2.GetHashString|THashSHA2.GetHashString]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA2.GetHashBytes|THashSHA2.GetHashBytes]]&lt;br /&gt;
&lt;br /&gt;
Die Unit [[lib_de:System.Hash|System.Hash]] enthält die folgenden neuen Methoden, mit denen Sie einen Hash-Digest aus einer [[lib_de:System.SysUtils.TFileName|Datei]] abrufen können:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Hash.THashMD5.GetHashBytesFromFile|THashMD5.GetHashBytesFromFile]]&lt;br /&gt;
* [[lib_de:System.Hash.THashMD5.GetHashStringFromFile|THashMD5.GetHashStringFromFile]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA1.GetHashBytesFromFile|THashSHA1.GetHashBytesFromFile]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA1.GetHashStringFromFile|THashSHA1.GetHashStringFromFile]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA2.GetHashBytesFromFile|THashSHA2.GetHashBytesFromFile]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA2.GetHashStringFromFile|THashSHA2.GetHashStringFromFile]]&lt;br /&gt;
&lt;br /&gt;
==Neue Befehlszeilenschnittstelle für den GetIt-Package-Manager==&lt;br /&gt;
&lt;br /&gt;
{{Version|Godzilla}} enthält ein neues Befehlszeilenprogramm, &#039;&#039;&#039;[[GetItCmd.exe|GetItCmd.exe]]&#039;&#039;&#039;, eine Befehlszeilenschnittstelle für den &#039;&#039;&#039;[[GetIt-Package-Manager|GetIt-Package-Manager]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[MSBuild|MSBuild]]&#039;&#039;&#039; verwendet {{Path|GetItCmd.exe}} zum automatischen Herunterladen fehlender [[GetIt-Abhängigkeiten|GetIt-Abhängigkeiten]]; außerdem können Sie mit {{Path|GetItCmd.exe}} manuell GetIt-Packages in der Befehlszeile installieren oder entfernen.&lt;br /&gt;
&lt;br /&gt;
==Themen==&lt;br /&gt;
&lt;br /&gt;
* [[Release-Hinweise|Release-Hinweise]]&lt;br /&gt;
* [[Neuerungen in den letzten Releases|Neuerungen in den letzten Releases]] &lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Installationshinweise|Installationshinweise]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Neuerungen&amp;diff=208830</id>
		<title>Neuerungen</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Neuerungen&amp;diff=208830"/>
		<updated>2016-06-22T13:20:46Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Imported June 17, 2016 TP. LOC-22913_Topics_GO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Hauptseite}} &lt;br /&gt;
__TOC__&lt;br /&gt;
Das {{Version|Godzilla}}-Release enthält die folgenden neuen und verbesserten Features.&lt;br /&gt;
&lt;br /&gt;
==Linux 64 Bit für Serveranwendungen==&lt;br /&gt;
&lt;br /&gt;
Die neuesten {{Product|Godzilla}}-Technologien für Serveranwendungen unterstützen nun 64-Bit-Linux.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[FireDAC|FireDAC]]&#039;&#039;&#039; stellt Linux-Unterstützung für alle Linux-fähigen DBMS, außer [[Herstellen einer Verbindung zu Informix (FireDAC)|Informix]], bereit. Siehe [[Datenbankkonnektivität (FireDAC)|Datenbankkonnektivität]].&lt;br /&gt;
&lt;br /&gt;
==[[FireMonkey|{{FM|Godzilla}}]]==&lt;br /&gt;
&lt;br /&gt;
===Neue {{FM|Godzilla}}-Stile===&lt;br /&gt;
&lt;br /&gt;
Neue {{FM|Godzilla}}-Stile für &#039;&#039;&#039;Windows 10&#039;&#039;&#039; sind in {{Version|Godzilla}} enthalten: &#039;&#039;&#039;Win10ModernSlateGray.Style&#039;&#039;&#039;, &#039;&#039;&#039;Win10ModernPurple.Style&#039;&#039;&#039; und &#039;&#039;&#039;Win10ModernGreen.Style&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Die {{FM|Godzilla}}-Stile finden Sie unter {{Code|{{StylesPath|Godzilla}}}}.&lt;br /&gt;
&lt;br /&gt;
==[[Überblick zu VCL|VCL]]==&lt;br /&gt;
&lt;br /&gt;
===Neue VCL-Stile===&lt;br /&gt;
&lt;br /&gt;
In {{Version|Godzilla}} sind neue VCL-Stile für &#039;&#039;&#039;Windows 10&#039;&#039;&#039; enthalten: &#039;&#039;&#039;Windows10SlateGray.vsf&#039;&#039;&#039;, &#039;&#039;&#039;Windows10Purple.vsf&#039;&#039;&#039; und &#039;&#039;&#039;Windows10Green.vsf&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Über {{menu | Projekt &amp;amp;gt; Optionen &amp;amp;gt; Anwendung &amp;amp;gt; Erscheinungsbild}} können Sie auf die VCL-Stile zugreifen.&lt;br /&gt;
&lt;br /&gt;
==[[FireDAC|FireDAC]]==&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen bei [[Herstellen einer Verbindung zu Firebird (FireDAC)|Firebird]]===&lt;br /&gt;
&lt;br /&gt;
* Neue Eigenschaft [[lib_de:FireDAC.Phys.FB.TFDFBNBackup.Direct|Direct]] zum Hinzufügen von Unterstützung für die [http://www.firebirdsql.org/manual/nbackup-backups.html#nbackup-backups-directio Direct I/O (EN)]-Sicherungsfunktion.&lt;br /&gt;
&lt;br /&gt;
===Weitere FireDAC-Änderungen===&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FireDAC.Comp.BatchMove.TFDBatchMove|TFDBatchMove]] wurde optimiert. Als Nebeneffekt stehen die Eigenschaften {{Code|DestValue}} und {{Code|SourceValue}} von [[lib_de:FireDAC.Comp.BatchMove.TFDBatchMoveMappingItem|TFDBatchMoveMappingItem]] nicht mehr zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
==[[RTL|RTL]]==&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen bei App-Tethering===&lt;br /&gt;
&lt;br /&gt;
Zu [[Verwenden von App-Tethering|App-Tethering]] wurden die folgenden Features hinzugefügt: &lt;br /&gt;
&lt;br /&gt;
* Neue Eigenschaft {{code|SynchronizeEvents}} für [[lib_de:System.Tether.Manager.TTetheringManager.SynchronizeEvents|TTetheringManager]] und [[lib_de:System.Tether.Manager.TTetheringProfile.SynchronizeEvents|TTetheringProfile]] zur Steuerung der Ereignissynchronisierung mit dem Haupt-Thread. Deshalb können jetzt [[lib_de:System.Tether.Manager.TTetheringManager|Manager]] und [[lib_de:System.Tether.Manager.TTetheringProfile|Profile]] steuern, ob ihre Ereignisbehandlungsroutinen im [[lib_de:System.Classes.TThread.Synchronize|Haupt-Thread]] ausgeführt werden oder nicht.&lt;br /&gt;
* Verbesserte Unterstützung für die [[lib_de:System.Tether.Manager.TTetheringAdapter|Protokollfilterung]]: Es wurden weitere Protokollmeldungen hinzugefügt.&lt;br /&gt;
&lt;br /&gt;
===Neue und verbesserte [[lib_de:System.Hash|Hash]]-Funktionen===&lt;br /&gt;
&lt;br /&gt;
Die folgenden Methoden aus der Unit [[lib_de:System.Hash|System.Hash]] akzeptieren jetzt entweder einen [[lib_de:System.Classes.TStream|Stream]] oder einen String als Eingabeparameter:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Hash.THashMD5.GetHashString|THashMD5.GetHashString]]&lt;br /&gt;
* [[lib_de:System.Hash.THashMD5.GetHashBytes|THashMD5.GetHashBytes]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA1.GetHashString|THashSHA1.GetHashString]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA1.GetHashBytes|THashSHA1.GetHashBytes]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA2.GetHashString|THashSHA2.GetHashString]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA2.GetHashBytes|THashSHA2.GetHashBytes]]&lt;br /&gt;
&lt;br /&gt;
Die Unit [[lib_de:System.Hash|System.Hash]] enthält die folgenden neuen Methoden, mit denen Sie einen Hash-Digest aus einer [[lib_de:System.SysUtils.TFileName|Datei]] abrufen können:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Hash.THashMD5.GetHashBytesFromFile|THashMD5.GetHashBytesFromFile]]&lt;br /&gt;
* [[lib_de:System.Hash.THashMD5.GetHashStringFromFile|THashMD5.GetHashStringFromFile]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA1.GetHashBytesFromFile|THashSHA1.GetHashBytesFromFile]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA1.GetHashStringFromFile|THashSHA1.GetHashStringFromFile]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA2.GetHashBytesFromFile|THashSHA2.GetHashBytesFromFile]]&lt;br /&gt;
* [[lib_de:System.Hash.THashSHA2.GetHashStringFromFile|THashSHA2.GetHashStringFromFile]]&lt;br /&gt;
&lt;br /&gt;
==Neue Befehlszeilenschnittstelle für den GetIt-Package-Manager==&lt;br /&gt;
&lt;br /&gt;
{{Version|Godzilla}} enthält ein neues Befehlszeilenprogramm, &#039;&#039;&#039;[[GetItCmd.exe|GetItCmd.exe]]&#039;&#039;&#039;, eine Befehlszeilenschnittstelle für den &#039;&#039;&#039;[[GetIt-Package-Manager|GetIt-Package-Manager]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[MSBuild|MSBuild]]&#039;&#039;&#039; verwendet {{Path|GetItCmd.exe}} zum automatischen Herunterladen fehlender [[GetIt-Abhängigkeiten|GetIt-Abhängigkeiten]]; außerdem können Sie mit {{Path|GetItCmd.exe}} manuell GetIt-Packages in der Befehlszeile installieren oder entfernen.&lt;br /&gt;
&lt;br /&gt;
==Themen==&lt;br /&gt;
&lt;br /&gt;
* [[Release-Hinweise|Release-Hinweise]]&lt;br /&gt;
* [[Neuerungen in den letzten Releases|Neuerungen in den letzten Releases]] &lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Installationshinweise|Installationshinweise]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Komponenten_(FireDAC)&amp;diff=208481</id>
		<title>Komponenten (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Komponenten_(FireDAC)&amp;diff=208481"/>
		<updated>2016-06-13T08:24:44Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Corrected. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Architektur (FireDAC)}}&lt;br /&gt;
&lt;br /&gt;
FireDAC enthält mehr als 60 nicht visuelle {{Delphi}}-Komponenten.&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Hauptkomponenten==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Klassen stellen die Hauptkomponenten von FireDAC dar (die meisten Anwendungen verwenden TFDConnection und einige TFDQuery).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDManager|TFDManager]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für Verbindungsdefinitionen ([[Definieren von Verbindungen (FireDAC)|weitere Informationen finden Sie hier]]) und die Verwaltung von Verbindungen.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDConnection|TFDConnection]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Herstellung einer Verbindung ([[Herstellen von Verbindungen (FireDAC)|weitere Informationen finden Sie hier]]) mit einem DBMS.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDTransaction|TFDTransaction]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Verwaltung von Verbindungstransaktionen ([[Verwalten von Transaktionen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDCommand|TFDCommand]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Ausführung von SQL-Anweisungen ([[Ausführen von Anweisungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDTableAdapter|TFDTableAdapter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Bindet TFDCommand und TFDMemTable ein.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDSchemaAdapter|TFDSchemaAdapter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Bindet mehrere Datenmengen in einen einzigen Speicher im Arbeitsspeicher ein und erstellt ein [[Zwischenspeichern von Aktualisierungen (FireDAC)|zentralisiertes Änderungsprotokoll]].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDMemTable|TFDMemTable]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge im Arbeitsspeicher.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDQuery|TFDQuery]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die SQL-Abfragen ausführen kann ([[Ausführen von Anweisungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDStoredProc|TFDStoredProc]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die gespeicherte serverseitige Prozeduren ausführen kann ([[Ausführen von gespeicherten Prozeduren (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDTable|TFDTable]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die mit einzelnen Datenbanktabellen arbeitet ([[Durchsuchen von Tabellen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDUpdateSQL|TFDUpdateSQL]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Übernimmt Aktualisierungen anstelle von Abfragen und gespeicherten Prozeduren, die Aktualisierungen nicht direkt eintragen können ([[Überschreiben von Eintragsaktualisierungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.TFDBatchMove|TFDBatchMove]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für Datenbewegungen zwischen verschiedenen Datenquellen.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Script.TFDScript|TFDScript]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine SQL-Skript-Engine, die eine Reihe von SQL-Abfragen ausführen kann ([[Ausführen von SQL-Skripten (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDMetaInfoQuery|TFDMetaInfoQuery]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die Abfragen von Metainformationen ausführen kann ([[Abfragen von Metadaten (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Behandlung von Benachrichtigungen über Datenbankereignisse ([[Datenbankwarnungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLiteVDataSet.TFDLocalSQL|TFDLocalSQL]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert die Local SQL-Engine, die SQL-Abfragen mit Nachkommen von TDataSet als Datenquelle ausführen kann ([[Local SQL (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Verknüpfungskomponenten für Treiber==&lt;br /&gt;
&lt;br /&gt;
Die meisten Anwendungen verwenden eine Verknüpfungskomponente pro unterstützter Datenbank. Die FireDAC-Verknüpfungskomponenten für Treiber sind in der folgenden Tabelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDPhysADSDriverLink|TFDPhysADSDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysADSDriverLink verknüpfen Sie den Treiber von Advantage Database Server (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Advantage Database Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ASA.TFDPhysASADriverLink|TFDPhysASADriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysASADriverLink verknüpfen Sie den Treiber von Sybase SQL Anywhere (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Sybase SQL Anywhere (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.DS.TFDPhysDSDriverLink|TFDPhysDSDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysDataSnapDriverLink verknüpfen Sie den mehrschichtigen DataSnap-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zum DataSnap-Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.DB2.TFDPhysDB2DriverLink|TFDPhysDB2DriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysDB2DriverLink verknüpfen Sie den IBM DB2-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu IBM DB2 Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDPhysFBDriverLink|TFDPhysFBDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysFBDriverLink verknüpfen Sie den Firebird-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Firebird (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |  [[lib_de:FireDAC.Phys.IB.TFDPhysIBDriverLink|TFDPhysIBDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysIBDriverLink verknüpfen Sie den InterBase-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu InterBase (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |  [[lib_de:FireDAC.Phys.Infx.TFDPhysInfxDriverLink|TFDPhysInfxDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysInfxDriverLink verknüpfen Sie den Informix-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Informix (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MSAcc.TFDPhysMSAccessDriverLink|TFDPhysMSAccessDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMSAccessDriverLink verknüpfen Sie den Microsoft Access-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Microsoft Access-Datenbanken (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MSSQL.TFDPhysMSSQLDriverLink|TFDPhysMSSQLDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMSSQLDriverLink verknüpfen Sie den Treiber von Microsoft SQL Server (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Microsoft SQL Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MySQL.TFDPhysMySQLDriverLink|TFDPhysMySQLDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMySQLDriverLink verknüpfen Sie den MySQL Server-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu MySQL Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ODBC.TFDPhysODBCDriverLink|TFDPhysODBCDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysODBCDriverLink verknüpfen Sie den ODBC-Brückentreiber mit einer Anwendung ([[Herstellen einer Verbindung zu ODBC-Datenquellen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.Oracle.TFDPhysOracleDriverLink|TFDPhysOracleDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysOracleDriverLink verknüpfen Sie den Treiber von Oracle Database (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Oracle Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.PG.TFDPhysPgDriverLink|TFDPhysPgDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysPgDriverLink verknüpfen Sie den PostgreSQL-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu PostgreSQL (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDPhysSQLiteDriverLink|TFDPhysSQLiteDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysSQLiteDriverLink verknüpfen Sie den SQLite-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu SQLite-Datenbanken (FireDAC)|weitere Informationen finden Sie hier]] [[Verwenden von SQLite mit FireDAC|und hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.TData.TFDPhysTDataDriverLink|TFDPhysTDataDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysTDataDriverLink verknüpfen Sie den Treiber von Teradata Database (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Teradata Database (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.TDBX.TFDPhysTDBXDriverLink|TFDPhysTDBXDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysTDBXDriverLink verknüpfen Sie den dbExpress v 4-Brückentreiber mit einer Anwendung ([[Herstellen einer Verbindung zu dbExpress-Datenquellen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDB.TFDPhysMongoDriverLink|TFDPhysMongoDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMongoDriverLink verknüpfen Sie den MongoDB-Treiber mit einer Anwendung ([[Herstellen einer Verbindung zur MongoDB-Datenbank (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Monitor-Verknüpfungskomponenten==&lt;br /&gt;
&lt;br /&gt;
Zur Aktivierung von Ablaufverfolgungsfunktionen können in Anwendungen eine oder mehrere der Monitorkomponenten aus der folgenden Tabelle verwendet werden.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDMoniFlatFileClientLink&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDMoniFlatFileClientLink verknüpfen Sie die Datei-Ablaufverfolgungsfunktionen (Konfiguration erforderlich) mit einer Anwendung ([[Ablaufverfolgung und Überwachung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Moni.RemoteClient.TFDMoniRemoteClientLink|TFDMoniRemoteClientLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDMoniRemoteClientLink verknüpfen Sie die [[FDMonitor|FDMonitor]]-Ablaufverfolgungsfunktionen (Konfiguration erforderlich) mit einer Anwendung ([[Ablaufverfolgung und Überwachung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDMoniCustomClientLink&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDMoniCustomClientLink verknüpfen Sie Ablaufverfolgungsfunktionen (Konfiguration erforderlich) mit einer Anwendung ([[Ablaufverfolgung und Überwachung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-UI-Komponenten==&lt;br /&gt;
&lt;br /&gt;
Die meisten Anwendungen verwenden TFDGUIxWaitCursor und TFDGUIxLoginDialog.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxAsyncExecuteDialog|TFDGUIxAsyncExecuteDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; VCL, &amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; {{FM}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In diesem Dialogfeld wird der Fortschritt der SQL-Abfrageausführung angezeigt ([[Asynchrone Ausführung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxErrorDialog|TFDGUIxErrorDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL,&amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; {{FM}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In diesem Dialogfeld werden die FireDAC-Exceptions angezeigt ([[Fehlerbehandlung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxLoginDialog|TFDGUIxLoginDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL,&amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; {{FM}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In dieses Dialogfeld können Benutzer ihre DB-Anmeldeinformationen eingeben ([[Herstellen von Verbindungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxScriptDialog|TFDGUIxScriptDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL, &amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;{{FM}}, Konsole&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In diesem Dialogfeld wird der Fortschritt der SQL-Skriptausführung angezeigt ([[Ausführen von SQL-Skripten (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxWaitCursor|TFDGUIxWaitCursor]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL, &amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;{{FM}}, Konsole&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Komponente ermöglicht die Steuerung des Wartecursors.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Dienstkomponenten==&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung fügt mit Dienstkomponenten die Unterstützung für spezifische DBMS-Funktionen hinzu.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDADSBackup|TFDADSBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Advantage-Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDADSRestore|TFDADSRestore]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Advantage-Dienst zur Wiederherstellung einer Datenbank aus einer Sicherung.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDADSUtility|TFDADSUtility]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die Advantage-Tabellen-Hilfsprogramme.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ASA.TFDASABackup|TFDASABackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den SQL Anywhere-Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ASA.TFDASAValidate|TFDASAValidate]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Datenbankvalidierungsdienst von SQL Anywhere.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBBackup|TFDIBBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBConfig|TFDIBConfig]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zum Festlegen von Datenbankeigenschaften.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBInfo|TFDIBInfo]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst, um den Dienst-Manager zu ermitteln.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBRestore|TFDIBRestore]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Wiederherstellung einer Datenbank aus einer Sicherung.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |[[lib_de:FireDAC.Phys.IBBase.TFDIBSecurity|TFDIBSecurity]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Verwaltung der Datenbanksicherheit.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBValidate|TFDIBValidate]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Validierung und Reparatur von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IB.TFDIBSDump|TFDIBSDump]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den InterBase-spezifischen Datenbank-Dump-Dienst.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDFBNBackup|TFDFBNBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Firebird-spezifischen Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDFBNRestore|TFDFBNRestore]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Firebird-spezifischen Dienst zur Wiederherstellung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDFBTrace|TFDFBTrace]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Firebird-Dienst zur Verfolgung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MSAcc.TFDMSAccessService|TFDMSAccessService]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die Microsoft Access-Datenbank. Die Klasse erstellt, entfernt, komprimiert und repariert außerdem die Dienste.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.Oracle.TFDOracleAdmin|TFDOracleAdmin]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert einen Service, um eine [https://docs.oracle.com/cd/E11882_01/server.112/e40540/startup.htm#CNCPT005 Oracle-Datenbank-Instanz (EN)] zu verwalten.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteBackup|TFDSQLiteBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die SQLite-Sicherung. Zudem stellt die Klasse die Datenbankfunktionalität wieder her und kopiert sie ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |[[lib_de:FireDAC.Phys.SQLite.TFDSQLiteCollation|TFDSQLiteCollation]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die benutzerdefinierte SQLite-Sortierung ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteFunction|TFDSQLiteFunction]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die benutzerdefinierte SQLite-Funktion ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteSecurity|TFDSQLiteSecurity]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse ermöglicht die Verwaltung der SQLite-Datenbankverschlüsselung ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteValidate|TFDSQLiteValidate]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den SQLite-Datenbankvalidierungsdienst ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteRTree|TFDSQLiteRTree]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert das benutzerdefinierte SQLite RTree-Modul ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-ETL-Komponenten==&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung verwendet ETL-Komponenten für die Datenbewegung zwischen verschiedenen Typen von Datenquellen und den Datenzielen.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.TFDBatchMove|TFDBatchMove]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die Engine zur Verarbeitung von Datenbewegungen zwischen verschiedenen Datenquellen und Datenzielen.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.Text.TFDBatchMoveTextReader|TFDBatchMoveTextReader]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse legt einen Datenquellen-Reader für eine Textdatei fest.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.Text.TFDBatchMoveTextWriter|TFDBatchMoveTextWriter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse legt einen Datenziel-Writer für eine Textdatei fest.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.DataSet.TFDBatchMoveDataSetReader|TFDBatchMoveDataSetReader]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse definiert eine Quelldatenmenge.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.DataSet.TFDBatchMoveDataSetWriter|TFDBatchMoveDataSetWriter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse definiert eine Zieldatenmenge.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.SQL.TFDBatchMoveSQLReader|TFDBatchMoveSQLReader]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse stellt eine Verbindung zu der Datenbank her, die die zu kopierenden Daten enthält.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.SQL.TFDBatchMoveSQLWriter|TFDBatchMoveSQLWriter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse stellt eine Verbindung zu der Datenbank her, in die die Daten kopiert werden sollen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-NoSQL-Komponenten==&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung verwendet NoSQL-Komponenten für die Arbeit mit NoSQL-Dokumentdatenbanken.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDBDataSet.TFDMongoDataSet|TFDMongoDataSet]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert eine Datenmenge, die an den MongoDB-Cursor angefügt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDBDataSet.TFDMongoQuery|TFDMongoQuery]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert eine Datenmenge, die MongoDB-Abfragen ausführen kann.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDBDataSet.TFDMongoPipeline|TFDMongoPipeline]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse ermöglicht die Ausführung einer MongoDB-Pipeline.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Zus%C3%A4tzliche_Migrationshinweise_(FireDAC)&amp;diff=208479</id>
		<title>Zusätzliche Migrationshinweise (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Zus%C3%A4tzliche_Migrationshinweise_(FireDAC)&amp;diff=208479"/>
		<updated>2016-06-13T08:24:43Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Corrected. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Migrieren von BDE-Anwendungen nach FireDAC}}&lt;br /&gt;
&lt;br /&gt;
==Hinweis 1==&lt;br /&gt;
&lt;br /&gt;
Einige Eigenschaften müssen komplett entfernt werden, weil in FireDAC dazu keine Entsprechungen vorhanden sind:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SessionName&#039;&#039;&#039; muss komplett entfernt werden. Gehen Sie dabei aber sehr sorgfältig vor, weil in Ihrer Anwendung mehrere, gleichnamige Verbindungen in unterschiedlichen Sitzungen verwendet werden könnten.&lt;br /&gt;
* &#039;&#039;&#039;PrivateDir&#039;&#039;&#039; muss komplett entfernt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Dies wird vom Migrationsskript &amp;quot;FireDAC_Migrate_BDE.txt&amp;quot; ausgeführt.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 2==&lt;br /&gt;
&lt;br /&gt;
Obwohl in FireDAC die Entsprechung &amp;quot;TFDTable&amp;quot; für die &amp;quot;TTable&amp;quot;-BDE-Komponente vorhanden ist, sollten Sie gleich bei der Migration alle &amp;quot;TTable&amp;quot;-Komponenten durch &amp;quot;TFDQuery&amp;quot;-Komponenten ersetzen.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 3==&lt;br /&gt;
&lt;br /&gt;
BDE-Anwendungen mit persistenten Feldern müssen zusätzlich angepasst werden. Die BDE verwendet weder die Eigenschaften &#039;&#039;&#039;Origin&#039;&#039;&#039; und &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039; für persistente Felder noch das Abfrage-DB-Dictionary oder stellt diese bereit, um die eindeutigen Kennzeichnungsfelder abzurufen. [[Generieren von Aktualisierungsanweisungen (FireDAC)|FireDAC verwendet]] die Eigenschaften &#039;&#039;&#039;Origin&#039;&#039;&#039; und &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039; für persistente Felder und stellt diese Eigenschaften auch bereit. Das Migrationsskript &amp;quot;FireDAC_Migrate_BDE.txt&amp;quot; entfernt alle &#039;&#039;&#039;TField.Origin&#039;&#039;&#039;-Werte aus DFM-Dateien. Wenn &#039;&#039;&#039;Origin&#039;&#039;&#039; leer ist (wie in einer BDE-Anwendung), verwendet FireDAC den Feldnamen. Im Vorgabewert von &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039; ist &#039;&#039;&#039;pfInKey&#039;&#039;&#039; jedoch nicht enthalten, und FireDAC fragt die DB nicht nach Primärschlüsselfeldern ab. FireDAC kann daher die [[Eindeutige Kennzeichnungsfelder (FireDAC)|eindeutigen Kennzeichnungsfelder]] nicht abrufen, und Sie müssen eine der folgenden Aktionen ausführen:&lt;br /&gt;
&lt;br /&gt;
* Neuerstellen von persistenten Feldern.&lt;br /&gt;
* Manuelles Anpassen von &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039;.&lt;br /&gt;
* Manuelles Festlegen von &#039;&#039;&#039;UpdateOptions.KeyFields&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 4==&lt;br /&gt;
&lt;br /&gt;
Codefragmente, wie:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
Screen.Cursor := crSQLWait;&lt;br /&gt;
try&lt;br /&gt;
  ......&lt;br /&gt;
finally&lt;br /&gt;
  Screen.Cursor := crDefault;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten durch Folgendes ersetzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  FireDAC.Stan.Factory, FireDAC.UI.Intf;&lt;br /&gt;
  ......&lt;br /&gt;
var&lt;br /&gt;
  oWait: IFDGUIxWaitCursor;&lt;br /&gt;
  ......&lt;br /&gt;
  FDCreateInterface(IFDGUIxWaitCursor, oWait);&lt;br /&gt;
  oWait.StartWait;&lt;br /&gt;
  try&lt;br /&gt;
    ......&lt;br /&gt;
  finally&lt;br /&gt;
    oWait.StopWait;&lt;br /&gt;
  end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis 5==&lt;br /&gt;
&lt;br /&gt;
FireDAC verfügt über keine Entsprechung für die BDE-API. Daher muss sämtlicher Code, in dem die BDE-API direkt verwendet wird, mit der FireDAC-API neu programmiert werden. Es gibt keine direkte Lösung.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 6==&lt;br /&gt;
&lt;br /&gt;
Für viele Produkte von Fremdherstellern, wie mehrschichtige oder Berichtserstellungsbibliotheken, ist eine DAC-Adapter-Unit erforderlich. Bitte erfragen Sie beim jeweiligen Hersteller, wie Sie einen Adapter erhalten.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 7==&lt;br /&gt;
&lt;br /&gt;
EDBEngineError ist die BDE-spezifische Exception-Klasse. FireDAC enthält eine Entsprechung, nämlich die Klasse &#039;&#039;&#039;EFDDBEngineException&#039;&#039;&#039;. Bei der Behandlung von BDE-Exceptions ermitteln Programmierer mit der Eigenschaft &#039;&#039;&#039;ErrorCode&#039;&#039;&#039; den Fehlertyp. FireDAC verfügt über einen Eigenschaftstyp, der einen Aufzählungswert zurückgibt.&lt;br /&gt;
&lt;br /&gt;
Ändern Sie zum Beispiel den folgenden Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
if E is EDBEngineError then&lt;br /&gt;
begin&lt;br /&gt;
  case EDBEngineError(E).Errors[0].ErrorCode of&lt;br /&gt;
    DBIERR_KEYVIOL: MetaBaseDBError(SMb_DataSetInvalidPKeyValue, E);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
if E is EFDDBEngineException then&lt;br /&gt;
begin&lt;br /&gt;
  case EFDDBEngineException(E).Kind of&lt;br /&gt;
    ekUKViolated: MetaBaseDBError(SMb_DataSetInvalidPKeyValue, E);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis 8==&lt;br /&gt;
&lt;br /&gt;
Die Komponenten &#039;&#039;&#039;TBatchMove&#039;&#039;&#039; und &#039;&#039;&#039;TFDBatchMove&#039;&#039;&#039; unterscheiden sich in vielerlei Hinsicht. Code, in dem die Komponente &#039;&#039;&#039;TBatchMove&#039;&#039;&#039; verwendet wird, muss überarbeitet werden. &lt;br /&gt;
&lt;br /&gt;
==Hinweis 9==&lt;br /&gt;
&lt;br /&gt;
Das Ereignis &#039;&#039;&#039;TFDConnection.OnLogin&#039;&#039;&#039; ist nicht mit der Parameterliste des Ereignisses &#039;&#039;&#039;TDatabase.OnLogin&#039;&#039;&#039; kompatibel. Daher müssen Sie beispielsweise diese Ereignisbehandlungsroutine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TMyDataModule.dbLogin(Connection: TFDConnection; LoginParams: TStrings);&lt;br /&gt;
begin&lt;br /&gt;
  LoginParams.Values[&#039;USER NAME&#039;] := &#039;me&#039;;&lt;br /&gt;
  LoginParams.Values[&#039;PASSWORD&#039;] := &#039;pwd&#039;;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch folgende ersetzen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TMyDataModule.dbLogin (AConnection: TFDCustomConnection; const AConnectionDef: IFDStanConnectionDef);&lt;br /&gt;
begin&lt;br /&gt;
  AConnectionDef.UserName := &#039;me&#039;;&lt;br /&gt;
  AConnectionDef.Password := &#039;pwd&#039;;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis 10==&lt;br /&gt;
&lt;br /&gt;
Für Anwendungen mit heterogenen BDE-Abfragen sollte in FireDAC [[Local SQL (FireDAC)|Local SQL]] verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 11==&lt;br /&gt;
&lt;br /&gt;
Um das Multithreading mit der BDE zu aktivieren, kann in der Anwendung TSession.AutoSessionName auf &#039;&#039;&#039;True&#039;&#039;&#039; gesetzt werden. FireDAC unterstützt das Konzept von benannten Sitzungen nicht. Daher müssen Sie in Ihrer Anwendung statt TFDQuery.ConnectionName (Bindung per Name) TFDQuery.Connection (Bindung per Verweis) verwenden. Weitere Einzelheiten zum Multithreading in FireDAC finden Sie unter [[Multithreading (FireDAC)|Entwickeln von Multithreading-Anwendungen]].&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Komponenten_(FireDAC)&amp;diff=208480</id>
		<title>Komponenten (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Komponenten_(FireDAC)&amp;diff=208480"/>
		<updated>2016-06-13T08:24:41Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Corrected. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Architektur (FireDAC)}}&lt;br /&gt;
&lt;br /&gt;
FireDAC enthält mehr als 60 nicht visuelle {{Delphi}}-Komponenten.&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Hauptkomponenten==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Klassen stellen die Hauptkomponenten von FireDAC dar (die meisten Anwendungen verwenden TFDConnection und einige TFDQuery).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDManager|TFDManager]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für Verbindungsdefinitionen ([[Definieren von Verbindungen (FireDAC)|weitere Informationen finden Sie hier]]) und die Verwaltung von Verbindungen.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDConnection|TFDConnection]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Herstellung einer Verbindung ([[Herstellen von Verbindungen (FireDAC)|weitere Informationen finden Sie hier]]) mit einem DBMS.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDTransaction|TFDTransaction]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Verwaltung von Verbindungstransaktionen ([[Verwalten von Transaktionen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDCommand|TFDCommand]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Ausführung von SQL-Anweisungen ([[Ausführen von Anweisungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDTableAdapter|TFDTableAdapter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Bindet TFDCommand und TFDMemTable ein.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDSchemaAdapter|TFDSchemaAdapter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Bindet mehrere Datenmengen in einen einzigen Speicher im Arbeitsspeicher ein und erstellt ein [[Zwischenspeichern von Aktualisierungen (FireDAC)|zentralisiertes Änderungsprotokoll]].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDMemTable|TFDMemTable]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge im Arbeitsspeicher.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDQuery|TFDQuery]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die SQL-Abfragen ausführen kann ([[Ausführen von Anweisungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDStoredProc|TFDStoredProc]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die gespeicherte serverseitige Prozeduren ausführen kann ([[Ausführen von gespeicherten Prozeduren (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDTable|TFDTable]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die mit einzelnen Datenbanktabellen arbeitet ([[Durchsuchen von Tabellen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDUpdateSQL|TFDUpdateSQL]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Übernimmt Aktualisierungen anstelle von Abfragen und gespeicherten Prozeduren, die Aktualisierungen nicht direkt eintragen können ([[Überschreiben von Eintragsaktualisierungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.TFDBatchMove|TFDBatchMove]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für Datenbewegungen zwischen verschiedenen Datenquellen.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Script.TFDScript|TFDScript]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine SQL-Skript-Engine, die eine Reihe von SQL-Abfragen ausführen kann ([[Ausführen von SQL-Skripten (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDMetaInfoQuery|TFDMetaInfoQuery]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die Abfragen von Metainformationen ausführen kann ([[Abfragen von Metadaten (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Behandlung von Benachrichtigungen über Datenbankereignisse ([[Datenbankwarnungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLiteVDataSet.TFDLocalSQL|TFDLocalSQL]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert die Local SQL-Engine, die SQL-Abfragen mit Nachkommen von TDataSet als Datenquelle ausführen kann ([[Local SQL (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Verknüpfungskomponenten für Treiber==&lt;br /&gt;
&lt;br /&gt;
Die meisten Anwendungen verwenden eine Verknüpfungskomponente pro unterstützter Datenbank. Die FireDAC-Verknüpfungskomponenten für Treiber sind in der folgenden Tabelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDPhysADSDriverLink|TFDPhysADSDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysADSDriverLink verknüpfen Sie den Treiber von Advantage Database Server (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Advantage Database Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ASA.TFDPhysASADriverLink|TFDPhysASADriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysASADriverLink verknüpfen Sie den Treiber von Sybase SQL Anywhere (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Sybase SQL Anywhere (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.DS.TFDPhysDSDriverLink|TFDPhysDSDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysDataSnapDriverLink verknüpfen Sie den mehrschichtigen DataSnap-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zum DataSnap-Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.DB2.TFDPhysDB2DriverLink|TFDPhysDB2DriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysDB2DriverLink verknüpfen Sie den IBM DB2-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu IBM DB2 Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDPhysFBDriverLink|TFDPhysFBDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysFBDriverLink verknüpfen Sie den Firebird-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Firebird (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |  [[lib_de:FireDAC.Phys.IB.TFDPhysIBDriverLink|TFDPhysIBDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysIBDriverLink verknüpfen Sie den InterBase-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu InterBase (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |  [[lib_de:FireDAC.Phys.Infx.TFDPhysInfxDriverLink|TFDPhysInfxDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysInfxDriverLink verknüpfen Sie den Informix-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Informix (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MSAcc.TFDPhysMSAccessDriverLink|TFDPhysMSAccessDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMSAccessDriverLink verknüpfen Sie den Microsoft Access-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Microsoft Access-Datenbanken (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MSSQL.TFDPhysMSSQLDriverLink|TFDPhysMSSQLDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMSSQLDriverLink verknüpfen Sie den Treiber von Microsoft SQL Server (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Microsoft SQL Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MySQL.TFDPhysMySQLDriverLink|TFDPhysMySQLDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMySQLDriverLink verknüpfen Sie den MySQL Server-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu MySQL Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ODBC.TFDPhysODBCDriverLink|TFDPhysODBCDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysODBCDriverLink verknüpfen Sie den ODBC-Brückentreiber mit einer Anwendung ([[Herstellen einer Verbindung zu ODBC-Datenquellen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.Oracle.TFDPhysOracleDriverLink|TFDPhysOracleDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysOracleDriverLink verknüpfen Sie den Treiber von Oracle Database (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Oracle Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.PG.TFDPhysPgDriverLink|TFDPhysPgDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysPgDriverLink verknüpfen Sie den PostgreSQL-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu PostgreSQL (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDPhysSQLiteDriverLink|TFDPhysSQLiteDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysSQLiteDriverLink verknüpfen Sie den SQLite-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu SQLite-Datenbanken (FireDAC)|weitere Informationen finden Sie hier]] [[Verwenden von SQLite mit FireDAC|und hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.TData.TFDPhysTDataDriverLink|TFDPhysTDataDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysTDataDriverLink verknüpfen Sie den Treiber von Teradata Database (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Teradata Database (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.TDBX.TFDPhysTDBXDriverLink|TFDPhysTDBXDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysTDBXDriverLink verknüpfen Sie den dbExpress v 4-Brückentreiber mit einer Anwendung ([[Herstellen einer Verbindung zu dbExpress-Datenquellen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDB.TFDPhysMongoDriverLink|TFDPhysMongoDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMongoDriverLink verknüpfen Sie den MongoDB-Treiber mit einer Anwendung ([[Herstellen einer Verbindung zur MongoDB-Datenbank (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Monitor-Verknüpfungskomponenten==&lt;br /&gt;
&lt;br /&gt;
Zur Aktivierung von Ablaufverfolgungsfunktionen können in Anwendungen eine oder mehrere der Monitorkomponenten aus der folgenden Tabelle verwendet werden.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDMoniFlatFileClientLink&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDMoniFlatFileClientLink verknüpfen Sie die Datei-Ablaufverfolgungsfunktionen (Konfiguration erforderlich) mit einer Anwendung ([[Ablaufverfolgung und Überwachung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Moni.RemoteClient.TFDMoniRemoteClientLink|TFDMoniRemoteClientLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDMoniRemoteClientLink verknüpfen Sie die [[FDMonitor|FDMonitor]]-Ablaufverfolgungsfunktionen (Konfiguration erforderlich) mit einer Anwendung ([[Ablaufverfolgung und Überwachung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDMoniCustomClientLink&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDMoniCustomClientLink verknüpfen Sie Ablaufverfolgungsfunktionen (Konfiguration erforderlich) mit einer Anwendung ([[Ablaufverfolgung und Überwachung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-UI-Komponenten==&lt;br /&gt;
&lt;br /&gt;
Die meisten Anwendungen verwenden TFDGUIxWaitCursor und TFDGUIxLoginDialog.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxAsyncExecuteDialog|TFDGUIxAsyncExecuteDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; VCL, &amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; {{FM}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In diesem Dialogfeld wird der Fortschritt der SQL-Abfrageausführung angezeigt ([[Asynchrone Ausführung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxErrorDialog|TFDGUIxErrorDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL,&amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; {{FM}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In diesem Dialogfeld werden die FireDAC-Exceptions angezeigt ([[Fehlerbehandlung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxLoginDialog|TFDGUIxLoginDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL,&amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; {{FM}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In dieses Dialogfeld können Benutzer ihre DB-Anmeldeinformationen eingeben ([[Herstellen von Verbindungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxScriptDialog|TFDGUIxScriptDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL, &amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;{{FM}}, Konsole&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In diesem Dialogfeld wird der Fortschritt der SQL-Skriptausführung angezeigt ([[Ausführen von SQL-Skripten (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxWaitCursor|TFDGUIxWaitCursor]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL, &amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;{{FM}}, Konsole&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Komponente ermöglicht die Steuerung des Wartecursors.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Dienstkomponenten==&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung fügt mit Dienstkomponenten die Unterstützung für spezifische DBMS-Funktionen hinzu.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDADSBackup|TFDADSBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Advantage-Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDADSRestore|TFDADSRestore]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Advantage-Dienst zur Wiederherstellung einer Datenbank aus einer Sicherung.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDADSUtility|TFDADSUtility]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die Advantage-Tabellen-Hilfsprogramme.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ASA.TFDASABackup|TFDASABackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den SQL Anywhere-Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ASA.TFDASAValidate|TFDASAValidate]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Datenbankvalidierungsdienst von SQL Anywhere.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBBackup|TFDIBBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBConfig|TFDIBConfig]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zum Festlegen von Datenbankeigenschaften.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBInfo|TFDIBInfo]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst, um den Dienst-Manager zu ermitteln.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBRestore|TFDIBRestore]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Wiederherstellung einer Datenbank aus einer Sicherung.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |[[lib_de:FireDAC.Phys.IBBase.TFDIBSecurity|TFDIBSecurity]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Verwaltung der Datenbanksicherheit.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBValidate|TFDIBValidate]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Validierung und Reparatur von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IB.TFDIBSDump|TFDIBSDump]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den InterBase-spezifischen Datenbank-Dump-Dienst.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDFBNBackup|TFDFBNBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Firebird-spezifischen Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDFBNRestore|TFDFBNRestore]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Firebird-spezifischen Dienst zur Wiederherstellung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDFBTrace|TFDFBTrace]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Firebird-Dienst zur Verfolgung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MSAcc.TFDMSAccessService|TFDMSAccessService]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die Microsoft Access-Datenbank. Die Klasse erstellt, entfernt, komprimiert und repariert außerdem die Dienste.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.Oracle.TFDOracleAdmin|TFDOracleAdmin]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert einen Service, um eine [https://docs.oracle.com/cd/E11882_01/server.112/e40540/startup.htm#CNCPT005 Oracle-Datenbank-Instanz (EN)] zu verwalten.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteBackup|TFDSQLiteBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die SQLite-Sicherung. Zudem stellt die Klasse die Datenbankfunktionalität wieder her und kopiert sie ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |[[lib_de:FireDAC.Phys.SQLite.TFDSQLiteCollation|TFDSQLiteCollation]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die benutzerdefinierte SQLite-Sortierung ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteFunction|TFDSQLiteFunction]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die benutzerdefinierte SQLite-Funktion ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteSecurity|TFDSQLiteSecurity]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse ermöglicht die Verwaltung der SQLite-Datenbankverschlüsselung ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteValidate|TFDSQLiteValidate]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den SQLite-Datenbankvalidierungsdienst ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteRTree|TFDSQLiteRTree]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert das benutzerdefinierte SQLite RTree-Modul ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-ETL-Komponenten==&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung verwendet ETL-Komponenten für die Datenbewegung zwischen verschiedenen Typen von Datenquellen und den Datenzielen.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.TFDBatchMove|TFDBatchMove]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die Engine zur Verarbeitung von Datenbewegungen zwischen verschiedenen Datenquellen und Datenzielen.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.Text.TFDBatchMoveTextReader|TFDBatchMoveTextReader]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse legt einen Datenquellen-Reader für eine Textdatei fest.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.Text.TFDBatchMoveTextWriter|TFDBatchMoveTextWriter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse legt einen Datenziel-Writer für eine Textdatei fest.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.DataSet.TFDBatchMoveDataSetReader|TFDBatchMoveDataSetReader]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse definiert eine Quelldatenmenge.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.DataSet.TFDBatchMoveDataSetWriter|TFDBatchMoveDataSetWriter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse definiert eine Zieldatenmenge.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.SQL.TFDBatchMoveSQLReader|TFDBatchMoveSQLReader]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse stellt eine Verbindung zu der Datenbank her, die die zu kopierenden Daten enthält.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.SQL.TFDBatchMoveSQLWriter|TFDBatchMoveSQLWriter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse stellt eine Verbindung zu der Datenbank her, in die die Daten kopiert werden sollen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-NoSQL-Komponenten==&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung verwendet NoSQL-Komponenten für die Arbeit mit NoSQL-Dokumentdatenbanken.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDBDataSet.TFDMongoDataSet|TFDMongoDataSet]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert eine Datenmenge, die an den MongoDB-Cursor angefügt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDBDataSet.TFDMongoQuery|TFDMongoQuery]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert eine Datenmenge, die MongoDB-Abfragen ausführen kann.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDBDataSet.TFDMongoPipeline|TFDMongoPipeline]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse ermöglicht die Ausführung einer MongoDB-Pipeline.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Zus%C3%A4tzliche_Migrationshinweise_(FireDAC)&amp;diff=208478</id>
		<title>Zusätzliche Migrationshinweise (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Zus%C3%A4tzliche_Migrationshinweise_(FireDAC)&amp;diff=208478"/>
		<updated>2016-06-13T08:24:41Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Corrected. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Migrieren von BDE-Anwendungen nach FireDAC}}&lt;br /&gt;
&lt;br /&gt;
==Hinweis 1==&lt;br /&gt;
&lt;br /&gt;
Einige Eigenschaften müssen komplett entfernt werden, weil in FireDAC dazu keine Entsprechungen vorhanden sind:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SessionName&#039;&#039;&#039; muss komplett entfernt werden. Gehen Sie dabei aber sehr sorgfältig vor, weil in Ihrer Anwendung mehrere, gleichnamige Verbindungen in unterschiedlichen Sitzungen verwendet werden könnten.&lt;br /&gt;
* &#039;&#039;&#039;PrivateDir&#039;&#039;&#039; muss komplett entfernt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Dies wird vom Migrationsskript &amp;quot;FireDAC_Migrate_BDE.txt&amp;quot; ausgeführt.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 2==&lt;br /&gt;
&lt;br /&gt;
Obwohl in FireDAC die Entsprechung &amp;quot;TFDTable&amp;quot; für die &amp;quot;TTable&amp;quot;-BDE-Komponente vorhanden ist, sollten Sie gleich bei der Migration alle &amp;quot;TTable&amp;quot;-Komponenten durch &amp;quot;TFDQuery&amp;quot;-Komponenten ersetzen.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 3==&lt;br /&gt;
&lt;br /&gt;
BDE-Anwendungen mit persistenten Feldern müssen zusätzlich angepasst werden. Die BDE verwendet weder die Eigenschaften &#039;&#039;&#039;Origin&#039;&#039;&#039; und &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039; für persistente Felder noch das Abfrage-DB-Dictionary oder stellt diese bereit, um die eindeutigen Kennzeichnungsfelder abzurufen. [[Generieren von Aktualisierungsanweisungen (FireDAC)|FireDAC verwendet]] die Eigenschaften &#039;&#039;&#039;Origin&#039;&#039;&#039; und &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039; für persistente Felder und stellt diese Eigenschaften auch bereit. Das Migrationsskript &amp;quot;FireDAC_Migrate_BDE.txt&amp;quot; entfernt alle &#039;&#039;&#039;TField.Origin&#039;&#039;&#039;-Werte aus DFM-Dateien. Wenn &#039;&#039;&#039;Origin&#039;&#039;&#039; leer ist (wie in einer BDE-Anwendung), verwendet FireDAC den Feldnamen. Im Vorgabewert von &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039; ist &#039;&#039;&#039;pfInKey&#039;&#039;&#039; jedoch nicht enthalten, und FireDAC fragt die DB nicht nach Primärschlüsselfeldern ab. FireDAC kann daher die [[Eindeutige Kennzeichnungsfelder (FireDAC)|eindeutigen Kennzeichnungsfelder]] nicht abrufen, und Sie müssen eine der folgenden Aktionen ausführen:&lt;br /&gt;
&lt;br /&gt;
* Neuerstellen von persistenten Feldern.&lt;br /&gt;
* Manuelles Anpassen von &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039;.&lt;br /&gt;
* Manuelles Festlegen von &#039;&#039;&#039;UpdateOptions.KeyFields&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 4==&lt;br /&gt;
&lt;br /&gt;
Codefragmente, wie:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
Screen.Cursor := crSQLWait;&lt;br /&gt;
try&lt;br /&gt;
  ......&lt;br /&gt;
finally&lt;br /&gt;
  Screen.Cursor := crDefault;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten durch Folgendes ersetzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  FireDAC.Stan.Factory, FireDAC.UI.Intf;&lt;br /&gt;
  ......&lt;br /&gt;
var&lt;br /&gt;
  oWait: IFDGUIxWaitCursor;&lt;br /&gt;
  ......&lt;br /&gt;
  FDCreateInterface(IFDGUIxWaitCursor, oWait);&lt;br /&gt;
  oWait.StartWait;&lt;br /&gt;
  try&lt;br /&gt;
    ......&lt;br /&gt;
  finally&lt;br /&gt;
    oWait.StopWait;&lt;br /&gt;
  end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis 5==&lt;br /&gt;
&lt;br /&gt;
FireDAC verfügt über keine Entsprechung für die BDE-API. Daher muss sämtlicher Code, in dem die BDE-API direkt verwendet wird, mit der FireDAC-API neu programmiert werden. Es gibt keine direkte Lösung.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 6==&lt;br /&gt;
&lt;br /&gt;
Für viele Produkte von Fremdherstellern, wie mehrschichtige oder Berichtserstellungsbibliotheken, ist eine DAC-Adapter-Unit erforderlich. Bitte erfragen Sie beim jeweiligen Hersteller, wie Sie einen Adapter erhalten.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 7==&lt;br /&gt;
&lt;br /&gt;
EDBEngineError ist die BDE-spezifische Exception-Klasse. FireDAC enthält eine Entsprechung, nämlich die Klasse &#039;&#039;&#039;EFDDBEngineException&#039;&#039;&#039;. Bei der Behandlung von BDE-Exceptions ermitteln Programmierer mit der Eigenschaft &#039;&#039;&#039;ErrorCode&#039;&#039;&#039; den Fehlertyp. FireDAC verfügt über einen Eigenschaftstyp, der einen Aufzählungswert zurückgibt.&lt;br /&gt;
&lt;br /&gt;
Ändern Sie zum Beispiel den folgenden Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
if E is EDBEngineError then&lt;br /&gt;
begin&lt;br /&gt;
  case EDBEngineError(E).Errors[0].ErrorCode of&lt;br /&gt;
    DBIERR_KEYVIOL: MetaBaseDBError(SMb_DataSetInvalidPKeyValue, E);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
if E is EFDDBEngineException then&lt;br /&gt;
begin&lt;br /&gt;
  case EFDDBEngineException(E).Kind of&lt;br /&gt;
    ekUKViolated: MetaBaseDBError(SMb_DataSetInvalidPKeyValue, E);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis 8==&lt;br /&gt;
&lt;br /&gt;
Die Komponenten &#039;&#039;&#039;TBatchMove&#039;&#039;&#039; und &#039;&#039;&#039;TFDBatchMove&#039;&#039;&#039; unterscheiden sich in vielerlei Hinsicht. Code, in dem die Komponente &#039;&#039;&#039;TBatchMove&#039;&#039;&#039; verwendet wird, muss überarbeitet werden. &lt;br /&gt;
&lt;br /&gt;
==Hinweis 9==&lt;br /&gt;
&lt;br /&gt;
Das Ereignis &#039;&#039;&#039;TFDConnection.OnLogin&#039;&#039;&#039; ist nicht mit der Parameterliste des Ereignisses &#039;&#039;&#039;TDatabase.OnLogin&#039;&#039;&#039; kompatibel. Daher müssen Sie beispielsweise diese Ereignisbehandlungsroutine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TMyDataModule.dbLogin(Connection: TFDConnection; LoginParams: TStrings);&lt;br /&gt;
begin&lt;br /&gt;
  LoginParams.Values[&#039;USER NAME&#039;] := &#039;me&#039;;&lt;br /&gt;
  LoginParams.Values[&#039;PASSWORD&#039;] := &#039;pwd&#039;;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch folgende ersetzen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TMyDataModule.dbLogin (AConnection: TFDCustomConnection; const AConnectionDef: IFDStanConnectionDef);&lt;br /&gt;
begin&lt;br /&gt;
  AConnectionDef.UserName := &#039;me&#039;;&lt;br /&gt;
  AConnectionDef.Password := &#039;pwd&#039;;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis 10==&lt;br /&gt;
&lt;br /&gt;
Für Anwendungen mit heterogenen BDE-Abfragen sollte in FireDAC [[Local SQL (FireDAC)|Local SQL]] verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 11==&lt;br /&gt;
&lt;br /&gt;
Um das Multithreading mit der BDE zu aktivieren, kann in der Anwendung TSession.AutoSessionName auf &#039;&#039;&#039;True&#039;&#039;&#039; gesetzt werden. FireDAC unterstützt das Konzept von benannten Sitzungen nicht. Daher müssen Sie in Ihrer Anwendung statt TFDQuery.ConnectionName (Bindung per Name) TFDQuery.Connection (Bindung per Verweis) verwenden. Weitere Einzelheiten zum Multithreading in FireDAC finden Sie unter [[Multithreading (FireDAC)|Entwickeln von Multithreading-Anwendungen]].&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Val&amp;diff=208477</id>
		<title>Val</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Val&amp;diff=208477"/>
		<updated>2016-06-13T08:03:40Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
{{Redirect|lib_de:System.Val|System.Val}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Unicode-Unterst%C3%BCtzung_(FireDAC)&amp;diff=208475</id>
		<title>Unicode-Unterstützung (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Unicode-Unterst%C3%BCtzung_(FireDAC)&amp;diff=208475"/>
		<updated>2016-06-13T08:03:39Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Arbeiten mit Verbindungen (FireDAC)}}&lt;br /&gt;
&lt;br /&gt;
In diesem Thema wird beschrieben, wie FireDAC mit Unicode-Daten und -Metadaten arbeitet. FireDAC unterstützt Unicode-Daten und -Metadaten vollständig. Allerdings müssen in einer Anwendung möglicherweise einige Anpassungen vorgenommen werden, damit Unicode ordnungsgemäß verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Informationen==&lt;br /&gt;
&lt;br /&gt;
Die meisten Anwendungen für Unternehmensdatenbanken müssen mit Zeichendaten arbeiten können, die im Unicode-Format codiert sind. FireDAC bietet eine vollständige Unterstützung für:&lt;br /&gt;
&lt;br /&gt;
*verschiedene Einzelbyte-Client-Zeichensätze und -Codeseiten, einschließlich Standard-ANSI.&lt;br /&gt;
*Multibyte-Strings, wie Unicode, einschließlich der Codierungen UTF8, UTF16 und UCS2.&lt;br /&gt;
&lt;br /&gt;
Die Behandlung von Unicode durch FireDAC hängt von Folgendem ab:&lt;br /&gt;
&lt;br /&gt;
*der verwendeten {{Delphi}}-Version.&lt;br /&gt;
*dem Client-Zeichensatz – UTF8/UTF16- oder ACP-kompatibel.&lt;br /&gt;
*dem DBMS-Client/Treiber.&lt;br /&gt;
&lt;br /&gt;
FireDAC führt bei Bedarf eine transparente Zeichensatzkonvertierung zwischen dem {{Delphi}}-Anwendungs- und dem DBMS-Client-Zeichensatz durch. Die vollständige Unicode-Unterstützung kann nur mit der Unicode-{{Delphi}}-Version – {{Delphi}} 2009 und höher – erreicht werden. Die folgende Tabelle enthält eine Übersicht darüber, welche Codierung abhängig von der {{Delphi}}-Version wo verwendet werden kann:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Verwendung&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Unicode-fähiges {{Delphi}} 2009 und später&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Nicht-Unicode-fähiges {{Delphi}} 2007 und früher&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | SQL-Anweisungstext&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ANSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | SQL-Skripttext&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ANSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Feldwerte in Ergebnismengen&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode / ANSI&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ANSI / Unicode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Parameterwerte&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode / ANSI&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ANSI / Unicode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Metadatenwerte, einschließlich:&lt;br /&gt;
*Spaltennamen&lt;br /&gt;
*Tabellennamen&lt;br /&gt;
*Generatornamen&lt;br /&gt;
*Indexnamen&lt;br /&gt;
*usw.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ANSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Abfragewerte von Metadaten&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Textdatendateien&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode / ANSI&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ANSI / Unicode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Ablaufverfolgungsausgabe&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode / ANSI&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ANSI / Unicode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Tools&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren von Verbindungsdefinitionen für Unicode==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Setzen Sie für {{Delphi}} 2009 und höher den DBMS-Client-Zeichensatz auf Unicode, um Konvertierungsverluste zu vermeiden. &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen muss der DBMS-Client-Zeichensatz auf Unicode gesetzt werden, um Verbindungsdefinitionen für Unicode zu konfigurieren. Wie dies ausgeführt wird, ist von der verwendeten {{Delphi}}-Version und dem DBMS-Treiber abhängig:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;DBMS&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Advantage Database Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nicht unterstützt.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | IBM DB2 Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt. Wird in {{Delphi}} 2007 oder früher nicht unterstützt.&lt;br /&gt;
|- {{fr|datasnap}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | DataSnap-Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt. Wird in {{Delphi}} 2007 oder früher nicht unterstützt.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Firebird&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | CharacterSet=utf8.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Informix&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | InterBase&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | CharacterSet=utf8.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Microsoft SQL Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt. Wird in {{Delphi}} 2007 oder früher nicht unterstützt.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Microsoft Access-Datenbank&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt. Wird in {{Delphi}} 2007 oder früher nicht unterstützt.&lt;br /&gt;
&lt;br /&gt;
Legen Sie &amp;quot;StringFormat=Unicode&amp;quot; fest, damit alle String-Spalten auf Unicode-Datentypen eingestellt werden.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | MySQL Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | CharacterSet=utf8.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Oracle Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*CharacterSet=utf8.&lt;br /&gt;
*oder NLS_LANG=_.UTF8, wenn CharacterSet nicht angegeben ist.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | PostgreSQL&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | CharacterSet=utf8.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | SQLite-Datenbank&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt. Wird in {{Delphi}} 2007 oder früher nicht unterstützt.&lt;br /&gt;
&lt;br /&gt;
Legen Sie &amp;quot;StringFormat=Unicode&amp;quot; fest, damit alle String-Spalten auf Unicode-Datentypen eingestellt werden.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Sybase SQL Anywhere&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt. Wird in {{Delphi}} 2007 oder früher nicht unterstützt.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Teradata Database&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | CharacterSet=utf8 oder CharacterSet=utf16.&lt;br /&gt;
|- {{fr|dbexpress}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | dbExpress-Brückentreiber&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Abhängig vom dbExpress-Treiber.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ODBC-Brückentreiber&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt. Wird in {{Delphi}} 2007 oder früher nicht unterstützt.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==SQL-Anweisungstext==&lt;br /&gt;
&lt;br /&gt;
Ab {{Delphi}} 2009 sind [[lib_de:FireDAC.Comp.Client.TFDQuery.SQL|TFDQuery.SQL]], [[lib_de:FireDAC.Comp.Client.TFDCommand.CommandText|TFDCommand.CommandText]], IFDPhysCommand.CommandText und andere Eigenschaftswerte in Unicode codiert. Der Präprozessor für SQL-Anweisungstext unterstützt nur die UCS2-Codierungen, d. h. Surrogatpaare werden nicht unterstützt.&lt;br /&gt;
&lt;br /&gt;
Versionen vor {{Delphi}} 2009 unterstützen nur in ANSI codierten Anweisungstext.&lt;br /&gt;
&lt;br /&gt;
Vor dem Senden von SQL-Anweisungstext an das DBMS, konvertiert FireDAC ihn in:&lt;br /&gt;
&lt;br /&gt;
*Die aktive Codeseite, wenn der Client-Zeichensatz auf SBCS (Nicht-Unicode) gesetzt ist. Wenn der Client-Zeichensatz nicht mit ACP kompatibel ist, sind Konvertierungsverluste möglich.&lt;br /&gt;
*UTF8, wenn der Client-Zeichensatz auf UTF8 gesetzt ist.&lt;br /&gt;
*UTF16, wenn der Client-Zeichensatz auf UTF16 gesetzt ist.&lt;br /&gt;
&lt;br /&gt;
Führen Sie einfach Folgendes aus, um einen in Unicode codierten SQL-Anweisungstext anzugeben:&lt;br /&gt;
&lt;br /&gt;
 FDQuery1.SQL.Text := &#039;select &#039;&#039;Hello world !&#039;&#039; where Lang = &#039;&#039;RU&#039;&#039; and Val = &#039;&#039;Привет мир !&#039;&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
==SQL-Skripttext==&lt;br /&gt;
&lt;br /&gt;
Ab {{Delphi}} 2009 können [[lib_de:FireDAC.Comp.Script.TFDScript.SQLScripts|TFDScript.SQLScripts]]-Sammlungen in Unicode codierten SQL-Skripttext enthalten. Ansonsten wird die Verarbeitung von SQL-Skripttext genauso wie die Verarbeitung von SQL-Anweisungstext ausgeführt.&lt;br /&gt;
&lt;br /&gt;
Versionen vor {{Delphi}} 2009 unterstützen nur in ANSI codierten Skripttext. [[lib_de:FireDAC.Comp.Script.TFDScript|TFDScript]] kann in Unicode codierte SQL-Skriptdateien laden, aber sie werden vor der Verarbeitung in die ACP-Codierung (ANSI) konvertiert.&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie die Eigenschaft [[lib_de:FireDAC.Comp.Script.TFDScriptOptions.FileEncoding|TFDScript.ScriptOptions.FileEncoding]], um die Codierung von SQL-Skriptdateien und Protokolldateien zu steuern:&lt;br /&gt;
&lt;br /&gt;
 FDScript1.ScriptOptions.FileEncoding := enUTF16;&lt;br /&gt;
 FDScript1.SQLScriptFileName := &#039;u:\builddb.sql&#039;;&lt;br /&gt;
 FDScript1.ExecuteAll;&lt;br /&gt;
&lt;br /&gt;
==Felder in Ergebnismengen==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;DBMS&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung &#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Advantage Database Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*NCHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*NVARCHAR – ftWideString&lt;br /&gt;
*NMEMO – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | IBM DB2 Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*GRAPHIC – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*VARGRAPHIC – ftWideString&lt;br /&gt;
*LONG VARGRAPHIC, DBCLOB – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|- {{fr|datasnap}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | DataSnap-Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*ftFixedWideChar für {{Delphi}} 2006 und höher und ftWideString&lt;br /&gt;
*ftWideMemo für {{Delphi}} 2006 und höher und ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Firebird&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wenn CharacterSet auf UTF8 oder UNICODE_FSS gesetzt ist, dann:&lt;br /&gt;
*CHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*VARCHAR – ftWideString&lt;br /&gt;
*BLOB SUB_TYPE TEXT – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Informix&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Wenn der Verbindungsdefinitionsparameter StringFormat=Unicode, dann sind alle String-Spalten Wide-Strings. Wenn StringFormat=Ansi, dann sind alle String-Spalten ANSI-Strings. Vorgabe: StringFormat=Ansi.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | InterBase&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wenn CharacterSet auf UTF8, UNICODE_FSS, UNICODE_LE oder UNICODE_BE gesetzt ist, dann:&lt;br /&gt;
*CHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*VARCHAR – ftWideString&lt;br /&gt;
*BLOB SUB_TYPE TEXT – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Microsoft SQL Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*NCHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*NVARCHAR – ftWideString&lt;br /&gt;
*NTEXT, NVARCHAR(MAX) – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Microsoft Access-Datenbank&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*CHARACTER – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*MEMO – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
&lt;br /&gt;
Wenn der Verbindungsdefinitionsparameter StringFormat=Unicode, dann sind alle String-Spalten Wide-Strings. Wenn StringFormat=Ansi, dann sind alle String-Spalten ANSI-Strings. Vorgabe: StringFormat=Choose.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | MySQL Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wenn CharacterSet auf UTF8 gesetzt ist, dann:&lt;br /&gt;
*CHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*VARCHAR, TINYTEXT – ftWideString&lt;br /&gt;
*MEDIUMTEXT, TEXT, LONGTEXT – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Oracle Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*NCHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*NVARCHAR2 – ftWideString&lt;br /&gt;
*NCLOB – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
&lt;br /&gt;
Wenn CharacterSet auf UTF8 gesetzt ist, dann:&lt;br /&gt;
*CHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*VARCHAR2 – ftWideString&lt;br /&gt;
*LONG, CLOB – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | SQLite-Datenbank&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wenn StringFormat=Choose, dann:&lt;br /&gt;
*NCHAR, NATIONAL CHAR, NATIONAL CHARACTER – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*NVARCHAR, NVARCHAR2, NATIONAL CHARACTER VARYING, NATIONAL CHAR VARYING – ftWideString&lt;br /&gt;
*TEXT, NTEXT, WTEXT, NCLOB, NMEMO, LONG NTEXT, LONG WTEXT, NATIONAL TEXT, LONGWVARCHAR – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
&lt;br /&gt;
Wenn der Verbindungsdefinitionsparameter StringFormat=Unicode, dann sind alle String-Spalten Wide-Strings. Wenn StringFormat=Ansi, dann sind alle String-Spalten ANSI-Strings. Vorgabe: StringFormat=Choose.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | PostgreSQL&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wenn CharacterSet auf UTF8 gesetzt ist, dann:&lt;br /&gt;
*CHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*VARCHAR – ftWideString&lt;br /&gt;
*TEXT – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Sybase SQL Anywhere&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*NCHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*NVARCHAR – ftWideString&lt;br /&gt;
*LONG NVARCHAR – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Teradata Database&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nicht unterstützt.&lt;br /&gt;
|- {{fr|dbexpress}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | dbExpress-Brückentreiber&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Hängt vom dbExpress-Treiber und dem DBMS ab. Allgemeine Regel:&lt;br /&gt;
&lt;br /&gt;
DBX1-3:&lt;br /&gt;
*fldZSTRING, fldstUNICODE – ftWideString&lt;br /&gt;
*fldZSTRING, fldstUNICODE, fldstFIXED – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*fldBLOB, fldstMEMO, fldstUNICODE – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
*fldBLOB, fldstFMTMEMO – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
&lt;br /&gt;
DBX4:&lt;br /&gt;
*TDBXDataTypes.WideStringType – ftWideString&lt;br /&gt;
*TDBXDataTypes.WideStringType, TDBXDataTypes.FixedSubType – ftFixedWideChar&lt;br /&gt;
*TDBXDataTypes.BlobType, TDBXDataTypes.WideMemoSubType – ftWideMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ODBC-Brückentreiber&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Hängt vom ODBC-Treiber und dem DBMS ab. Allgemeine Regel:&lt;br /&gt;
*SQL_WCHAR, SQL_GRAPHIC – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*SQL_WVARCHAR, SQL_VARGRAPHIC, SQL_LONGVARGRAPHIC – ftWideString&lt;br /&gt;
*SQL_WLONGVARCHAR, SQL_DBCLOB – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie zum programmgesteuerten Lesen/Schreiben von Unicode-String-Werten:&lt;br /&gt;
&lt;br /&gt;
*Die Eigenschaft [[lib_de:Data.DB.TField.AsWideString|TField.AsWideString]] oder [[lib_de:Data.DB.TField.Value|TField.Value]].&lt;br /&gt;
*[[lib_de:Data.DB.TField.AsString|TField.AsString]] für {{Delphi}} 2009 und höher. In früheren Versionen von {{Delphi}} kann das Lesen/Schreiben der Eigenschaft AsString zu Konvertierungsverlusten führen, weil AsString hier ANSI-Strings zurückgibt.&lt;br /&gt;
&lt;br /&gt;
So lesen/schreiben Sie das Unicode-Feld in beliebigen {{Delphi}}-Versionen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDQuery1.Edit;&lt;br /&gt;
FDQuery1.Fields[0].AsWideString := FDQuery1.Fields[0].AsWideString + &#039;русский&#039; + &#039;english&#039;;&lt;br /&gt;
FDQuery1.Post;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So lesen/schreiben Sie das Unicode-Memofeld in {{Delphi}} 2009:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDQuery1.Edit;&lt;br /&gt;
FDQuery1.FieldsByName(&#039;memo&#039;).Assign(Memo1.Lines);&lt;br /&gt;
FDQuery1.Post;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Parameterwerte==&lt;br /&gt;
&lt;br /&gt;
Der in Unicode codierte Parameterwert wird in einen vom DBMS unterstützten Unicode-Zeichensatz konvertiert und an das DBMS gesendet. Dies ist nicht von einem Client-Zeichensatz oder einer {{Delphi}}-Version abhängig. Firebird und InterBase können keine Unicode-Zeichendaten an einen Server senden, wenn der Parameter &amp;lt;code&amp;gt;CharacterSet&amp;lt;/code&amp;gt; nicht UTF8 ist.&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie zum Lesen/Schreiben eines Unicode-Parameterwertes für alle {{Delphi}}-Versionen die Eigenschaft [[lib_de:Data.DB.TField.AsWideString|AsWideString]]. Das Verhalten von &amp;lt;code&amp;gt;AsString&amp;lt;/code&amp;gt; ist plattformabhängig:&lt;br /&gt;
&lt;br /&gt;
*Auf Plattformen der nächsten Generation (iOS und Android) ist &amp;lt;code&amp;gt;AsString&amp;lt;/code&amp;gt; äquivalent zu &amp;lt;code&amp;gt;AsWideString&amp;lt;/code&amp;gt; (Unicode).&lt;br /&gt;
*Auf anderen Plattformen ist &amp;lt;code&amp;gt;AsString&amp;lt;/code&amp;gt; äquivalent zu &amp;lt;code&amp;gt;AsAnsiString&amp;lt;/code&amp;gt; (SBCS/ANSI-Strings).&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDQuery1.Params[0].AsWideString := &#039;русский&#039; + &#039;english&#039;;&lt;br /&gt;
// The following code lines are equivalent to the previous one:&lt;br /&gt;
FDQuery1.Params[0].DataType := ftWideString;&lt;br /&gt;
FDQuery1.Params[0].Value := &#039;русский&#039; + &#039;english&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Metadatenwerte==&lt;br /&gt;
&lt;br /&gt;
Ab {{Delphi}} 2009 wird in Unicode codierter Metadatentext unterstützt für:&lt;br /&gt;
&lt;br /&gt;
*Tabellennamen&lt;br /&gt;
*Spaltennamen in Ergebnismengen&lt;br /&gt;
*Namen von gespeicherten Prozeduren&lt;br /&gt;
*Parameternamen von gespeicherten Prozeduren&lt;br /&gt;
*Parameternamen von SQL-Anweisungen&lt;br /&gt;
*Makro-Namen von SQL-Anweisungen&lt;br /&gt;
*Benutzernamen&lt;br /&gt;
*Schema-, Katalognamen&lt;br /&gt;
&lt;br /&gt;
Versionen vor {{Delphi}} 2009 unterstützen nur in ANSI codierten Metadatentext.&lt;br /&gt;
&lt;br /&gt;
Alle Spalten in Metadatenergebnismengen, die von [[lib_de:FireDAC.Comp.Client.TFDMetaInfoCommand|TFDMetaInfoCommand]], [[lib_de:FireDAC.Comp.Client.TFDMetaInfoQuery|TFDMetaInfoQuery]] und IFDPhysMetaInfoCommand zurückgegeben werden, haben Unicode-String-Datentypen.&lt;br /&gt;
&lt;br /&gt;
==Ablaufverfolgungsausgabe==&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den Wert der Eigenschaft &amp;lt;code&amp;gt;TADMoniFlatFileClientLink.FileEncoding&amp;lt;/code&amp;gt; auf ecUTF8 oder ecUTF16, um die Unicode-Codierung für die [[Ablaufverfolgung und Überwachung (FireDAC)|Ablaufverfolgungsausgabe]] (&amp;lt;code&amp;gt;MonitorBy=FlatFile&amp;lt;/code&amp;gt;) zu aktivieren.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
Alle FireDAC-Hilfsprogramme wurden mit der Unicode-{{Delphi}}-Version compiliert und sind 100 % Unicode-aktiviert.&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TTimeZoneInformation&amp;diff=208473</id>
		<title>TTimeZoneInformation</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TTimeZoneInformation&amp;diff=208473"/>
		<updated>2016-06-13T08:03:39Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
{{Code|TTimeZoneInformation}} ist eine Umwandlung der Struktur {{Code|TIME_ZONE_INFORMATION}} des Windows-API. Weitere Informationen finden Sie bei MSDN unter [https://msdn.microsoft.com/en-us/library/windows/desktop/ms725481 TIME_ZONE_INFORMATION structure (EN)].&lt;br /&gt;
&lt;br /&gt;
[[Category:Begriffserklärungsseiten]]&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TNetEncoding&amp;diff=208471</id>
		<title>TNetEncoding</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TNetEncoding&amp;diff=208471"/>
		<updated>2016-06-13T08:03:38Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
{{Redirect|lib_de:System.NetEncoding.TNetEncoding|System.NetEncoding.TNetEncoding}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TFDBatchMove&amp;diff=208469</id>
		<title>TFDBatchMove</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TFDBatchMove&amp;diff=208469"/>
		<updated>2016-06-13T08:03:38Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
{{Redirect|lib_de:FireDAC.Comp.BatchMove.TFDBatchMove|FireDAC.Comp.BatchMove.TFDBatchMove}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TBindSourceDB&amp;diff=208467</id>
		<title>TBindSourceDB</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TBindSourceDB&amp;diff=208467"/>
		<updated>2016-06-13T08:03:37Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
{{Redirect|lib_de:Data.Bind.DBScope.TBindSourceDB|Data.Bind.DBScope.TBindSourceDB}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=FieldDefs&amp;diff=208465</id>
		<title>FieldDefs</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=FieldDefs&amp;diff=208465"/>
		<updated>2016-06-13T08:03:37Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
Es gibt mehrere API-Member mit dem Namen {{Code|FieldDefs}}. [[lib_de:Special:Search/FieldDefs|Suchen Sie in der Bibliotheksdokumentation danach]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Begriffserklärungsseiten]]&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Datentyp&amp;diff=208463</id>
		<title>Datentyp</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Datentyp&amp;diff=208463"/>
		<updated>2016-06-13T08:03:36Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
Es gibt mehrere API-Member mit dem Namen {{Code|DataType}}. [[lib_de:Special:Search/DataType|Suchen Sie in der Bibliotheksdokumentation danach]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Begriffserklärungsseiten]]&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Komponenten_(FireDAC)&amp;diff=208461</id>
		<title>Komponenten (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Komponenten_(FireDAC)&amp;diff=208461"/>
		<updated>2016-06-13T08:03:34Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Architektur (FireDAC)}}&lt;br /&gt;
&lt;br /&gt;
FireDAC enthält mehr als 60 nicht visuelle {{Delphi}}-Komponenten.&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Hauptkomponenten==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Klassen stellen die Hauptkomponenten von FireDAC dar (die meisten Anwendungen verwenden TFDConnection und einige TFDQuery).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDManager|TFDManager]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für Verbindungsdefinitionen ([[Definieren von Verbindungen (FireDAC)|weitere Informationen finden Sie hier]]) und die Verwaltung von Verbindungen.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDConnection|TFDConnection]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Herstellung einer Verbindung ([[Herstellen von Verbindungen (FireDAC)|weitere Informationen finden Sie hier]]) mit einem DBMS.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDTransaction|TFDTransaction]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Verwaltung von Verbindungstransaktionen ([[Verwalten von Transaktionen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDCommand|TFDCommand]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Ausführung von SQL-Anweisungen ([[Ausführen von Anweisungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDTableAdapter|TFDTableAdapter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Bindet TFDCommand und TFDMemTable ein.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDSchemaAdapter|TFDSchemaAdapter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Bindet mehrere Datenmengen in einen einzigen Speicher im Arbeitsspeicher ein und erstellt ein [[Zwischenspeichern von Aktualisierungen (FireDAC)|zentralisiertes Änderungsprotokoll]].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDMemTable|TFDMemTable]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge im Arbeitsspeicher.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDQuery|TFDQuery]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die SQL-Abfragen ausführen kann ([[Ausführen von Anweisungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDStoredProc|TFDStoredProc]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die gespeicherte serverseitige Prozeduren ausführen kann ([[Ausführen von gespeicherten Prozeduren (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDTable|TFDTable]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die mit einzelnen Datenbanktabellen arbeitet ([[Durchsuchen von Tabellen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDUpdateSQL|TFDUpdateSQL]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Übernimmt Aktualisierungen anstelle von Abfragen und gespeicherten Prozeduren, die Aktualisierungen nicht direkt eintragen können ([[Überschreiben von Eintragsaktualisierungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.TFDBatchMove|TFDBatchMove]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für Datenbewegungen zwischen verschiedenen Datenquellen.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Script.TFDScript|TFDScript]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine SQL-Skript-Engine, die eine Reihe von SQL-Abfragen ausführen kann ([[Ausführen von SQL-Skripten (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDMetaInfoQuery|TFDMetaInfoQuery]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die Abfragen von Metainformationen ausführen kann ([[Abfragen von Metadaten (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Behandlung von Benachrichtigungen über Datenbankereignisse ([[Datenbankwarnungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLiteVDataSet.TFDLocalSQL|TFDLocalSQL]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert die Local SQL-Engine, die SQL-Abfragen mit Nachkommen von TDataSet als Datenquelle ausführen kann ([[Local SQL (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Verknüpfungskomponenten für Treiber==&lt;br /&gt;
&lt;br /&gt;
Die meisten Anwendungen verwenden eine Verknüpfungskomponente pro unterstützter Datenbank. Die FireDAC-Verknüpfungskomponenten für Treiber sind in der folgenden Tabelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDPhysADSDriverLink|TFDPhysADSDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysADSDriverLink verknüpfen Sie den Treiber von Advantage Database Server (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Advantage Database Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ASA.TFDPhysASADriverLink|TFDPhysASADriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysASADriverLink verknüpfen Sie den Treiber von Sybase SQL Anywhere (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Sybase SQL Anywhere (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.DS.TFDPhysDSDriverLink|TFDPhysDSDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysDataSnapDriverLink verknüpfen Sie den mehrschichtigen DataSnap-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zum DataSnap-Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.DB2.TFDPhysDB2DriverLink|TFDPhysDB2DriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysDB2DriverLink verknüpfen Sie den IBM DB2-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu IBM DB2 Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDPhysFBDriverLink|TFDPhysFBDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysFBDriverLink verknüpfen Sie den Firebird-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Firebird (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |  [[lib_de:FireDAC.Phys.IB.TFDPhysIBDriverLink|TFDPhysIBDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysIBDriverLink verknüpfen Sie den InterBase-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu InterBase (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |  [[lib_de:FireDAC.Phys.Infx.TFDPhysInfxDriverLink|TFDPhysInfxDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysInfxDriverLink verknüpfen Sie den Informix-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Informix (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MSAcc.TFDPhysMSAccessDriverLink|TFDPhysMSAccessDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMSAccessDriverLink verknüpfen Sie den Microsoft Access-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Microsoft Access-Datenbanken (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MSSQL.TFDPhysMSSQLDriverLink|TFDPhysMSSQLDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMSSQLDriverLink verknüpfen Sie den Treiber von Microsoft SQL Server (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Microsoft SQL Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MySQL.TFDPhysMySQLDriverLink|TFDPhysMySQLDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMySQLDriverLink verknüpfen Sie den MySQL Server-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu MySQL Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ODBC.TFDPhysODBCDriverLink|TFDPhysODBCDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysODBCDriverLink verknüpfen Sie den ODBC-Brückentreiber mit einer Anwendung ([[Herstellen einer Verbindung zu ODBC-Datenquellen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.Oracle.TFDPhysOracleDriverLink|TFDPhysOracleDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysOracleDriverLink verknüpfen Sie den Treiber von Oracle Database (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Oracle Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.PG.TFDPhysPgDriverLink|TFDPhysPgDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysPgDriverLink verknüpfen Sie den PostgreSQL-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu PostgreSQL (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDPhysSQLiteDriverLink|TFDPhysSQLiteDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysSQLiteDriverLink verknüpfen Sie den SQLite-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu SQLite-Datenbanken (FireDAC)|weitere Informationen finden Sie hier]] [[Verwenden von SQLite mit FireDAC|und hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.TData.TFDPhysTDataDriverLink|TFDPhysTDataDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysTDataDriverLink verknüpfen Sie den Treiber von Teradata Database (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Teradata Database (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.TDBX.TFDPhysTDBXDriverLink|TFDPhysTDBXDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysTDBXDriverLink verknüpfen Sie den dbExpress v 4-Brückentreiber mit einer Anwendung ([[Herstellen einer Verbindung zu dbExpress-Datenquellen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDB.TFDPhysMongoDriverLink|TFDPhysMongoDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMongoDriverLink verknüpfen Sie den MongoDB-Treiber mit einer Anwendung ([[Herstellen einer Verbindung zur MongoDB-Datenbank (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Monitor-Verknüpfungskomponenten==&lt;br /&gt;
&lt;br /&gt;
Zur Aktivierung von Ablaufverfolgungsfunktionen können in Anwendungen eine oder mehrere der Monitorkomponenten aus der folgenden Tabelle verwendet werden.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDMoniFlatFileClientLink&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDMoniFlatFileClientLink verknüpfen Sie die Datei-Ablaufverfolgungsfunktionen (Konfiguration erforderlich) mit einer Anwendung ([[Ablaufverfolgung und Überwachung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Moni.RemoteClient.TFDMoniRemoteClientLink|TFDMoniRemoteClientLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDMoniRemoteClientLink verknüpfen Sie die [[FDMonitor|FDMonitor]]-Ablaufverfolgungsfunktionen (Konfiguration erforderlich) mit einer Anwendung ([[Ablaufverfolgung und Überwachung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDMoniCustomClientLink&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDMoniCustomClientLink verknüpfen Sie Ablaufverfolgungsfunktionen (Konfiguration erforderlich) mit einer Anwendung ([[Ablaufverfolgung und Überwachung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-UI-Komponenten==&lt;br /&gt;
&lt;br /&gt;
Die meisten Anwendungen verwenden TFDGUIxWaitCursor und TFDGUIxLoginDialog.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxAsyncExecuteDialog|TFDGUIxAsyncExecuteDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; VCL, &amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; {{FM}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In diesem Dialogfeld wird der Fortschritt der SQL-Abfrageausführung angezeigt ([[Asynchrone Ausführung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxErrorDialog|TFDGUIxErrorDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL,&amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; {{FM}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In diesem Dialogfeld werden die FireDAC-Exceptions angezeigt ([[Fehlerbehandlung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxLoginDialog|TFDGUIxLoginDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL,&amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; {{FM}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In dieses Dialogfeld können Benutzer ihre DB-Anmeldeinformationen eingeben ([[Herstellen von Verbindungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxScriptDialog|TFDGUIxScriptDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL, &amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;{{FM}}, Konsole&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In diesem Dialogfeld wird der Fortschritt der SQL-Skriptausführung angezeigt ([[Ausführen von SQL-Skripten (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxWaitCursor|TFDGUIxWaitCursor]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL, &amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;{{FM}}, Konsole&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Komponente ermöglicht die Steuerung des Wartecursors.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Dienstkomponenten==&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung fügt mit Dienstkomponenten die Unterstützung für spezifische DBMS-Funktionen hinzu.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDADSBackup|TFDADSBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Advantage-Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDADSRestore|TFDADSRestore]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Advantage-Dienst zur Wiederherstellung einer Datenbank aus einer Sicherung.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDADSUtility|TFDADSUtility]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die Advantage-Tabellen-Hilfsprogramme.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ASA.TFDASABackup|TFDASABackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den SQL Anywhere-Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ASA.TFDASAValidate|TFDASAValidate]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Datenbankvalidierungsdienst von SQL Anywhere.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBBackup|TFDIBBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBConfig|TFDIBConfig]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zum Festlegen von Datenbankeigenschaften.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBInfo|TFDIBInfo]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst, um den Dienst-Manager zu ermitten.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBRestore|TFDIBRestore]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Wiederherstellung einer Datenbank aus einer Sicherung.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |[[lib_de:FireDAC.Phys.IBBase.TFDIBSecurity|TFDIBSecurity]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Verwaltung der Datenbanksicherheit.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBValidate|TFDIBValidate]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Validierung und Reparatur von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IB.TFDIBSDump|TFDIBSDump]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den InterBase-spezifischen Datenbank-Dump-Dienst.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDFBNBackup|TFDFBNBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Firebird-spezifischen Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDFBNRestore|TFDFBNRestore]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Firebird-spezifischen Dienst zur Wiederherstellung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDFBTrace|TFDFBTrace]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Firebird-Dienst zur Verfolgung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MSAcc.TFDMSAccessService|TFDMSAccessService]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die Microsoft Access-Datenbank. Die Klasse erstellt, entfernt, komprimiert und repariert außerdem die Dienste.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.Oracle.TFDOracleAdmin|TFDOracleAdmin]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert einen Servicem um eine [https://docs.oracle.com/cd/E11882_01/server.112/e40540/startup.htm#CNCPT005 Oracle-Datenbank-Instanz (EN)] zu verwalten.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteBackup|TFDSQLiteBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die SQLite-Sicherung. Zudem stellt die Klasse die Datenbankfunktionalität wieder her und kopiert sie ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |[[lib_de:FireDAC.Phys.SQLite.TFDSQLiteCollation|TFDSQLiteCollation]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die benutzerdefinierte SQLite-Sortierung ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteFunction|TFDSQLiteFunction]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die benutzerdefinierte SQLite-Funktion ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteSecurity|TFDSQLiteSecurity]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse ermöglicht die Verwaltung der SQLite-Datenbankverschlüsselung ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteValidate|TFDSQLiteValidate]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den SQLite-Datenbankvalidierungsdienst ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteRTree|TFDSQLiteRTree]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert das benutzerdefinierte SQLite RTree-Modul ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-ETL-Komponenten==&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung verwendet ETL-Komponenten für die Datenbewegung zwischen verschiedenen Typen von Datenquellen und den Datenzielen.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.TFDBatchMove|TFDBatchMove]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die Engine zur Verarbeitung von Datenbewegungen zwischen verschiedenen Datenquellen und Datenzielen.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.Text.TFDBatchMoveTextReader|TFDBatchMoveTextReader]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse legt einen Datenquellen-Reader für eine Textdatei fest.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.Text.TFDBatchMoveTextWriter|TFDBatchMoveTextWriter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse legt einen Datenziel-Writer für eine Textdatei fest.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.DataSet.TFDBatchMoveDataSetReader|TFDBatchMoveDataSetReader]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse definiert eine Quelldatenmenge.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.DataSet.TFDBatchMoveDataSetWriter|TFDBatchMoveDataSetWriter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse definiert eine Zieldatenmenge.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.SQL.TFDBatchMoveSQLReader|TFDBatchMoveSQLReader]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse stellt eine Verbindung zu der Datenbank her, die die zu kopierenden Daten enthält.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.SQL.TFDBatchMoveSQLWriter|TFDBatchMoveSQLWriter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse stellt eine Verbindung zu der Datenbank her, in die die Daten kopiert werden sollen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-NoSQL-Komponenten==&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung verwendet NoSQL-Komponenten für die Arbeit mit NoSQL-Dokumentdatenbanken.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDBDataSet.TFDMongoDataSet|TFDMongoDataSet]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert eine Datenmenge, die an den MongoDB-Cursor angefügt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDBDataSet.TFDMongoQuery|TFDMongoQuery]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert eine Datenmenge, die MongoDB-Abfragen ausführen kann.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDBDataSet.TFDMongoPipeline|TFDMongoPipeline]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse ermöglicht die Ausführung einer MongoDB-Pipeline.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Klassendiagramm&amp;diff=208459</id>
		<title>Klassendiagramm</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Klassendiagramm&amp;diff=208459"/>
		<updated>2016-06-13T08:03:33Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Klassendiagramm&#039;&#039;&#039; kann sich auf Folgendes beziehen:&lt;br /&gt;
&lt;br /&gt;
* [[UML 2.0-Klassendiagramm - Index|UML 2.0-Klassendiagramme]]&lt;br /&gt;
* [[UML 1.5-Klassendiagramm - Index|UML 1.5-Klassendiagramme]]&lt;br /&gt;
* [[Anleitungen für Klassendiagramme|Klassendiagramm-Prozeduren]]&lt;br /&gt;
* [[Synchronisierung von Modellen und Quelltext#Klassendiagramme|Synchronisierung zwischen Klassendiagrammen und Quelltext]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Begriffserklärungsseiten]]&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Entsprechungen_f%C3%BCr_BDE-Namen_(FireDAC)&amp;diff=208457</id>
		<title>Entsprechungen für BDE-Namen (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Entsprechungen_f%C3%BCr_BDE-Namen_(FireDAC)&amp;diff=208457"/>
		<updated>2016-06-13T08:03:33Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Migrieren von BDE-Anwendungen nach FireDAC}}&lt;br /&gt;
Die folgende Tabelle enthält die BDE-Namen, für die es Entsprechungen in FireDAC gibt: &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;BDE-Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;FireDAC-Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;FireDAC-Unit&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TSession&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDManager&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TDatabase&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDConnection&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alias&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ConnectionDef&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | DatabaseName&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ConnectionName&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Session&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FDManager&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | SessionName&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | (keins)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | PrivateDir&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | (keins)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | =====&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | =================&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | =================&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TQuery&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDQuery&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TStoredProc&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDStoredProc&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TTable&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDTable&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TUpdateSQL&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDUpdateSQL&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TBatchMove&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDBatchMove&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.BatchMove&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | =====&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | =================&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | =================&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TParam&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDParam&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Stan.Param&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TParams&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDParams&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Stan.Param&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TBlobStream&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDBlobStream&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.DataSet&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TDBDataSet,&amp;lt;br /&amp;gt; TBDEDataSet&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDRDBMSDataSet&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | EDBEngineError&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | EFDDBEngineException&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Stan.Error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Eine vollständige Liste finden Sie in der Datei $(Demos)\Object Pascal\Database\FireDAC\Tool\reFind\BDE2FDMigration\FireDAC_Migrate_BDE.txt.&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Zus%C3%A4tzliche_Migrationshinweise_(FireDAC)&amp;diff=208455</id>
		<title>Zusätzliche Migrationshinweise (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Zus%C3%A4tzliche_Migrationshinweise_(FireDAC)&amp;diff=208455"/>
		<updated>2016-06-13T08:03:32Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Migrieren von BDE-Anwendungen nach FireDAC}}&lt;br /&gt;
&lt;br /&gt;
==Hinweis 1==&lt;br /&gt;
&lt;br /&gt;
Einige Eigenschaften müssen komplett entfernt werden, weil in FireDAC dazu keine Entsprechungen vorhanden sind:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SessionName&#039;&#039;&#039; muss komplett entfernt werden. Gehen Sie dabei aber sehr sorgfältig vor, weil in Ihrer Anwendung mehrere, gleichnamige Verbindungen in unterschiedlichen Sitzungen verwendet werden könnten.&lt;br /&gt;
* &#039;&#039;&#039;PrivateDir&#039;&#039;&#039; muss komplett entfernt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Dies wird vom Migrationsskript &amp;quot;FireDAC_Migrate_BDE.txt&amp;quot; ausgeführt.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 2==&lt;br /&gt;
&lt;br /&gt;
Obwohl in FireDAC die Entsprechung &amp;quot;TFDTable&amp;quot; für die &amp;quot;TTable&amp;quot;-BDE-Komponente vorhanden ist, sollten Sie gleich bei der Migration alle &amp;quot;TTable&amp;quot;-Komponenten durch &amp;quot;TFDQuery&amp;quot;-Komponenten ersetzen.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 3==&lt;br /&gt;
&lt;br /&gt;
BDE-Anwendungen mit persistenten Feldern müssen zusätzlich angepasst werden. Die BDE verwendet weder die Eigenschaften &#039;&#039;&#039;Origin&#039;&#039;&#039; und &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039; für persistente Felder noch das Abfrage-DB-Dictionary oder stellt diese bereit, um die eindeutigen Kennzeichnungsfelder abzurufen. [[Generieren von Aktualisierungsanweisungen (FireDAC)|FireDAC verwendet]] die Eigenschaften &#039;&#039;&#039;Origin&#039;&#039;&#039; und &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039; für persistente Felder und stellt diese Eigenschaften auch bereit. Das Migrationsskript &amp;quot;FireDAC_Migrate_BDE.txt&amp;quot; entfernt alle &#039;&#039;&#039;TField.Origin&#039;&#039;&#039;-Werte aus DFM-Dateien. Wenn &#039;&#039;&#039;Origin&#039;&#039;&#039; leer ist (wie in einer BDE-Anwendung), verwendet FireDAC den Feldnamen. Im Vorgabewert von &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039; ist &#039;&#039;&#039;pfInKey&#039;&#039;&#039; jedoch nicht enthalten, und FireDAC fragt die DB nicht nach Primärschlüsselfeldern ab. FireDAC kann daher die [[Eindeutige Kennzeichnungsfelder (FireDAC)|eindeutigen Kennzeichnungsfelder]] nicht abrufen, und Sie müssen eine der folgenden Aktionen ausführen:&lt;br /&gt;
&lt;br /&gt;
* Neuerstellen von persistenten Feldern.&lt;br /&gt;
* Manuelles Anpassen von &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039;.&lt;br /&gt;
* Manuelles Festlegen von &#039;&#039;&#039;UpdateOptions.KeyFields&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 4==&lt;br /&gt;
&lt;br /&gt;
Codefragmente, wie:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
Screen.Cursor := crSQLWait;&lt;br /&gt;
try&lt;br /&gt;
  ......&lt;br /&gt;
finally&lt;br /&gt;
  Screen.Cursor := crDefault;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten durch Folgendes ersetzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  FireDAC.Stan.Factory, FireDAC.UI.Intf;&lt;br /&gt;
  ......&lt;br /&gt;
var&lt;br /&gt;
  oWait: IFDGUIxWaitCursor;&lt;br /&gt;
  ......&lt;br /&gt;
  FDCreateInterface(IFDGUIxWaitCursor, oWait);&lt;br /&gt;
  oWait.StartWait;&lt;br /&gt;
  try&lt;br /&gt;
    ......&lt;br /&gt;
  finally&lt;br /&gt;
    oWait.StopWait;&lt;br /&gt;
  end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis 5==&lt;br /&gt;
&lt;br /&gt;
FireDAC verfügt über keine Entsprechung für die BDE-API. Daher muss sämtlicher Code, in dem die BDE-API direkt verwendet wird, mit der FireDAC-API neu programmiert werden. Es gibt keine direkte Lösung.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 6==&lt;br /&gt;
&lt;br /&gt;
Für viele Produkte von Fremdherstellern, wie mehrschichtige oder Berichtserstellungsbibliotheken, ist eine DAC-Adapter-Unit erforderlich. Bitte erfragen Sie beim jeweiligen Hersteller, wie Sie einen Adapter erhalten.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 7==&lt;br /&gt;
&lt;br /&gt;
EDBEngineError ist die BDE-spezifische Exception-Klasse. FireDAC enthält eine Entsprechung, nämlich die Klasse &#039;&#039;&#039;EFDDBEngineException&#039;&#039;&#039;. Bei der Behandlung von BDE-Exceptions ermitteln Programmierer mit der Eigenschaft &#039;&#039;&#039;ErrorCode&#039;&#039;&#039; den Fehlertyp. FireDAC verfügt über einen Eigenschaftstyp, der einen Aufzählungswert zurückgibt.&lt;br /&gt;
&lt;br /&gt;
Ändern Sie zum Beispiel den folgenden Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
if E is EDBEngineError then&lt;br /&gt;
begin&lt;br /&gt;
  case EDBEngineError(E).Errors[0].ErrorCode of&lt;br /&gt;
    DBIERR_KEYVIOL: MetaBaseDBError(SMb_DataSetInvalidPKeyValue, E);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
if E is EFDDBEngineException then&lt;br /&gt;
begin&lt;br /&gt;
  case EFDDBEngineException(E).Kind of&lt;br /&gt;
    ekUKViolated: MetaBaseDBError(SMb_DataSetInvalidPKeyValue, E);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis 8==&lt;br /&gt;
&lt;br /&gt;
Die Komponenten &#039;&#039;&#039;TBatchMove&#039;&#039;&#039; und &#039;&#039;&#039;TFDBatchMove&#039;&#039;&#039; unterscheiden sich in vielerlei Hinsicht. Code, in dem die Komponente &#039;&#039;&#039;TBatchMove&#039;&#039;&#039; verwendet wird, muss überarbeitet werden. &lt;br /&gt;
&lt;br /&gt;
==Hinweis 9==&lt;br /&gt;
&lt;br /&gt;
Das Ereignis &#039;&#039;&#039;TFDConnection.OnLogin&#039;&#039;&#039; ist nicht mit der Parameterliste des Ereignisses &#039;&#039;&#039;TDatabase.OnLogin&#039;&#039;&#039; kompatibel. Daher müssen Sie beispielsweise diese Ereignisbehandlungsroutine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TMyDataModule.dbLogin(Connection: TFDConnection; LoginParams: TStrings);&lt;br /&gt;
begin&lt;br /&gt;
  LoginParams.Values[&#039;USER NAME&#039;] := &#039;me&#039;;&lt;br /&gt;
  LoginParams.Values[&#039;PASSWORD&#039;] := &#039;pwd&#039;;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch folgende ersetzen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TMyDataModule.dbLogin (AConnection: TFDCustomConnection; const AConnectionDef: IFDStanConnectionDef);&lt;br /&gt;
begin&lt;br /&gt;
  AConnectionDef.UserName := &#039;me&#039;;&lt;br /&gt;
  AConnectionDef.Password := &#039;pwd&#039;;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis 10==&lt;br /&gt;
&lt;br /&gt;
Für Anwendungen mit heterogenen BDE-Abfragen sollte in FireDAC [[Local SQL (FireDAC)|Local SQL]] verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 11==&lt;br /&gt;
&lt;br /&gt;
Um das Multithreading mit der BDE zu aktivieren, kann in der Anwendung TSession.AutoSessionName auf &#039;&#039;&#039;True&#039;&#039;&#039; gesetzt werden. FireDAC unterstützt das Konzept von benannten Sitzungen nicht. Daher müssen Sie in Ihrer Anwendung statt TFDQuery.ConnectionName (Bindung per Name) TFDQuery.Connection (Bindung per Verweis) verwenden. Weitere Einzelheiten zum Multithreading in FireDAC finden Sie unter [[Multithreading (FireDAC)|Entwickeln von Multithreading-Anwendungen]].[[en:Additional Migration Hints (FireDAC)|en:Additional Migration Hints (FireDAC)]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Val&amp;diff=208476</id>
		<title>Val</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Val&amp;diff=208476"/>
		<updated>2016-06-13T08:03:28Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
{{Redirect|lib_de:System.Val|System.Val}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Unicode-Unterst%C3%BCtzung_(FireDAC)&amp;diff=208474</id>
		<title>Unicode-Unterstützung (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Unicode-Unterst%C3%BCtzung_(FireDAC)&amp;diff=208474"/>
		<updated>2016-06-13T08:03:28Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Arbeiten mit Verbindungen (FireDAC)}}&lt;br /&gt;
&lt;br /&gt;
In diesem Thema wird beschrieben, wie FireDAC mit Unicode-Daten und -Metadaten arbeitet. FireDAC unterstützt Unicode-Daten und -Metadaten vollständig. Allerdings müssen in einer Anwendung möglicherweise einige Anpassungen vorgenommen werden, damit Unicode ordnungsgemäß verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
==Allgemeine Informationen==&lt;br /&gt;
&lt;br /&gt;
Die meisten Anwendungen für Unternehmensdatenbanken müssen mit Zeichendaten arbeiten können, die im Unicode-Format codiert sind. FireDAC bietet eine vollständige Unterstützung für:&lt;br /&gt;
&lt;br /&gt;
*verschiedene Einzelbyte-Client-Zeichensätze und -Codeseiten, einschließlich Standard-ANSI.&lt;br /&gt;
*Multibyte-Strings, wie Unicode, einschließlich der Codierungen UTF8, UTF16 und UCS2.&lt;br /&gt;
&lt;br /&gt;
Die Behandlung von Unicode durch FireDAC hängt von Folgendem ab:&lt;br /&gt;
&lt;br /&gt;
*der verwendeten {{Delphi}}-Version.&lt;br /&gt;
*dem Client-Zeichensatz – UTF8/UTF16- oder ACP-kompatibel.&lt;br /&gt;
*dem DBMS-Client/Treiber.&lt;br /&gt;
&lt;br /&gt;
FireDAC führt bei Bedarf eine transparente Zeichensatzkonvertierung zwischen dem {{Delphi}}-Anwendungs- und dem DBMS-Client-Zeichensatz durch. Die vollständige Unicode-Unterstützung kann nur mit der Unicode-{{Delphi}}-Version – {{Delphi}} 2009 und höher – erreicht werden. Die folgende Tabelle enthält eine Übersicht darüber, welche Codierung abhängig von der {{Delphi}}-Version wo verwendet werden kann:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Verwendung&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Unicode-fähiges {{Delphi}} 2009 und später&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Nicht-Unicode-fähiges {{Delphi}} 2007 und früher&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | SQL-Anweisungstext&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ANSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | SQL-Skripttext&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ANSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Feldwerte in Ergebnismengen&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode / ANSI&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ANSI / Unicode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Parameterwerte&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode / ANSI&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ANSI / Unicode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Metadatenwerte, einschließlich:&lt;br /&gt;
*Spaltennamen&lt;br /&gt;
*Tabellennamen&lt;br /&gt;
*Generatornamen&lt;br /&gt;
*Indexnamen&lt;br /&gt;
*usw.&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ANSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Abfragewerte von Metadaten&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Textdatendateien&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode / ANSI&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ANSI / Unicode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Ablaufverfolgungsausgabe&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode / ANSI&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ANSI / Unicode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Tools&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Unicode&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Konfigurieren von Verbindungsdefinitionen für Unicode==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Setzen Sie für {{Delphi}} 2009 und höher den DBMS-Client-Zeichensatz auf Unicode, um Konvertierungsverluste zu vermeiden. &amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Allgemeinen muss der DBMS-Client-Zeichensatz auf Unicode gesetzt werden, um Verbindungsdefinitionen für Unicode zu konfigurieren. Wie dies ausgeführt wird, ist von der verwendeten {{Delphi}}-Version und dem DBMS-Treiber abhängig:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;DBMS&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Parameter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Advantage Database Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nicht unterstützt.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | IBM DB2 Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt. Wird in {{Delphi}} 2007 oder früher nicht unterstützt.&lt;br /&gt;
|- {{fr|datasnap}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | DataSnap-Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt. Wird in {{Delphi}} 2007 oder früher nicht unterstützt.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Firebird&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | CharacterSet=utf8.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Informix&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | InterBase&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | CharacterSet=utf8.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Microsoft SQL Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt. Wird in {{Delphi}} 2007 oder früher nicht unterstützt.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Microsoft Access-Datenbank&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt. Wird in {{Delphi}} 2007 oder früher nicht unterstützt.&lt;br /&gt;
&lt;br /&gt;
Legen Sie &amp;quot;StringFormat=Unicode&amp;quot; fest, damit alle String-Spalten auf Unicode-Datentypen eingestellt werden.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | MySQL Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | CharacterSet=utf8.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Oracle Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*CharacterSet=utf8.&lt;br /&gt;
*oder NLS_LANG=_.UTF8, wenn CharacterSet nicht angegeben ist.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | PostgreSQL&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | CharacterSet=utf8.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | SQLite-Datenbank&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt. Wird in {{Delphi}} 2007 oder früher nicht unterstützt.&lt;br /&gt;
&lt;br /&gt;
Legen Sie &amp;quot;StringFormat=Unicode&amp;quot; fest, damit alle String-Spalten auf Unicode-Datentypen eingestellt werden.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Sybase SQL Anywhere&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt. Wird in {{Delphi}} 2007 oder früher nicht unterstützt.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Teradata Database&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | CharacterSet=utf8 oder CharacterSet=utf16.&lt;br /&gt;
|- {{fr|dbexpress}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | dbExpress-Brückentreiber&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Abhängig vom dbExpress-Treiber.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ODBC-Brückentreiber&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wird in {{Delphi}} 2009 und höher automatisch auf UTF16 gesetzt. Wird in {{Delphi}} 2007 oder früher nicht unterstützt.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==SQL-Anweisungstext==&lt;br /&gt;
&lt;br /&gt;
Ab {{Delphi}} 2009 sind [[lib_de:FireDAC.Comp.Client.TFDQuery.SQL|TFDQuery.SQL]], [[lib_de:FireDAC.Comp.Client.TFDCommand.CommandText|TFDCommand.CommandText]], IFDPhysCommand.CommandText und andere Eigenschaftswerte in Unicode codiert. Der Präprozessor für SQL-Anweisungstext unterstützt nur die UCS2-Codierungen, d. h. Surrogatpaare werden nicht unterstützt.&lt;br /&gt;
&lt;br /&gt;
Versionen vor {{Delphi}} 2009 unterstützen nur in ANSI codierten Anweisungstext.&lt;br /&gt;
&lt;br /&gt;
Vor dem Senden von SQL-Anweisungstext an das DBMS, konvertiert FireDAC ihn in:&lt;br /&gt;
&lt;br /&gt;
*Die aktive Codeseite, wenn der Client-Zeichensatz auf SBCS (Nicht-Unicode) gesetzt ist. Wenn der Client-Zeichensatz nicht mit ACP kompatibel ist, sind Konvertierungsverluste möglich.&lt;br /&gt;
*UTF8, wenn der Client-Zeichensatz auf UTF8 gesetzt ist.&lt;br /&gt;
*UTF16, wenn der Client-Zeichensatz auf UTF16 gesetzt ist.&lt;br /&gt;
&lt;br /&gt;
Führen Sie einfach Folgendes aus, um einen in Unicode codierten SQL-Anweisungstext anzugeben:&lt;br /&gt;
&lt;br /&gt;
 FDQuery1.SQL.Text := &#039;select &#039;&#039;Hello world !&#039;&#039; where Lang = &#039;&#039;RU&#039;&#039; and Val = &#039;&#039;Привет мир !&#039;&#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
==SQL-Skripttext==&lt;br /&gt;
&lt;br /&gt;
Ab {{Delphi}} 2009 können [[lib_de:FireDAC.Comp.Script.TFDScript.SQLScripts|TFDScript.SQLScripts]]-Sammlungen in Unicode codierten SQL-Skripttext enthalten. Ansonsten wird die Verarbeitung von SQL-Skripttext genauso wie die Verarbeitung von SQL-Anweisungstext ausgeführt.&lt;br /&gt;
&lt;br /&gt;
Versionen vor {{Delphi}} 2009 unterstützen nur in ANSI codierten Skripttext. [[lib_de:FireDAC.Comp.Script.TFDScript|TFDScript]] kann in Unicode codierte SQL-Skriptdateien laden, aber sie werden vor der Verarbeitung in die ACP-Codierung (ANSI) konvertiert.&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie die Eigenschaft [[lib_de:FireDAC.Comp.Script.TFDScriptOptions.FileEncoding|TFDScript.ScriptOptions.FileEncoding]], um die Codierung von SQL-Skriptdateien und Protokolldateien zu steuern:&lt;br /&gt;
&lt;br /&gt;
 FDScript1.ScriptOptions.FileEncoding := enUTF16;&lt;br /&gt;
 FDScript1.SQLScriptFileName := &#039;u:\builddb.sql&#039;;&lt;br /&gt;
 FDScript1.ExecuteAll;&lt;br /&gt;
&lt;br /&gt;
==Felder in Ergebnismengen==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;DBMS&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung &#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Advantage Database Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*NCHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*NVARCHAR – ftWideString&lt;br /&gt;
*NMEMO – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | IBM DB2 Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*GRAPHIC – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*VARGRAPHIC – ftWideString&lt;br /&gt;
*LONG VARGRAPHIC, DBCLOB – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|- {{fr|datasnap}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | DataSnap-Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*ftFixedWideChar für {{Delphi}} 2006 und höher und ftWideString&lt;br /&gt;
*ftWideMemo für {{Delphi}} 2006 und höher und ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Firebird&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wenn CharacterSet auf UTF8 oder UNICODE_FSS gesetzt ist, dann:&lt;br /&gt;
*CHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*VARCHAR – ftWideString&lt;br /&gt;
*BLOB SUB_TYPE TEXT – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Informix&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
Wenn der Verbindungsdefinitionsparameter StringFormat=Unicode, dann sind alle String-Spalten Wide-Strings. Wenn StringFormat=Ansi, dann sind alle String-Spalten ANSI-Strings. Vorgabe: StringFormat=Ansi.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | InterBase&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wenn CharacterSet auf UTF8, UNICODE_FSS, UNICODE_LE oder UNICODE_BE gesetzt ist, dann:&lt;br /&gt;
*CHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*VARCHAR – ftWideString&lt;br /&gt;
*BLOB SUB_TYPE TEXT – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Microsoft SQL Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*NCHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*NVARCHAR – ftWideString&lt;br /&gt;
*NTEXT, NVARCHAR(MAX) – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Microsoft Access-Datenbank&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*CHARACTER – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*MEMO – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
&lt;br /&gt;
Wenn der Verbindungsdefinitionsparameter StringFormat=Unicode, dann sind alle String-Spalten Wide-Strings. Wenn StringFormat=Ansi, dann sind alle String-Spalten ANSI-Strings. Vorgabe: StringFormat=Choose.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | MySQL Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wenn CharacterSet auf UTF8 gesetzt ist, dann:&lt;br /&gt;
*CHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*VARCHAR, TINYTEXT – ftWideString&lt;br /&gt;
*MEDIUMTEXT, TEXT, LONGTEXT – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Oracle Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*NCHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*NVARCHAR2 – ftWideString&lt;br /&gt;
*NCLOB – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
&lt;br /&gt;
Wenn CharacterSet auf UTF8 gesetzt ist, dann:&lt;br /&gt;
*CHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*VARCHAR2 – ftWideString&lt;br /&gt;
*LONG, CLOB – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | SQLite-Datenbank&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wenn StringFormat=Choose, dann:&lt;br /&gt;
*NCHAR, NATIONAL CHAR, NATIONAL CHARACTER – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*NVARCHAR, NVARCHAR2, NATIONAL CHARACTER VARYING, NATIONAL CHAR VARYING – ftWideString&lt;br /&gt;
*TEXT, NTEXT, WTEXT, NCLOB, NMEMO, LONG NTEXT, LONG WTEXT, NATIONAL TEXT, LONGWVARCHAR – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
&lt;br /&gt;
Wenn der Verbindungsdefinitionsparameter StringFormat=Unicode, dann sind alle String-Spalten Wide-Strings. Wenn StringFormat=Ansi, dann sind alle String-Spalten ANSI-Strings. Vorgabe: StringFormat=Choose.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | PostgreSQL&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Wenn CharacterSet auf UTF8 gesetzt ist, dann:&lt;br /&gt;
*CHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*VARCHAR – ftWideString&lt;br /&gt;
*TEXT – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Sybase SQL Anywhere&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
*NCHAR – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*NVARCHAR – ftWideString&lt;br /&gt;
*LONG NVARCHAR – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Teradata Database&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Nicht unterstützt.&lt;br /&gt;
|- {{fr|dbexpress}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | dbExpress-Brückentreiber&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Hängt vom dbExpress-Treiber und dem DBMS ab. Allgemeine Regel:&lt;br /&gt;
&lt;br /&gt;
DBX1-3:&lt;br /&gt;
*fldZSTRING, fldstUNICODE – ftWideString&lt;br /&gt;
*fldZSTRING, fldstUNICODE, fldstFIXED – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*fldBLOB, fldstMEMO, fldstUNICODE – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
*fldBLOB, fldstFMTMEMO – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
&lt;br /&gt;
DBX4:&lt;br /&gt;
*TDBXDataTypes.WideStringType – ftWideString&lt;br /&gt;
*TDBXDataTypes.WideStringType, TDBXDataTypes.FixedSubType – ftFixedWideChar&lt;br /&gt;
*TDBXDataTypes.BlobType, TDBXDataTypes.WideMemoSubType – ftWideMemo&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ODBC-Brückentreiber&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Hängt vom ODBC-Treiber und dem DBMS ab. Allgemeine Regel:&lt;br /&gt;
*SQL_WCHAR, SQL_GRAPHIC – ftFixedWideChar für {{Delphi}} 2006 und höher, ansonsten ftWideString&lt;br /&gt;
*SQL_WVARCHAR, SQL_VARGRAPHIC, SQL_LONGVARGRAPHIC – ftWideString&lt;br /&gt;
*SQL_WLONGVARCHAR, SQL_DBCLOB – ftWideMemo für {{Delphi}} 2006 und höher, ansonsten ftFmtMemo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie zum programmgesteuerten Lesen/Schreiben von Unicode-String-Werten:&lt;br /&gt;
&lt;br /&gt;
*Die Eigenschaft [[lib_de:Data.DB.TField.AsWideString|TField.AsWideString]] oder [[lib_de:Data.DB.TField.Value|TField.Value]].&lt;br /&gt;
*[[lib_de:Data.DB.TField.AsString|TField.AsString]] für {{Delphi}} 2009 und höher. In früheren Versionen von {{Delphi}} kann das Lesen/Schreiben der Eigenschaft AsString zu Konvertierungsverlusten führen, weil AsString hier ANSI-Strings zurückgibt.&lt;br /&gt;
&lt;br /&gt;
So lesen/schreiben Sie das Unicode-Feld in beliebigen {{Delphi}}-Versionen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDQuery1.Edit;&lt;br /&gt;
FDQuery1.Fields[0].AsWideString := FDQuery1.Fields[0].AsWideString + &#039;русский&#039; + &#039;english&#039;;&lt;br /&gt;
FDQuery1.Post;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So lesen/schreiben Sie das Unicode-Memofeld in {{Delphi}} 2009:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDQuery1.Edit;&lt;br /&gt;
FDQuery1.FieldsByName(&#039;memo&#039;).Assign(Memo1.Lines);&lt;br /&gt;
FDQuery1.Post;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Parameterwerte==&lt;br /&gt;
&lt;br /&gt;
Der in Unicode codierte Parameterwert wird in einen vom DBMS unterstützten Unicode-Zeichensatz konvertiert und an das DBMS gesendet. Dies ist nicht von einem Client-Zeichensatz oder einer {{Delphi}}-Version abhängig. Firebird und InterBase können keine Unicode-Zeichendaten an einen Server senden, wenn der Parameter &amp;lt;code&amp;gt;CharacterSet&amp;lt;/code&amp;gt; nicht UTF8 ist.&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie zum Lesen/Schreiben eines Unicode-Parameterwertes für alle {{Delphi}}-Versionen die Eigenschaft [[lib_de:Data.DB.TField.AsWideString|AsWideString]]. Das Verhalten von &amp;lt;code&amp;gt;AsString&amp;lt;/code&amp;gt; ist plattformabhängig:&lt;br /&gt;
&lt;br /&gt;
*Auf Plattformen der nächsten Generation (iOS und Android) ist &amp;lt;code&amp;gt;AsString&amp;lt;/code&amp;gt; äquivalent zu &amp;lt;code&amp;gt;AsWideString&amp;lt;/code&amp;gt; (Unicode).&lt;br /&gt;
*Auf anderen Plattformen ist &amp;lt;code&amp;gt;AsString&amp;lt;/code&amp;gt; äquivalent zu &amp;lt;code&amp;gt;AsAnsiString&amp;lt;/code&amp;gt; (SBCS/ANSI-Strings).&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDQuery1.Params[0].AsWideString := &#039;русский&#039; + &#039;english&#039;;&lt;br /&gt;
// The following code lines are equivalent to the previous one:&lt;br /&gt;
FDQuery1.Params[0].DataType := ftWideString;&lt;br /&gt;
FDQuery1.Params[0].Value := &#039;русский&#039; + &#039;english&#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Metadatenwerte==&lt;br /&gt;
&lt;br /&gt;
Ab {{Delphi}} 2009 wird in Unicode codierter Metadatentext unterstützt für:&lt;br /&gt;
&lt;br /&gt;
*Tabellennamen&lt;br /&gt;
*Spaltennamen in Ergebnismengen&lt;br /&gt;
*Namen von gespeicherten Prozeduren&lt;br /&gt;
*Parameternamen von gespeicherten Prozeduren&lt;br /&gt;
*Parameternamen von SQL-Anweisungen&lt;br /&gt;
*Makro-Namen von SQL-Anweisungen&lt;br /&gt;
*Benutzernamen&lt;br /&gt;
*Schema-, Katalognamen&lt;br /&gt;
&lt;br /&gt;
Versionen vor {{Delphi}} 2009 unterstützen nur in ANSI codierten Metadatentext.&lt;br /&gt;
&lt;br /&gt;
Alle Spalten in Metadatenergebnismengen, die von [[lib_de:FireDAC.Comp.Client.TFDMetaInfoCommand|TFDMetaInfoCommand]], [[lib_de:FireDAC.Comp.Client.TFDMetaInfoQuery|TFDMetaInfoQuery]] und IFDPhysMetaInfoCommand zurückgegeben werden, haben Unicode-String-Datentypen.&lt;br /&gt;
&lt;br /&gt;
==Ablaufverfolgungsausgabe==&lt;br /&gt;
&lt;br /&gt;
Setzen Sie den Wert der Eigenschaft &amp;lt;code&amp;gt;TADMoniFlatFileClientLink.FileEncoding&amp;lt;/code&amp;gt; auf ecUTF8 oder ecUTF16, um die Unicode-Codierung für die [[Ablaufverfolgung und Überwachung (FireDAC)|Ablaufverfolgungsausgabe]] (&amp;lt;code&amp;gt;MonitorBy=FlatFile&amp;lt;/code&amp;gt;) zu aktivieren.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
Alle FireDAC-Hilfsprogramme wurden mit der Unicode-{{Delphi}}-Version compiliert und sind 100 % Unicode-aktiviert.&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TTimeZoneInformation&amp;diff=208472</id>
		<title>TTimeZoneInformation</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TTimeZoneInformation&amp;diff=208472"/>
		<updated>2016-06-13T08:03:28Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
{{Code|TTimeZoneInformation}} ist eine Umwandlung der Struktur {{Code|TIME_ZONE_INFORMATION}} des Windows-API. Weitere Informationen finden Sie bei MSDN unter [https://msdn.microsoft.com/en-us/library/windows/desktop/ms725481 TIME_ZONE_INFORMATION structure (EN)].&lt;br /&gt;
&lt;br /&gt;
[[Category:Begriffserklärungsseiten]]&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TNetEncoding&amp;diff=208470</id>
		<title>TNetEncoding</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TNetEncoding&amp;diff=208470"/>
		<updated>2016-06-13T08:03:28Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
{{Redirect|lib_de:System.NetEncoding.TNetEncoding|System.NetEncoding.TNetEncoding}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TFDBatchMove&amp;diff=208468</id>
		<title>TFDBatchMove</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TFDBatchMove&amp;diff=208468"/>
		<updated>2016-06-13T08:03:28Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
{{Redirect|lib_de:FireDAC.Comp.BatchMove.TFDBatchMove|FireDAC.Comp.BatchMove.TFDBatchMove}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TBindSourceDB&amp;diff=208466</id>
		<title>TBindSourceDB</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=TBindSourceDB&amp;diff=208466"/>
		<updated>2016-06-13T08:03:28Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
{{Redirect|lib_de:Data.Bind.DBScope.TBindSourceDB|Data.Bind.DBScope.TBindSourceDB}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=FieldDefs&amp;diff=208464</id>
		<title>FieldDefs</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=FieldDefs&amp;diff=208464"/>
		<updated>2016-06-13T08:03:28Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
Es gibt mehrere API-Member mit dem Namen {{Code|FieldDefs}}. [[lib_de:Special:Search/FieldDefs|Suchen Sie in der Bibliotheksdokumentation danach]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Begriffserklärungsseiten]]&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Datentyp&amp;diff=208462</id>
		<title>Datentyp</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Datentyp&amp;diff=208462"/>
		<updated>2016-06-13T08:03:28Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
Es gibt mehrere API-Member mit dem Namen {{Code|DataType}}. [[lib_de:Special:Search/DataType|Suchen Sie in der Bibliotheksdokumentation danach]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Begriffserklärungsseiten]]&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Komponenten_(FireDAC)&amp;diff=208460</id>
		<title>Komponenten (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Komponenten_(FireDAC)&amp;diff=208460"/>
		<updated>2016-06-13T08:03:28Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Architektur (FireDAC)}}&lt;br /&gt;
&lt;br /&gt;
FireDAC enthält mehr als 60 nicht visuelle {{Delphi}}-Komponenten.&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Hauptkomponenten==&lt;br /&gt;
&lt;br /&gt;
Die folgenden Klassen stellen die Hauptkomponenten von FireDAC dar (die meisten Anwendungen verwenden TFDConnection und einige TFDQuery).&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDManager|TFDManager]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für Verbindungsdefinitionen ([[Definieren von Verbindungen (FireDAC)|weitere Informationen finden Sie hier]]) und die Verwaltung von Verbindungen.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDConnection|TFDConnection]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Herstellung einer Verbindung ([[Herstellen von Verbindungen (FireDAC)|weitere Informationen finden Sie hier]]) mit einem DBMS.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDTransaction|TFDTransaction]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Verwaltung von Verbindungstransaktionen ([[Verwalten von Transaktionen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDCommand|TFDCommand]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Ausführung von SQL-Anweisungen ([[Ausführen von Anweisungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDTableAdapter|TFDTableAdapter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Bindet TFDCommand und TFDMemTable ein.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDSchemaAdapter|TFDSchemaAdapter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Bindet mehrere Datenmengen in einen einzigen Speicher im Arbeitsspeicher ein und erstellt ein [[Zwischenspeichern von Aktualisierungen (FireDAC)|zentralisiertes Änderungsprotokoll]].&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDMemTable|TFDMemTable]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge im Arbeitsspeicher.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDQuery|TFDQuery]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die SQL-Abfragen ausführen kann ([[Ausführen von Anweisungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDStoredProc|TFDStoredProc]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die gespeicherte serverseitige Prozeduren ausführen kann ([[Ausführen von gespeicherten Prozeduren (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDTable|TFDTable]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die mit einzelnen Datenbanktabellen arbeitet ([[Durchsuchen von Tabellen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDUpdateSQL|TFDUpdateSQL]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Übernimmt Aktualisierungen anstelle von Abfragen und gespeicherten Prozeduren, die Aktualisierungen nicht direkt eintragen können ([[Überschreiben von Eintragsaktualisierungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.TFDBatchMove|TFDBatchMove]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für Datenbewegungen zwischen verschiedenen Datenquellen.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Script.TFDScript|TFDScript]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine SQL-Skript-Engine, die eine Reihe von SQL-Abfragen ausführen kann ([[Ausführen von SQL-Skripten (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDMetaInfoQuery|TFDMetaInfoQuery]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert eine Datenmenge, die Abfragen von Metainformationen ausführen kann ([[Abfragen von Metadaten (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Zuständig für die Behandlung von Benachrichtigungen über Datenbankereignisse ([[Datenbankwarnungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLiteVDataSet.TFDLocalSQL|TFDLocalSQL]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Implementiert die Local SQL-Engine, die SQL-Abfragen mit Nachkommen von TDataSet als Datenquelle ausführen kann ([[Local SQL (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Verknüpfungskomponenten für Treiber==&lt;br /&gt;
&lt;br /&gt;
Die meisten Anwendungen verwenden eine Verknüpfungskomponente pro unterstützter Datenbank. Die FireDAC-Verknüpfungskomponenten für Treiber sind in der folgenden Tabelle beschrieben.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDPhysADSDriverLink|TFDPhysADSDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysADSDriverLink verknüpfen Sie den Treiber von Advantage Database Server (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Advantage Database Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ASA.TFDPhysASADriverLink|TFDPhysASADriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysASADriverLink verknüpfen Sie den Treiber von Sybase SQL Anywhere (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Sybase SQL Anywhere (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.DS.TFDPhysDSDriverLink|TFDPhysDSDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysDataSnapDriverLink verknüpfen Sie den mehrschichtigen DataSnap-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zum DataSnap-Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.DB2.TFDPhysDB2DriverLink|TFDPhysDB2DriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysDB2DriverLink verknüpfen Sie den IBM DB2-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu IBM DB2 Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDPhysFBDriverLink|TFDPhysFBDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysFBDriverLink verknüpfen Sie den Firebird-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Firebird (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |  [[lib_de:FireDAC.Phys.IB.TFDPhysIBDriverLink|TFDPhysIBDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysIBDriverLink verknüpfen Sie den InterBase-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu InterBase (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |  [[lib_de:FireDAC.Phys.Infx.TFDPhysInfxDriverLink|TFDPhysInfxDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysInfxDriverLink verknüpfen Sie den Informix-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Informix (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MSAcc.TFDPhysMSAccessDriverLink|TFDPhysMSAccessDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMSAccessDriverLink verknüpfen Sie den Microsoft Access-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Microsoft Access-Datenbanken (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MSSQL.TFDPhysMSSQLDriverLink|TFDPhysMSSQLDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMSSQLDriverLink verknüpfen Sie den Treiber von Microsoft SQL Server (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Microsoft SQL Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MySQL.TFDPhysMySQLDriverLink|TFDPhysMySQLDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMySQLDriverLink verknüpfen Sie den MySQL Server-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu MySQL Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ODBC.TFDPhysODBCDriverLink|TFDPhysODBCDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysODBCDriverLink verknüpfen Sie den ODBC-Brückentreiber mit einer Anwendung ([[Herstellen einer Verbindung zu ODBC-Datenquellen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.Oracle.TFDPhysOracleDriverLink|TFDPhysOracleDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysOracleDriverLink verknüpfen Sie den Treiber von Oracle Database (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Oracle Server (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.PG.TFDPhysPgDriverLink|TFDPhysPgDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysPgDriverLink verknüpfen Sie den PostgreSQL-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu PostgreSQL (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDPhysSQLiteDriverLink|TFDPhysSQLiteDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysSQLiteDriverLink verknüpfen Sie den SQLite-Treiber (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu SQLite-Datenbanken (FireDAC)|weitere Informationen finden Sie hier]] [[Verwenden von SQLite mit FireDAC|und hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.TData.TFDPhysTDataDriverLink|TFDPhysTDataDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysTDataDriverLink verknüpfen Sie den Treiber von Teradata Database (Konfiguration erforderlich) mit einer Anwendung ([[Herstellen einer Verbindung zu Teradata Database (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.TDBX.TFDPhysTDBXDriverLink|TFDPhysTDBXDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysTDBXDriverLink verknüpfen Sie den dbExpress v 4-Brückentreiber mit einer Anwendung ([[Herstellen einer Verbindung zu dbExpress-Datenquellen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|- {{fr|radstudio}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDB.TFDPhysMongoDriverLink|TFDPhysMongoDriverLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDPhysMongoDriverLink verknüpfen Sie den MongoDB-Treiber mit einer Anwendung ([[Herstellen einer Verbindung zur MongoDB-Datenbank (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Monitor-Verknüpfungskomponenten==&lt;br /&gt;
&lt;br /&gt;
Zur Aktivierung von Ablaufverfolgungsfunktionen können in Anwendungen eine oder mehrere der Monitorkomponenten aus der folgenden Tabelle verwendet werden.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDMoniFlatFileClientLink&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDMoniFlatFileClientLink verknüpfen Sie die Datei-Ablaufverfolgungsfunktionen (Konfiguration erforderlich) mit einer Anwendung ([[Ablaufverfolgung und Überwachung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Moni.RemoteClient.TFDMoniRemoteClientLink|TFDMoniRemoteClientLink]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDMoniRemoteClientLink verknüpfen Sie die [[FDMonitor|FDMonitor]]-Ablaufverfolgungsfunktionen (Konfiguration erforderlich) mit einer Anwendung ([[Ablaufverfolgung und Überwachung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDMoniCustomClientLink&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Mit TFDMoniCustomClientLink verknüpfen Sie Ablaufverfolgungsfunktionen (Konfiguration erforderlich) mit einer Anwendung ([[Ablaufverfolgung und Überwachung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-UI-Komponenten==&lt;br /&gt;
&lt;br /&gt;
Die meisten Anwendungen verwenden TFDGUIxWaitCursor und TFDGUIxLoginDialog.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxAsyncExecuteDialog|TFDGUIxAsyncExecuteDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; VCL, &amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; {{FM}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In diesem Dialogfeld wird der Fortschritt der SQL-Abfrageausführung angezeigt ([[Asynchrone Ausführung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxErrorDialog|TFDGUIxErrorDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL,&amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; {{FM}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In diesem Dialogfeld werden die FireDAC-Exceptions angezeigt ([[Fehlerbehandlung (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxLoginDialog|TFDGUIxLoginDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL,&amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt; {{FM}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In dieses Dialogfeld können Benutzer ihre DB-Anmeldeinformationen eingeben ([[Herstellen von Verbindungen (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxScriptDialog|TFDGUIxScriptDialog]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL, &amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;{{FM}}, Konsole&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | In diesem Dialogfeld wird der Fortschritt der SQL-Skriptausführung angezeigt ([[Ausführen von SQL-Skripten (FireDAC)|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.UI.TFDGUIxWaitCursor|TFDGUIxWaitCursor]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | &amp;lt;f s=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;VCL, &amp;lt;f e=&amp;quot;vcl&amp;quot; t=&amp;quot;span&amp;quot; /&amp;gt;{{FM}}, Konsole&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Komponente ermöglicht die Steuerung des Wartecursors.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-Dienstkomponenten==&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung fügt mit Dienstkomponenten die Unterstützung für spezifische DBMS-Funktionen hinzu.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDADSBackup|TFDADSBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Advantage-Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDADSRestore|TFDADSRestore]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Advantage-Dienst zur Wiederherstellung einer Datenbank aus einer Sicherung.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ADS.TFDADSUtility|TFDADSUtility]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux}}&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die Advantage-Tabellen-Hilfsprogramme.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ASA.TFDASABackup|TFDASABackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den SQL Anywhere-Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.ASA.TFDASAValidate|TFDASAValidate]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Datenbankvalidierungsdienst von SQL Anywhere.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBBackup|TFDIBBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBConfig|TFDIBConfig]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zum Festlegen von Datenbankeigenschaften.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBInfo|TFDIBInfo]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst, um den Dienst-Manager zu ermitten.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBRestore|TFDIBRestore]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Wiederherstellung einer Datenbank aus einer Sicherung.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |[[lib_de:FireDAC.Phys.IBBase.TFDIBSecurity|TFDIBSecurity]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Verwaltung der Datenbanksicherheit.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IBBase.TFDIBValidate|TFDIBValidate]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den FB/IB-Dienst zur Validierung und Reparatur von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.IB.TFDIBSDump|TFDIBSDump]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den InterBase-spezifischen Datenbank-Dump-Dienst.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDFBNBackup|TFDFBNBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Firebird-spezifischen Dienst zur Sicherung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDFBNRestore|TFDFBNRestore]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Firebird-spezifischen Dienst zur Wiederherstellung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.FB.TFDFBTrace|TFDFBTrace]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den Firebird-Dienst zur Verfolgung von Datenbanken.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MSAcc.TFDMSAccessService|TFDMSAccessService]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die Microsoft Access-Datenbank. Die Klasse erstellt, entfernt, komprimiert und repariert außerdem die Dienste.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.Oracle.TFDOracleAdmin|TFDOracleAdmin]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert einen Servicem um eine [https://docs.oracle.com/cd/E11882_01/server.112/e40540/startup.htm#CNCPT005 Oracle-Datenbank-Instanz (EN)] zu verwalten.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteBackup|TFDSQLiteBackup]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die SQLite-Sicherung. Zudem stellt die Klasse die Datenbankfunktionalität wieder her und kopiert sie ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |[[lib_de:FireDAC.Phys.SQLite.TFDSQLiteCollation|TFDSQLiteCollation]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die benutzerdefinierte SQLite-Sortierung ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteFunction|TFDSQLiteFunction]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die benutzerdefinierte SQLite-Funktion ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteSecurity|TFDSQLiteSecurity]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse ermöglicht die Verwaltung der SQLite-Datenbankverschlüsselung ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteValidate|TFDSQLiteValidate]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert den SQLite-Datenbankvalidierungsdienst ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.SQLite.TFDSQLiteRTree|TFDSQLiteRTree]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, {{f|linux|Linux,}} OS X, iOS, Android&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert das benutzerdefinierte SQLite RTree-Modul ([[Verwenden von SQLite mit FireDAC|weitere Informationen finden Sie hier]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-ETL-Komponenten==&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung verwendet ETL-Komponenten für die Datenbewegung zwischen verschiedenen Typen von Datenquellen und den Datenzielen.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.TFDBatchMove|TFDBatchMove]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert die Engine zur Verarbeitung von Datenbewegungen zwischen verschiedenen Datenquellen und Datenzielen.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.Text.TFDBatchMoveTextReader|TFDBatchMoveTextReader]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse legt einen Datenquellen-Reader für eine Textdatei fest.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.Text.TFDBatchMoveTextWriter|TFDBatchMoveTextWriter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse legt einen Datenziel-Writer für eine Textdatei fest.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.DataSet.TFDBatchMoveDataSetReader|TFDBatchMoveDataSetReader]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse definiert eine Quelldatenmenge.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.DataSet.TFDBatchMoveDataSetWriter|TFDBatchMoveDataSetWriter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse definiert eine Zieldatenmenge.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.SQL.TFDBatchMoveSQLReader|TFDBatchMoveSQLReader]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse stellt eine Verbindung zu der Datenbank her, die die zu kopierenden Daten enthält.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Comp.BatchMove.SQL.TFDBatchMoveSQLWriter|TFDBatchMoveSQLWriter]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X, iOS, Android, iOS-Simulator&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse stellt eine Verbindung zu der Datenbank her, in die die Daten kopiert werden sollen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==FireDAC-NoSQL-Komponenten==&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung verwendet NoSQL-Komponenten für die Arbeit mit NoSQL-Dokumentdatenbanken.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Plattformen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDBDataSet.TFDMongoDataSet|TFDMongoDataSet]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert eine Datenmenge, die an den MongoDB-Cursor angefügt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDBDataSet.TFDMongoQuery|TFDMongoQuery]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse implementiert eine Datenmenge, die MongoDB-Abfragen ausführen kann.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | [[lib_de:FireDAC.Phys.MongoDBDataSet.TFDMongoPipeline|TFDMongoPipeline]]&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Win32, Win64, OS X&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Diese Klasse ermöglicht die Ausführung einer MongoDB-Pipeline.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Klassendiagramm&amp;diff=208458</id>
		<title>Klassendiagramm</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Klassendiagramm&amp;diff=208458"/>
		<updated>2016-06-13T08:03:28Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Index}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Klassendiagramm&#039;&#039;&#039; kann sich auf Folgendes beziehen:&lt;br /&gt;
&lt;br /&gt;
* [[UML 2.0-Klassendiagramm - Index|UML 2.0-Klassendiagramme]]&lt;br /&gt;
* [[UML 1.5-Klassendiagramm - Index|UML 1.5-Klassendiagramme]]&lt;br /&gt;
* [[Anleitungen für Klassendiagramme|Klassendiagramm-Prozeduren]]&lt;br /&gt;
* [[Synchronisierung von Modellen und Quelltext#Klassendiagramme|Synchronisierung zwischen Klassendiagrammen und Quelltext]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Begriffserklärungsseiten]]&lt;br /&gt;
[[Category:Godzilla]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Entsprechungen_f%C3%BCr_BDE-Namen_(FireDAC)&amp;diff=208456</id>
		<title>Entsprechungen für BDE-Namen (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Entsprechungen_f%C3%BCr_BDE-Namen_(FireDAC)&amp;diff=208456"/>
		<updated>2016-06-13T08:03:28Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Migrieren von BDE-Anwendungen nach FireDAC}}&lt;br /&gt;
Die folgende Tabelle enthält die BDE-Namen, für die es Entsprechungen in FireDAC gibt: &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;BDE-Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;FireDAC-Name&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;FireDAC-Unit&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TSession&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDManager&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TDatabase&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDConnection&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Alias&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ConnectionDef&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | DatabaseName&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | ConnectionName&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | Session&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FDManager&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | SessionName&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | (keins)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | PrivateDir&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | (keins)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | =====&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | =================&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | =================&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TQuery&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDQuery&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TStoredProc&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDStoredProc&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TTable&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDTable&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TUpdateSQL&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDUpdateSQL&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TBatchMove&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDBatchMove&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.BatchMove&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | =====&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | =================&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | =================&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TParam&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDParam&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Stan.Param&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TParams&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDParams&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Stan.Param&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TBlobStream&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDBlobStream&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.DataSet&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TDBDataSet,&amp;lt;br /&amp;gt; TBDEDataSet&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | TFDRDBMSDataSet&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Comp.Client&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | EDBEngineError&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | EFDDBEngineException&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; | FireDAC.Stan.Error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Eine vollständige Liste finden Sie in der Datei $(Demos)\Object Pascal\Database\FireDAC\Tool\reFind\BDE2FDMigration\FireDAC_Migrate_BDE.txt.&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Zus%C3%A4tzliche_Migrationshinweise_(FireDAC)&amp;diff=208454</id>
		<title>Zusätzliche Migrationshinweise (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Zus%C3%A4tzliche_Migrationshinweise_(FireDAC)&amp;diff=208454"/>
		<updated>2016-06-13T08:03:28Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Uploaded. LOC-22814&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Migrieren von BDE-Anwendungen nach FireDAC}}&lt;br /&gt;
&lt;br /&gt;
==Hinweis 1==&lt;br /&gt;
&lt;br /&gt;
Einige Eigenschaften müssen komplett entfernt werden, weil in FireDAC dazu keine Entsprechungen vorhanden sind:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;SessionName&#039;&#039;&#039; muss komplett entfernt werden. Gehen Sie dabei aber sehr sorgfältig vor, weil in Ihrer Anwendung mehrere, gleichnamige Verbindungen in unterschiedlichen Sitzungen verwendet werden könnten.&lt;br /&gt;
* &#039;&#039;&#039;PrivateDir&#039;&#039;&#039; muss komplett entfernt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Dies wird vom Migrationsskript &amp;quot;FireDAC_Migrate_BDE.txt&amp;quot; ausgeführt.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 2==&lt;br /&gt;
&lt;br /&gt;
Obwohl in FireDAC die Entsprechung &amp;quot;TFDTable&amp;quot; für die &amp;quot;TTable&amp;quot;-BDE-Komponente vorhanden ist, sollten Sie gleich bei der Migration alle &amp;quot;TTable&amp;quot;-Komponenten durch &amp;quot;TFDQuery&amp;quot;-Komponenten ersetzen.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 3==&lt;br /&gt;
&lt;br /&gt;
BDE-Anwendungen mit persistenten Feldern müssen zusätzlich angepasst werden. Die BDE verwendet weder die Eigenschaften &#039;&#039;&#039;Origin&#039;&#039;&#039; und &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039; für persistente Felder noch das Abfrage-DB-Dictionary oder stellt diese bereit, um die eindeutigen Kennzeichnungsfelder abzurufen. [[Generieren von Aktualisierungsanweisungen (FireDAC)|FireDAC verwendet]] die Eigenschaften &#039;&#039;&#039;Origin&#039;&#039;&#039; und &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039; für persistente Felder und stellt diese Eigenschaften auch bereit. Das Migrationsskript &amp;quot;FireDAC_Migrate_BDE.txt&amp;quot; entfernt alle &#039;&#039;&#039;TField.Origin&#039;&#039;&#039;-Werte aus DFM-Dateien. Wenn &#039;&#039;&#039;Origin&#039;&#039;&#039; leer ist (wie in einer BDE-Anwendung), verwendet FireDAC den Feldnamen. Im Vorgabewert von &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039; ist &#039;&#039;&#039;pfInKey&#039;&#039;&#039; jedoch nicht enthalten, und FireDAC fragt die DB nicht nach Primärschlüsselfeldern ab. FireDAC kann daher die [[Eindeutige Kennzeichnungsfelder (FireDAC)|eindeutigen Kennzeichnungsfelder]] nicht abrufen, und Sie müssen eine der folgenden Aktionen ausführen:&lt;br /&gt;
&lt;br /&gt;
* Neuerstellen von persistenten Feldern.&lt;br /&gt;
* Manuelles Anpassen von &#039;&#039;&#039;ProviderFlags&#039;&#039;&#039;.&lt;br /&gt;
* Manuelles Festlegen von &#039;&#039;&#039;UpdateOptions.KeyFields&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 4==&lt;br /&gt;
&lt;br /&gt;
Codefragmente, wie:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
Screen.Cursor := crSQLWait;&lt;br /&gt;
try&lt;br /&gt;
  ......&lt;br /&gt;
finally&lt;br /&gt;
  Screen.Cursor := crDefault;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollten durch Folgendes ersetzt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
uses&lt;br /&gt;
  FireDAC.Stan.Factory, FireDAC.UI.Intf;&lt;br /&gt;
  ......&lt;br /&gt;
var&lt;br /&gt;
  oWait: IFDGUIxWaitCursor;&lt;br /&gt;
  ......&lt;br /&gt;
  FDCreateInterface(IFDGUIxWaitCursor, oWait);&lt;br /&gt;
  oWait.StartWait;&lt;br /&gt;
  try&lt;br /&gt;
    ......&lt;br /&gt;
  finally&lt;br /&gt;
    oWait.StopWait;&lt;br /&gt;
  end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis 5==&lt;br /&gt;
&lt;br /&gt;
FireDAC verfügt über keine Entsprechung für die BDE-API. Daher muss sämtlicher Code, in dem die BDE-API direkt verwendet wird, mit der FireDAC-API neu programmiert werden. Es gibt keine direkte Lösung.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 6==&lt;br /&gt;
&lt;br /&gt;
Für viele Produkte von Fremdherstellern, wie mehrschichtige oder Berichtserstellungsbibliotheken, ist eine DAC-Adapter-Unit erforderlich. Bitte erfragen Sie beim jeweiligen Hersteller, wie Sie einen Adapter erhalten.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 7==&lt;br /&gt;
&lt;br /&gt;
EDBEngineError ist die BDE-spezifische Exception-Klasse. FireDAC enthält eine Entsprechung, nämlich die Klasse &#039;&#039;&#039;EFDDBEngineException&#039;&#039;&#039;. Bei der Behandlung von BDE-Exceptions ermitteln Programmierer mit der Eigenschaft &#039;&#039;&#039;ErrorCode&#039;&#039;&#039; den Fehlertyp. FireDAC verfügt über einen Eigenschaftstyp, der einen Aufzählungswert zurückgibt.&lt;br /&gt;
&lt;br /&gt;
Ändern Sie zum Beispiel den folgenden Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
if E is EDBEngineError then&lt;br /&gt;
begin&lt;br /&gt;
  case EDBEngineError(E).Errors[0].ErrorCode of&lt;br /&gt;
    DBIERR_KEYVIOL: MetaBaseDBError(SMb_DataSetInvalidPKeyValue, E);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
if E is EFDDBEngineException then&lt;br /&gt;
begin&lt;br /&gt;
  case EFDDBEngineException(E).Kind of&lt;br /&gt;
    ekUKViolated: MetaBaseDBError(SMb_DataSetInvalidPKeyValue, E);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis 8==&lt;br /&gt;
&lt;br /&gt;
Die Komponenten &#039;&#039;&#039;TBatchMove&#039;&#039;&#039; und &#039;&#039;&#039;TFDBatchMove&#039;&#039;&#039; unterscheiden sich in vielerlei Hinsicht. Code, in dem die Komponente &#039;&#039;&#039;TBatchMove&#039;&#039;&#039; verwendet wird, muss überarbeitet werden. &lt;br /&gt;
&lt;br /&gt;
==Hinweis 9==&lt;br /&gt;
&lt;br /&gt;
Das Ereignis &#039;&#039;&#039;TFDConnection.OnLogin&#039;&#039;&#039; ist nicht mit der Parameterliste des Ereignisses &#039;&#039;&#039;TDatabase.OnLogin&#039;&#039;&#039; kompatibel. Daher müssen Sie beispielsweise diese Ereignisbehandlungsroutine:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TMyDataModule.dbLogin(Connection: TFDConnection; LoginParams: TStrings);&lt;br /&gt;
begin&lt;br /&gt;
  LoginParams.Values[&#039;USER NAME&#039;] := &#039;me&#039;;&lt;br /&gt;
  LoginParams.Values[&#039;PASSWORD&#039;] := &#039;pwd&#039;;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
durch folgende ersetzen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TMyDataModule.dbLogin (AConnection: TFDCustomConnection; const AConnectionDef: IFDStanConnectionDef);&lt;br /&gt;
begin&lt;br /&gt;
  AConnectionDef.UserName := &#039;me&#039;;&lt;br /&gt;
  AConnectionDef.Password := &#039;pwd&#039;;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweis 10==&lt;br /&gt;
&lt;br /&gt;
Für Anwendungen mit heterogenen BDE-Abfragen sollte in FireDAC [[Local SQL (FireDAC)|Local SQL]] verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==Hinweis 11==&lt;br /&gt;
&lt;br /&gt;
Um das Multithreading mit der BDE zu aktivieren, kann in der Anwendung TSession.AutoSessionName auf &#039;&#039;&#039;True&#039;&#039;&#039; gesetzt werden. FireDAC unterstützt das Konzept von benannten Sitzungen nicht. Daher müssen Sie in Ihrer Anwendung statt TFDQuery.ConnectionName (Bindung per Name) TFDQuery.Connection (Bindung per Verweis) verwenden. Weitere Einzelheiten zum Multithreading in FireDAC finden Sie unter [[Multithreading (FireDAC)|Entwickeln von Multithreading-Anwendungen]].[[en:Additional Migration Hints (FireDAC)|en:Additional Migration Hints (FireDAC)]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Datenbankwarnungen_(FireDAC)&amp;diff=208437</id>
		<title>Datenbankwarnungen (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Datenbankwarnungen_(FireDAC)&amp;diff=208437"/>
		<updated>2016-06-10T09:16:28Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Internal Review. LOC-22111&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Arbeiten mit Anweisungen (FireDAC)}}&lt;br /&gt;
&lt;br /&gt;
Die DBMS-Warnung bezieht sich auf eine Datenbankbenachrichtigung oder eine Warnung, die von einem Datenbank-Trigger oder einer gespeicherten Prozedur mit dem Zweck gesendet wird, einen Datenbank-Client über Ereignisse auf der Datenbankseite zu benachrichtigen.&lt;br /&gt;
&lt;br /&gt;
Eine Warnung ist durch einen Namen gekennzeichnet und kann weitere Argumente enthalten. Die Clients werden für Warnungen registriert. Mehrere Clients können für eine einzelne Warnung registriert sein, und ein Client kann für mehrere Warnungen registriert sein. Wenn eine Warnung in einer Datenbank signalisiert wird, werden alle registrierten Clients darüber informiert. Wenn eine Warnung nicht mehr verwendet wird, hebt die Anwendung die Registrierung dieser Warnung auf.&lt;br /&gt;
&lt;br /&gt;
Typische Beispiele für Warnungen sind:&lt;br /&gt;
&lt;br /&gt;
* Das Ändern einer Tabelle. In diesem Fall aktualisiert die Anwendung eine Datenmenge, die diese Tabellendaten zurückgibt.&lt;br /&gt;
* Eine Benachrichtigung darüber, dass eine Bedingung in den Daten erfüllt wurde.&lt;br /&gt;
* Eine Benachrichtigung, die an andere Anwendungen gesendet wurde, dass eine bestimmte Anwendung besondere Aufgaben durchführt, wie z. B. Archivierung oder Sicherung von Daten.&lt;br /&gt;
&lt;br /&gt;
Jedes DBMS implementiert DBMS-Warnungen in einer eigenen Art und Weise. Für den Warnungsmechanismus gibt es keine Standardverfahren.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Verwenden von TFDEventAlerter==&lt;br /&gt;
&lt;br /&gt;
FireDAC stellt mit der Komponente [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]] eine einheitliche Warnungs-API bereit. Bestimmte DBMSs implementieren eventuell einige DBMS-Warnungsmechanismen. Jedes TFDEventAlerter-Objekt empfängt mehrere Warnungen, indem deren Namen in der Eigenschaft [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.Names|TFDEventAlerter.Names]] angegeben werden und ein in der Eigenschaft [[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.Kind|Options.Kind]] festgelegter Mechanismus verwendet wird.              &lt;br /&gt;
&lt;br /&gt;
FireDAC empfängt Warnungen in einem Hintergrund-Thread über eine zusätzliche private Verbindung zu der Datenbank. Die zusätzliche Verbindung wird von FireDAC automatisch für jede &#039;&#039;&#039;TFDEventAlerter&#039;&#039;&#039;-Komponente erstellt. Wenn die Anwendung mehrere TFDEventAlerter-Objekte erstellt, sollten Sie [[Multithreading (FireDAC)|Pool-Verbindungen]] zur Verbesserung der Leistung verwenden.&lt;br /&gt;
&lt;br /&gt;
Geben Sie in der Eigenschaft [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.Names|TFDEventAlerter.Names]] die gewünschten Ereignisnamen ein, um den Empfang von Ereignisbenachrichtigungen zu starten. Setzen Sie die Eigenschaft [[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.Kind|Options.Kind]]  auf den Typ der Ereigniswarnung, oder lassen Sie sie leer, um die Vorgabe zu verwenden. Geben Sie die Ereignisbehandlungsroutine [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.OnAlert|OnAlert]] an, die beim Auftreten eines Ereignisses ausgelöst wird, und setzen Sie [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.Active|Active]] auf &#039;&#039;&#039;True&#039;&#039;&#039;, oder rufen Sie die Methode [[lib_de:FireDAC.Comp.Client.TFDCustomEventAlerter.Register|Register]] auf. Setzen Sie [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.Active|Active]] auf &#039;&#039;&#039;False&#039;&#039;&#039; oder rufen Sie [[lib_de:FireDAC.Comp.Client.TFDCustomEventAlerter.Unregister|Unregister]] auf, um den Empfang von Ereignisbenachrichtigungen zu beenden.&lt;br /&gt;
&lt;br /&gt;
Die Ereignisbehandlungsroutine  [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.OnAlert|OnAlert]] kann im Kontext des Haupt- oder des Hintergrund-Threads aufgerufen werden. Mit der Eigenschaft [[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.Synchronize|Options.Synchronize]] können Sie dies steuern.&lt;br /&gt;
&lt;br /&gt;
:                  &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Die Anwendung sollte die Laufzeit der Behandlungsroutine für Hintergrund-Threads minimieren.&lt;br /&gt;
&lt;br /&gt;
Die Anwendung legt durch Setzen der Eigenschaft [[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.Timeout|Options.Timeout]] Zeitlimits für Warnungen fest. Wenn in einer bestimmten Zeitspanne keine Warnungen auftreten, wird die Ereignisbehandlungsroutine [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.OnTimeout|OnTimeout]] aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Um beispielsweise eine Registrierung für die Warnung &amp;quot;Customers&amp;quot; mit dem &amp;quot;DBMS_ALERT&amp;quot;-Mechanismus für eine Oracle-Datenbank und dem Standardmechanismus von Firebird vorzunehmen, verwenden Sie den folgenden Code: &lt;br /&gt;
                             &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDEventAlerter1.Names.Clear;&lt;br /&gt;
FDEventAlerter1.Names.Add(&#039;Customers&#039;);&lt;br /&gt;
case FDConnection1.RDBMSKind of&lt;br /&gt;
  mkOracle:    FDEventAlerter1.Options.Kind := &#039;DBMS_ALERT&#039;;&lt;br /&gt;
  mkInterbase: FDEventAlerter1.Options.Kind := &#039;Events&#039;;&lt;br /&gt;
end;&lt;br /&gt;
FDEventAlerter1.Options.Synchronize := True;&lt;br /&gt;
FDEventAlerter1.Options.Timeout := 10000;&lt;br /&gt;
FDEventAlerter1.OnAlter := DoAlert;&lt;br /&gt;
FDEventAlerter1.OnTimeout := DoTimeout;&lt;br /&gt;
FDEventAlerter1.Active := True;&lt;br /&gt;
&lt;br /&gt;
// …&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.DoAlert(ASender: TFDCustomEventAlerter;&lt;br /&gt;
  const AEventName: String; const AArgument: Variant);&lt;br /&gt;
begin&lt;br /&gt;
  if CompareText(AEventName, &#039;Customers&#039;) = 0 then&lt;br /&gt;
    qryCustomers.Refresh;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.DoTimeout(ASender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
  // …&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und den serverseitigen Code für Oracle: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE OR REPLACE TRIGGER TR_CUSTOMERS&lt;br /&gt;
AFTER INSERT OR UPDATE OR DELETE ON CUSTOMERS&lt;br /&gt;
BEGIN&lt;br /&gt;
  SYS.DBMS_ALERT.SIGNAL(&#039;Customers&#039;, &#039;123&#039;);&lt;br /&gt;
END;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie für Firebird den folgenden Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER TR_CUSTOMERS FOR CUSTOMERS&lt;br /&gt;
ACTIVE AFTER INSERT OR UPDATE OR DELETE&lt;br /&gt;
BEGIN&lt;br /&gt;
  POST_EVENT &#039;Customers&#039;;&lt;br /&gt;
END;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DBMS-Warnungsmechanismus==&lt;br /&gt;
&lt;br /&gt;
Wie bereits weiter oben erwähnt, implementiert jedes DBMS Datenbankwarnungen in einer eigenen Art und Weise. Der Typ des Warnungsmechanismus wird im Eigenschaftswert [[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.Kind|TFDEventAlerterOptions.Kind]] angegeben. Wenn diese Eigenschaft leer ist, wird der Standardmechanismus verwendet. Die clientseitige Funktionalität ist bei den meisten Mechanismen gleich, nur die Funktionalität auf der Datenbankseite ist unterschiedlich. &lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle enthält die DBMSs und die jeweiligen, von den FireDAC-Treibern unterstützten Warnungsmechanismen: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! DBMS&lt;br /&gt;
!Typ der Ereigniswarnung&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Advantage Database&lt;br /&gt;
| Events (*)&lt;br /&gt;
|Die Standardereignisfunktionalität (Benachrichtigungen) wird verwendet. Mit der gespeicherten Prozedur sp_SignalEvent können Sie ein Ereignis initiieren. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
sp_SignalEvent(&#039;Customers&#039;, true, 0, &#039;123&#039;);&lt;br /&gt;
:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; sp_SignalEvent kann nur aus einer gespeicherten Prozedur oder einem Trigger aufgerufen werden. Es kann nicht direkt aus der SQL-Anweisung aufgerufen werden.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Sybase SQL Anywhere&lt;br /&gt;
| Message (*)&lt;br /&gt;
| Die MESSAGE-Anweisungsfunktionalität wird verwendet. Um ein Ereignis zu initiieren, muss eine besonders formatierte Nachricht in der Form: _FD_$$&amp;amp;lt;Ereignisname&amp;amp;gt;[$$&amp;amp;lt;Argument&amp;amp;gt;] gesendet werden. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
MESSAGE &#039;_FD_$$Customers$$123&#039;         &lt;br /&gt;
|-&lt;br /&gt;
| DataSnap-Server&lt;br /&gt;
| Callbacks (*)&lt;br /&gt;
|Die &amp;quot;Heavyweight&amp;quot;-Callbacks von DataSnap werden verwendet (weitere Informationen finden Sie unter [http://edn.embarcadero.com/article/41374 {{Delphi}} Labs: DataSnap XE - Callbacks]). Der Inhalt von TFDEventAlerter.Names muss in einem der folgenden Formate vorliegen:&lt;br /&gt;
* &amp;amp;lt;Kanalname&amp;amp;gt;. FireDAC registriert eine Callback-Funktion für den angegebenen Kanal. Mit &#039;&#039;&#039;TDSAdminClient.BroadcastToChannel&#039;&#039;&#039; senden Sie ein Ereignis an alle TFDEventAlerter-Komponenten, die für den angegebenen Kanal registriert sind.&lt;br /&gt;
* &amp;amp;lt;Kanalname&amp;amp;gt;=&amp;amp;lt;Callback-Name&amp;amp;gt;. FireDAC registriert eine Callback-Funktion mit den angegebenen Namen für den angegebenen Kanal. Informationen zum Initiieren eines Ereignisses finden Sie oben.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | DB2&lt;br /&gt;
| DBMS_ALERT (*)&lt;br /&gt;
| Das DBMS_ALERT-Paket wird verwendet. Vor dessen Verwendung muss ein Datenbankadministrator GRANT EXECUTE ON DBMS_ALERT TO &amp;amp;lt;Benutzer oder Gruppe&amp;amp;gt; ausführen. Verwenden Sie zum Initiieren eines Ereignisses den Aufruf  DBMS_ALERT.SIGNAL. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
CALL DBMS_ALERT.SIGNAL(&#039;Customers&#039;, &#039;123&#039;);&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| DBMS_PIPE&lt;br /&gt;
| Das DBMS_PIPE-Paket wird verwendet. Vor dessen Verwendung muss ein Datenbankadministrator GRANT EXECUTE ON DBMS_PIPE TO &amp;amp;lt;Benutzer oder Gruppe&amp;amp;gt; ausführen. Verwenden Sie zum Initiieren eines Ereignisses den Aufruf DBMS_PIPE.SEND_MESSAGE. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
CALL DBMS_PIPE.PACK_MESSAGE(123);&lt;br /&gt;
CALL DBMS_PIPE.SEND_MESSAGE(&#039;Customers&#039;);&lt;br /&gt;
END;         &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Firebird&lt;br /&gt;
| Events (*)&lt;br /&gt;
| Der Standardmechanismus von Firebird für Ereignisbenachrichtigungen wird verwendet. Verwenden Sie zum Initiieren eines Ereignisses die Anweisung POST_EVENT &amp;amp;lt;Name&amp;amp;gt;. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
EXECUTE BLOCK AS&lt;br /&gt;
BEGIN&lt;br /&gt;
POST_EVENT &#039;Customers&#039;;&lt;br /&gt;
END;        &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Informix&lt;br /&gt;
| DBMS_ALERT (*)&lt;br /&gt;
| Das DBMS_ALERT-Paket wird aus dem externen Kompatibilitätspaket verwendet. Verwenden Sie zum Initiieren eines Ereignisses den Aufruf DBMS_ALERT_SIGNAL. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
EXECUTE PROCEDURE DBMS_ALERT_SIGNAL(&#039;Customers&#039;, &#039;123&#039;)&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| InterBase&lt;br /&gt;
| Events (*)&lt;br /&gt;
| Der Standardmechanismus von InterBase für Ereignisbenachrichtigungen wird verwendet. Verwenden Sie zum Initiieren eines Ereignisses die Anweisung POST_EVENT &amp;amp;lt;Name&amp;amp;gt; aus einem Trigger oder einer gespeicherten Prozedur. Die clientseitige Initiierung wird nicht unterstützt.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Microsoft SQL-Server&lt;br /&gt;
| QueryNotifies (*)&lt;br /&gt;
|Der Dienst &amp;quot;Query Update Notification&amp;quot; wird verwendet. Der Inhalt von &#039;&#039;&#039;TFDEventAlerter.Names&#039;&#039;&#039; muss in einem der folgenden Formate vorliegen:&lt;br /&gt;
* CHANGE&amp;amp;lt;Index&amp;amp;gt;=&amp;amp;lt;Meldung&amp;amp;gt;;&amp;amp;lt;SELECT-Abfrage&amp;amp;gt;. Das Ereignis wird ausgelöst, wenn die von der SELECT-Abfrage zurückgegebenen Daten aktualisiert werden und die &amp;amp;lt;Meldung&amp;amp;gt; als Ereignisname zurückgegeben wird. Um ein Ereignis auszulösen, muss eine UPDATE-Anweisung für die ausgewählten Daten ausgeführt werden.&lt;br /&gt;
* &amp;amp;lt;Meldung&amp;amp;gt;. FireDAC erstellt die Tabelle _FD_EVENTS. Das Ereignis wird ausgelöst, wenn VALUE der Zeile NAME=&amp;amp;lt;Meldung&amp;amp;gt; aktualisiert wird. Um ein Ereignis auszulösen, muss eine UPDATE-Anweisung ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
Des Weiteren können die folgenden Parameter in &amp;quot;Names&amp;quot; angegeben werden:&lt;br /&gt;
* SERVICE=&amp;amp;lt;Name&amp;amp;gt;. Der Name des zu verwendenden Dienstes. &#039;?&#039; bedeutet, dass ein eindeutig benannter Dienst erstellt und nach der Verwendung wieder gelöscht wird.&lt;br /&gt;
* QUEUE=&amp;amp;lt;Name&amp;amp;gt;. Der Name der zu verwendenden Meldungswarteschlange. &#039;?&#039; bedeutet, dass eine eindeutig benannte Warteschlange erstellt und nach der Verwendung wieder gelöscht wird.&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Um die Abfragebenachrichtigung zu aktivieren, führen Sie die folgende Anweisung aus:&lt;br /&gt;
&lt;br /&gt;
ALTER DATABASE &amp;amp;lt;Name Ihrer DB&amp;amp;gt; SET ENABLE_BROKER  &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&amp;lt;span id=&amp;quot;mongodb&amp;quot;&amp;gt;MongoDB&amp;lt;/span&amp;gt;&lt;br /&gt;
| Tail (*)&lt;br /&gt;
|&lt;br /&gt;
Verwendet zum Warnen über Einfügungen einen sogenannten [https://docs.mongodb.org/manual/tutorial/create-tailable-cursor/ tailable Cursor (EN)] auf einer gegebenen [https://docs.mongodb.org/manual/core/capped-collections/ größenbeschränkten Dokumentensammlung (EN) (capped collection)].&lt;br /&gt;
&lt;br /&gt;
Um die größenbeschränkte Ziel-Dokumentensammlung anzugeben, muss die Eigenschaft [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.Names|Names]] der Warnung einen einzigen Wert enthalten und eines der folgenden Formate verwenden:&lt;br /&gt;
* {{placeholder|database}}.{{placeholder|collection}}&lt;br /&gt;
* {{placeholder|database}}.{{placeholder|collection}}={{placeholder|size}}&lt;br /&gt;
* {{placeholder|collection}}&lt;br /&gt;
* {{placeholder|collection}}={{placeholder|size}}&lt;br /&gt;
&lt;br /&gt;
Wobei Folgendes gilt:     &lt;br /&gt;
* {{placeholder|database}} ist der Name der Datenbank, die die größenbeschränkte Ziel-Dokumentensammlung enthält. Der Standarddatenbankname ist &amp;quot;test&amp;quot;.&lt;br /&gt;
* {{placeholder|collection}} ist der Name der größenbeschränkten Ziel-Dokumentensammlung.&lt;br /&gt;
* Wenn die Ziel-Dokumentensammlung nicht existiert, erstellt FireDAC eine neue größenbeschränkte Dokumentensammlung mit dem angegebenen Datenbanknamen, Sammlungsnamen und Dokumentenanzahl  ({{placeholder|size}}). Die Standardanzahl ist 1000 (Dokumente).&lt;br /&gt;
&lt;br /&gt;
Wenn eine Einfügung vorkommt, erhält Ihre Behandlungsroutine für das Ereignis [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.OnAlert|OnAlert]] das eingefügte [[lib_de:FireDAC.Phys.MongoDBWrapper.TMongoDocument|Dokument]] [[lib_de:FireDAC.Phys.MongoDBWrapper.TMongoDocument.AsJSON|als JSON-String]] ({{Arg|AArgument}}). {{Arg|AEventName}} ist der Wert des Feldes &amp;quot;Name&amp;quot; des eingefügten Dokuments.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Oracle&lt;br /&gt;
| DBMS_ALERT (*)&lt;br /&gt;
| Das DBMS_ALERT-Paket wird verwendet. Vor dessen Verwendung muss ein Datenbankadministrator GRANT EXECUTE ON DBMS_ALERT TO &amp;amp;lt;Benutzer oder Gruppe&amp;amp;gt; ausführen. Verwenden Sie zum Initiieren eines Ereignisses den Aufruf  DBMS_ALERT.SIGNAL. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
SYS.DBMS_ALERT.SIGNAL(&#039;Customers&#039;, &#039;123&#039;);&lt;br /&gt;
END;       &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| DBMS_PIPE&lt;br /&gt;
| Das DBMS_PIPE-Paket wird verwendet. Vor dessen Verwendung muss ein Datenbankadministrator GRANT EXECUTE ON DBMS_PIPE TO &amp;amp;lt;Benutzer oder Gruppe&amp;amp;gt; ausführen. Verwenden Sie zum Initiieren eines Ereignisses den Aufruf DBMS_PIPE.SEND_MESSAGE. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
SYS.DBMS_PIPE.PACK_MESSAGE(123);&lt;br /&gt;
SYS.DBMS_PIPE.SEND_MESSAGE(&#039;Customers&#039;);&lt;br /&gt;
END;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| QueryNotifies&lt;br /&gt;
| Die Funktion &amp;quot;Continuous Query Notification (CQN)&amp;quot; ist eine Oracle-Implementierung der Funktion &amp;quot;Benachrichtigungen über Datenänderungen&amp;quot;. Weitere Informationen finden Sie unter [[Benachrichtigungen über Datenänderungen (FireDAC)#Oracle-CQN|Oracle-CQN]] und [http://docs.oracle.com/cd/B28359_01/appdev.111/b28395/oci10new.htm#CJGHFEDD Continuous Query Notification (EN)].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PostgreSQL&lt;br /&gt;
| Notifies (*)&lt;br /&gt;
| Der Standardmechanismus für die Ereignisbenachrichtigung wird verwendet. Verwenden Sie zum Initiieren eines Ereignisses die Anweisung NOTIFY &amp;amp;lt;Name&amp;amp;gt;. PostgreSQL 9.0 unterstützt Nutzdatenargumente, verwenden Sie NOTIFY &amp;amp;lt;Name&amp;amp;gt; [, &amp;amp;lt;paylod&amp;amp;gt;]. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
NOTIFY Customers      &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| SQLite&lt;br /&gt;
| Events (*)&lt;br /&gt;
| Die benutzerdefinierte Funktion POST_EVENT wird verwendet. Verwenden Sie zum Initiieren eines Ereignisses POST_EVENT(&amp;amp;lt;Name&amp;amp;gt;, [Arg1 [,Arg2 [,Arg3 [,Arg4]]]]). Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
SELECT POST_EVENT(&#039;Customers&#039;, 123)        &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der Standardtyp der Ereigniswarnung ist mit einem Sternchen gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Multithreading (FireDAC)|Multithreading]]&lt;br /&gt;
* [[Samp:FireDAC.TFDEventAlerter Sample|TFDEventAlerter]] (Beispielanwendung)&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Benachrichtigungen_%C3%BCber_Daten%C3%A4nderungen_(FireDAC)&amp;diff=208435</id>
		<title>Benachrichtigungen über Datenänderungen (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Benachrichtigungen_%C3%BCber_Daten%C3%A4nderungen_(FireDAC)&amp;diff=208435"/>
		<updated>2016-06-10T09:16:27Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Internal Review. LOC-22111&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
{{Parent|Arbeiten mit Anweisungen (FireDAC)}}&lt;br /&gt;
&lt;br /&gt;
Mit der Funktion &amp;quot;Benachrichtigungen über Datenänderungen&amp;quot; können Sie Datenbank-Clients über Datenänderungen für einige Datenbanken benachrichtigen. Diese Funktion findet Änderungen in Daten in einer Datenbank (wie {{code|INSERT}}-, {{code|UPDATE}}- oder {{code|DELETE}}-Operationen) und benachrichtigt den Datenbank-Client über diese Änderungen.&lt;br /&gt;
&lt;br /&gt;
FireDAC unterstützt die Funktion &amp;quot;Benachrichtigungen über Änderungen&amp;quot; für verschiedene Datenbanken (siehe [[#Unterstützung für Änderungsbenachrichtigungen|Unterstützung für Änderungsbenachrichtigungen]]). FireDAC verwendet verschiedene Methoden, um diese Funktion, abhängig von der Art der Datenbank, zu implementieren. Dieses Thema beschreibt die allgemeinen Informationen der Funktion &amp;quot;Benachrichtigungen über FireDAC-Datenänderungen&amp;quot; und gibt dann einige [[#Benachrichtigungen über Datenänderungen für Spezifisches DBMS|Gesichtspunkte für spezifische DBMS-Implementierungen]].&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen über Mechanismen für Datenbankwarnungen finden Sie unter [[Datenbankwarnungen (FireDAC)|Datenbankwarnungen]].&lt;br /&gt;
&lt;br /&gt;
==Einrichten der Funktion &amp;quot;Benachrichtigung über FireDAC-Datenänderungen&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
Um die Funktion &amp;quot;Benachrichtigung über FireDAC-Datenänderungen&amp;quot; auf einer FireDAC-Anwendung einzurichten, sollten Sie die folgenden Hauptkomponenten hinzufügen und konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Ein [[lib_de:FireDAC.Comp.Client.TFDConnection|TFDConnection]]-Objekt -  Dies ist das FireDAC-Verbindungsobjekt, mit dem eine Verbindung zu einem DBMS hergestellt wird.&lt;br /&gt;
*: &#039;&#039;&#039;Hinweis&#039;&#039;&#039;: In diesem Abschnitt wird davon ausgegangen, dass Sie das Tutorial [[Erste Schritte bei der Verwendung von FireDAC|Erste Schritte bei der Verwendung von FireDAC]], das Anleitungen zum Entwickeln einer einfachen VCL-Anwendung zur Verbindung mit Demo-Datenbanken bereitstellt, gelesen und verstanden haben.&lt;br /&gt;
&lt;br /&gt;
* Ein [[lib_de:FireDAC.Comp.Client.TFDQuery|TFDQuery]]-Objekt - Dies ist das FireDAC-Objekt, mit dem Datenmengen, die SQL-Abfragen ausführen können, implementiert werden. Sie sollten die folgenden Grundeigenschaften der SQL-Abfrage, die festgestellt wird, implementieren:&lt;br /&gt;
** Die [[lib_de:FireDAC.Comp.Client.TFDRdbmsDataSet.Connection|Connection]]-Eigenschaft muss gesetzt werden, damit das FireDAC-Verbindungsobjekt angegeben wird.&lt;br /&gt;
** Die [[lib_de:FireDAC.Comp.Client.TFDQuery.SQL|SQL]]-Eigenschaft muss mit der gewünschten SQL-Anweisung gesetzt werden. &lt;br /&gt;
** Die [[lib_de:FireDAC.Comp.Client.TFDQuery.ChangeAlerter|ChangeAlerter]]-Eigenschaft muss gesetzt werden, damit das FireDAC-Warnobjekt, das mit Ihrer Datenmenge assoziiert ist, angegeben wird.&lt;br /&gt;
** Die [[lib_de:FireDAC.Comp.Client.TFDQuery.ChangeAlertName|ChangeAlertName]]-Eigenschaft kann gesetzt werden, damit der Name der Basistabelle, deren Änderungen festgestellt wurden, angegeben wird.&lt;br /&gt;
&lt;br /&gt;
* Ein [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]]-Objekt - Dies ist das Objekt, mit dem die Benachrichtigungen über Datenbankänderungen behandelt werden. Sie sollten die folgenden Grundeigenschaften der Ereigniswarnung konfigurieren:&lt;br /&gt;
** Mit der [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.Options|Options]]-Eigenschaft kann eine [[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions|Menge von Eigenschaften]] festgelegt werden, um das Verhalten der Ereigniswarnung zu kontrollieren.&lt;br /&gt;
** Die [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.SubscriptionName|SubscriptionName]]-Eigenschaft muss gesetzt werden, damit der Substriptionsname der Änderungsbenachrichtigung angegeben wird. Es hängt vom Typ der Datenbank, die Sie verwenden, ab.&lt;br /&gt;
**: &#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Aktivieren Sie [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]] vor der Ausführung der gefundenen [[lib_de:FireDAC.Comp.Client.TFDQuery|TFDQuery]]. Dies ist nötig, da die Anweisung mit der Abfragebenachrichtigungs-API vor der Ausführung registriert werden muss. Dies ist eine Anforderung vom SQL-Server und Oracle.&lt;br /&gt;
&lt;br /&gt;
==Antworten auf Änderungsbenachrichtigungen==&lt;br /&gt;
&lt;br /&gt;
Beim Empfang einer Benachrichtigung über Datenänderungen ruft FireDAC die Änderungen automatisch ab und aktualisiert die Datenmenge. Dieser Prozess wird von den folgenden Eigenschaften der Komponente [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]] gesteuert:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FireDAC.Comp.Client.TFDCustomEventAlerter.Options|FireDAC.Comp.Client.TFDCustomEventAlerter.Options]].[[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.AutoRefresh|AutoRefresh]]&lt;br /&gt;
* [[lib_de:FireDAC.Comp.Client.TFDCustomEventAlerter.Options|FireDAC.Comp.Client.TFDCustomEventAlerter.Options]].[[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.Timeout|Timeout]]&lt;br /&gt;
* [[lib_de:FireDAC.Comp.Client.TFDCustomEventAlerter.Options|FireDAC.Comp.Client.TFDCustomEventAlerter.Options]].[[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.MergeData|MergeData]]&lt;br /&gt;
&lt;br /&gt;
Jedes der Demo-Projekte, die in [[#Benachrichtigungen über Datenänderungen für Spezifisches DBMS|Benachrichtigungen über Datenänderungen für Spezifisches DBMS]] aufgelistet sind, zeigt, wie das oben genannte Szenario verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Außerdem können Sie die [[lib_de:FireDAC.Comp.Client.TFDCustomEventAlerter.OnAlert|TFDCustomEventAlerter.OnAlert]]-Ereignisbehandlungsroutine verwenden, die nach dem Ermitteln jeder Änderung der gefundenen Datenmenge ausgelöst wird. Mit dieser Ereignisbehandlungsroutine können Sie Ihr benutzerdefiniertes Szenario implementieren, um auf Benachrichtigungen über Datenänderungen zu antworten. Der folgende Code implementiert eine [[lib_de:FireDAC.Comp.Client.TFDCustomEventAlerter.OnAlert|OnAlert]]-Ereignisbehandlungsroutine, die eine Benachrichtigung anzeigt, wenn jede Daten in einer Datenbank geändert werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.FDEventAlerter1Alert(ASender: TFDCustomEventAlerter;&lt;br /&gt;
  const AEventName: string; const AArgument: Variant);&lt;br /&gt;
begin&lt;br /&gt;
ShowMessage(&#039;Detected changes to the demo dataset.&#039;);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;{{CBuilder}}:&#039;&#039;&#039; &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::FDEventAlerter1Alert(TFDCustomEventAlerter *ASender, const UnicodeString AEventName,&lt;br /&gt;
          const Variant &amp;amp;AArgument)&lt;br /&gt;
{&lt;br /&gt;
  ShowMessage(&amp;quot;Detected changes to the demo dataset. &amp;quot;);&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Änderungsbenachrichtigungen==&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle enthält eine Zusammenfassung der für das jeweilige DBMS verwendeten Änderungsbenachrichtigung.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;DBMS&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Typ der Änderungsbenachrichtigung&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Delta-Typ&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;TFDEventAlerter.SubscriptionName&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |InterBase&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Event Alerter (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Change Views (automatisches Delta)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Abonnementname von InterBase Change View&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |MS SQL Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Query Update Notification (automatische Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left; vertical-align: middle;&amp;quot; | Oracle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |DBMS_ALERT / DBMS_PIPE (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Continuous Query Notification (CQN)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Automatisches Delta&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Jeder Wert&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Advantage Database&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Event Alerter (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Sybase SQL Anywhere&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Meldungen (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |DataSnap-Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Callbacks (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |DB2&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |DBMS_ALERT / DBMS_PIPE (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Firebird&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Event Alerter (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Informix&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |DBMS_ALERT (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |PostgreSQL&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Ereignisbenachrichtigung (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |SQLite&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Event Alerter (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Benachrichtigungen über Datenänderungen für Spezifisches DBMS==&lt;br /&gt;
&lt;br /&gt;
Dieser Abschnitt gibt einige Gesichtpunkte zur Implementierung der Funktion &amp;quot;Benachrichtigung über Datenänderungen&amp;quot; für verschiedene Datenbanken.&lt;br /&gt;
&lt;br /&gt;
===InterBase Change Views===&lt;br /&gt;
&lt;br /&gt;
Die Funktion Change Views ist die Interbase-Methode zur Implementierung von Benachrichtigungen über Datenbankänderungen. Weitere Informationen finden Sie unter [http://docwiki.embarcadero.com/InterBase/XE7/en/Change_Views Change Views (EN)].&lt;br /&gt;
&lt;br /&gt;
Vor der Entwicklung einer InterBase-Anwendung, die die Funktion Change Views verwendet, sollten Sie eine Subskription von Change Views erstellen. Der folgende Quelltextabschnitt ist ein Beispiel für die Erstellung der Subskription:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
/* Create the xxx subscription to track changes to the &#039;yyy&#039; table */&lt;br /&gt;
CREATE SUBSCRIPTION xxx ON yyy FOR ROW (INSERT, UPDATE, DELETE);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen zur Konfigurierung der Funktion Change Views finden Sie in dem Demo-Projekt unter:&lt;br /&gt;
&lt;br /&gt;
* {{SamplesMenu}} und zu &#039;&#039;&#039;Object Pascal\Database\FireDAC\Samples\DBMS Specific\InterBase\ChangeView\Generic&#039;&#039;&#039; navigieren.&lt;br /&gt;
&lt;br /&gt;
===Oracle CQN===&lt;br /&gt;
&lt;br /&gt;
De Funktion Continuous Query Notification (CQN) ist die Oracle-Implementierung der Funktion &amp;quot;Benachrichtigung über Datenänderungen&amp;quot;. Weitere Informationen finden Sie unter [http://docs.oracle.com/cd/B28359_01/appdev.111/b28395/oci10new.htm#CJGHFEDD Continuous Query Notification (EN)].&lt;br /&gt;
&lt;br /&gt;
Um die Oracle-CQN-Funktion zu konfigurieren, sollten Sie die folgenden Gesichtspunkte in Betracht ziehen:&lt;br /&gt;
&lt;br /&gt;
* Der Oracle-Client muss die &#039;&#039;&#039;Änderungsbenachrichtigung&#039;&#039;&#039;-Rechte besitzen. Der folgende Quelltextabschnitt ist ein Beispiel dafür, wie der Benutzer dieses Recht verwendet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
/* Give change notification privilege to the xxx Oracle user */&lt;br /&gt;
GRANT DBMS_CHANGE_NOTIFICATION TO xxx;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*  Die [[lib_de:FireDAC.Comp.Client.TFDQuery.SQL|SQL]]-Eigenschaft sollte die [[Verwenden von Oracle mit FireDAC#Implicit ROWIDs|{{code|ROWID}}-Spalten]] der {{code|SELECT}} Liste für die Basistabelle hinzufügen. Zum Beispiel: {{code|SELECT t.ROWID, t.* FROM table t}}.&lt;br /&gt;
*: &#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Der {{code|ROWID}}-Bezeichner ist ein [[Eindeutige Kennzeichnungsfelder (FireDAC)|Eindeutige Kennzeichnungsfeld (FireDAC) (FireDAC)]] für einer Zeile in einer Datenbank. Es wird in der Zeit erstellt, in der die Zeile in die Tabelle eingefügt wird, und freigegeben wird, wenn sie entfernt wird. ROWID-Werte haben verschiedenen wichtige Verwendungen; sie sind z. B. der schnellste Weg, um auf eine Reihe zuzugreifen.&lt;br /&gt;
&lt;br /&gt;
* Die folgenden Eigenschaften des [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]]-Objekts sollten wie folgt konfiguriert werden:&lt;br /&gt;
** Setzen Sie die [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.Options|Options]].[[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.Kind|Kind]]-Eigenschaft auf {{code|QueryNotifies}}.&lt;br /&gt;
** Setzen Sie die [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.SubscriptionName|SubscriptionName]]-Eigenschaft auf jeden Wert. Diese Eigenschaft kann nicht leer sein. Andernfalls ist die Abfrage völlig, statt inkrementell, aktualisiert.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen zur Konfiguration der Oracle-CQN-Funktion finden Sie unter dem Beispiel [[samp_en:FireDAC.Oracle CQN Sample|FireDAC Oracle CQN]].&lt;br /&gt;
&lt;br /&gt;
====Bekannte Oracle-Probleme====&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu Versionen der 11.2-Datenbank, können einige Versionen von 11.2-Client-Software keine Änderungsbenachrichtigungen, OCI-Callbacks oder Advanced Queuing (AQ)-Benachrichtigungen empfangen. Dies ist ein bekanntes Oracle-Problem. Weitere Informationen finden Sie auf der folgenden Oracle-[https://support.oracle.com/epmos/faces/DocumentDisplay?id=1310859.1 Seite (EN)].&lt;br /&gt;
&lt;br /&gt;
===Microsoft-SQL===&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen zur Konfigurierung der Funktion &amp;quot;Benachrichtigungen über Datenänderungen&amp;quot; für eine MSSQL-Datenbank finden Sie in dem Demo-Projekt unter:&lt;br /&gt;
&lt;br /&gt;
* {{SamplesMenu}} und navigieren Sie zu &#039;&#039;&#039;Object Pascal\Database\FireDAC\Samples\DBMS Specific\MSSQL\QueryNotify&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Datenbankwarnungen (FireDAC)|Datenbankwarnungen (FireDAC)]]&lt;br /&gt;
* [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|FireDAC.Comp.Client.TFDEventAlerter]]&lt;br /&gt;
* [[lib_de:FireDAC.Comp.Client.TFDQuery|FireDAC.Comp.Client.TFDQuery]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Datenbankwarnungen_(FireDAC)&amp;diff=208436</id>
		<title>Datenbankwarnungen (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Datenbankwarnungen_(FireDAC)&amp;diff=208436"/>
		<updated>2016-06-10T09:16:22Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Internal Review. LOC-22111&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Arbeiten mit Anweisungen (FireDAC)}}&lt;br /&gt;
&lt;br /&gt;
Die DBMS-Warnung bezieht sich auf eine Datenbankbenachrichtigung oder eine Warnung, die von einem Datenbank-Trigger oder einer gespeicherten Prozedur mit dem Zweck gesendet wird, einen Datenbank-Client über Ereignisse auf der Datenbankseite zu benachrichtigen.&lt;br /&gt;
&lt;br /&gt;
Eine Warnung ist durch einen Namen gekennzeichnet und kann weitere Argumente enthalten. Die Clients werden für Warnungen registriert. Mehrere Clients können für eine einzelne Warnung registriert sein, und ein Client kann für mehrere Warnungen registriert sein. Wenn eine Warnung in einer Datenbank signalisiert wird, werden alle registrierten Clients darüber informiert. Wenn eine Warnung nicht mehr verwendet wird, hebt die Anwendung die Registrierung dieser Warnung auf.&lt;br /&gt;
&lt;br /&gt;
Typische Beispiele für Warnungen sind:&lt;br /&gt;
&lt;br /&gt;
* Das Ändern einer Tabelle. In diesem Fall aktualisiert die Anwendung eine Datenmenge, die diese Tabellendaten zurückgibt.&lt;br /&gt;
* Eine Benachrichtigung darüber, dass eine Bedingung in den Daten erfüllt wurde.&lt;br /&gt;
* Eine Benachrichtigung, die an andere Anwendungen gesendet wurde, dass eine bestimmte Anwendung besondere Aufgaben durchführt, wie z. B. Archivierung oder Sicherung von Daten.&lt;br /&gt;
&lt;br /&gt;
Jedes DBMS implementiert DBMS-Warnungen in einer eigenen Art und Weise. Für den Warnungsmechanismus gibt es keine Standardverfahren.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Verwenden von TFDEventAlerter==&lt;br /&gt;
&lt;br /&gt;
FireDAC stellt mit der Komponente [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]] eine einheitliche Warnungs-API bereit. Bestimmte DBMSs implementieren eventuell einige DBMS-Warnungsmechanismen. Jedes TFDEventAlerter-Objekt empfängt mehrere Warnungen, indem deren Namen in der Eigenschaft [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.Names|TFDEventAlerter.Names]] angegeben werden und ein in der Eigenschaft [[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.Kind|Options.Kind]] festgelegter Mechanismus verwendet wird.              &lt;br /&gt;
&lt;br /&gt;
FireDAC empfängt Warnungen in einem Hintergrund-Thread über eine zusätzliche private Verbindung zu der Datenbank. Die zusätzliche Verbindung wird von FireDAC automatisch für jede &#039;&#039;&#039;TFDEventAlerter&#039;&#039;&#039;-Komponente erstellt. Wenn die Anwendung mehrere TFDEventAlerter-Objekte erstellt, sollten Sie [[Multithreading (FireDAC)|Pool-Verbindungen]] zur Verbesserung der Leistung verwenden.&lt;br /&gt;
&lt;br /&gt;
Geben Sie in der Eigenschaft [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.Names|TFDEventAlerter.Names]] die gewünschten Ereignisnamen ein, um den Empfang von Ereignisbenachrichtigungen zu starten. Setzen Sie die Eigenschaft [[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.Kind|Options.Kind]]  auf den Typ der Ereigniswarnung, oder lassen Sie sie leer, um die Vorgabe zu verwenden. Geben Sie die Ereignisbehandlungsroutine [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.OnAlert|OnAlert]] an, die beim Auftreten eines Ereignisses ausgelöst wird, und setzen Sie [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.Active|Active]] auf &#039;&#039;&#039;True&#039;&#039;&#039;, oder rufen Sie die Methode [[lib_de:FireDAC.Comp.Client.TFDCustomEventAlerter.Register|Register]] auf. Setzen Sie [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.Active|Active]] auf &#039;&#039;&#039;False&#039;&#039;&#039; oder rufen Sie [[lib_de:FireDAC.Comp.Client.TFDCustomEventAlerter.Unregister|Unregister]] auf, um den Empfang von Ereignisbenachrichtigungen zu beenden.&lt;br /&gt;
&lt;br /&gt;
Die Ereignisbehandlungsroutine  [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.OnAlert|OnAlert]] kann im Kontext des Haupt- oder des Hintergrund-Threads aufgerufen werden. Mit der Eigenschaft [[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.Synchronize|Options.Synchronize]] können Sie dies steuern.&lt;br /&gt;
&lt;br /&gt;
:                  &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Die Anwendung sollte die Laufzeit der Behandlungsroutine für Hintergrund-Threads minimieren.&lt;br /&gt;
&lt;br /&gt;
Die Anwendung legt durch Setzen der Eigenschaft [[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.Timeout|Options.Timeout]] Zeitlimits für Warnungen fest. Wenn in einer bestimmten Zeitspanne keine Warnungen auftreten, wird die Ereignisbehandlungsroutine [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.OnTimeout|OnTimeout]] aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Um beispielsweise eine Registrierung für die Warnung &amp;quot;Customers&amp;quot; mit dem &amp;quot;DBMS_ALERT&amp;quot;-Mechanismus für eine Oracle-Datenbank und dem Standardmechanismus von Firebird vorzunehmen, verwenden Sie den folgenden Code: &lt;br /&gt;
                             &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
FDEventAlerter1.Names.Clear;&lt;br /&gt;
FDEventAlerter1.Names.Add(&#039;Customers&#039;);&lt;br /&gt;
case FDConnection1.RDBMSKind of&lt;br /&gt;
  mkOracle:    FDEventAlerter1.Options.Kind := &#039;DBMS_ALERT&#039;;&lt;br /&gt;
  mkInterbase: FDEventAlerter1.Options.Kind := &#039;Events&#039;;&lt;br /&gt;
end;&lt;br /&gt;
FDEventAlerter1.Options.Synchronize := True;&lt;br /&gt;
FDEventAlerter1.Options.Timeout := 10000;&lt;br /&gt;
FDEventAlerter1.OnAlter := DoAlert;&lt;br /&gt;
FDEventAlerter1.OnTimeout := DoTimeout;&lt;br /&gt;
FDEventAlerter1.Active := True;&lt;br /&gt;
&lt;br /&gt;
// …&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.DoAlert(ASender: TFDCustomEventAlerter;&lt;br /&gt;
  const AEventName: String; const AArgument: Variant);&lt;br /&gt;
begin&lt;br /&gt;
  if CompareText(AEventName, &#039;Customers&#039;) = 0 then&lt;br /&gt;
    qryCustomers.Refresh;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
procedure TForm1.DoTimeout(ASender: TObject);&lt;br /&gt;
begin&lt;br /&gt;
  // …&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Und den serverseitigen Code für Oracle: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE OR REPLACE TRIGGER TR_CUSTOMERS&lt;br /&gt;
AFTER INSERT OR UPDATE OR DELETE ON CUSTOMERS&lt;br /&gt;
BEGIN&lt;br /&gt;
  SYS.DBMS_ALERT.SIGNAL(&#039;Customers&#039;, &#039;123&#039;);&lt;br /&gt;
END;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie für Firebird den folgenden Code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE TRIGGER TR_CUSTOMERS FOR CUSTOMERS&lt;br /&gt;
ACTIVE AFTER INSERT OR UPDATE OR DELETE&lt;br /&gt;
BEGIN&lt;br /&gt;
  POST_EVENT &#039;Customers&#039;;&lt;br /&gt;
END;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==DBMS-Warnungsmechanismus==&lt;br /&gt;
&lt;br /&gt;
Wie bereits weiter oben erwähnt, implementiert jedes DBMS Datenbankwarnungen in einer eigenen Art und Weise. Der Typ des Warnungsmechanismus wird im Eigenschaftswert [[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.Kind|TFDEventAlerterOptions.Kind]] angegeben. Wenn diese Eigenschaft leer ist, wird der Standardmechanismus verwendet. Die clientseitige Funktionalität ist bei den meisten Mechanismen gleich, nur die Funktionalität auf der Datenbankseite ist unterschiedlich. &lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle enthält die DBMSs und die jeweiligen, von den FireDAC-Treibern unterstützten Warnungsmechanismen: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! DBMS&lt;br /&gt;
!Typ der Ereigniswarnung&lt;br /&gt;
! Beschreibung&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Advantage Database&lt;br /&gt;
| Events (*)&lt;br /&gt;
|Die Standardereignisfunktionalität (Benachrichtigungen) wird verwendet. Mit der gespeicherten Prozedur sp_SignalEvent können Sie ein Ereignis initiieren. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
sp_SignalEvent(&#039;Customers&#039;, true, 0, &#039;123&#039;);&lt;br /&gt;
:&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; sp_SignalEvent kann nur aus einer gespeicherten Prozedur oder einem Trigger aufgerufen werden. Es kann nicht direkt aus der SQL-Anweisung aufgerufen werden.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Sybase SQL Anywhere&lt;br /&gt;
| Message (*)&lt;br /&gt;
| Die MESSAGE-Anweisungsfunktionalität wird verwendet. Um ein Ereignis zu initiieren, muss eine besonders formatierte Nachricht in der Form: _FD_$$&amp;amp;lt;Ereignisname&amp;amp;gt;[$$&amp;amp;lt;Argument&amp;amp;gt;] gesendet werden. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
MESSAGE &#039;_FD_$$Customers$$123&#039;         &lt;br /&gt;
|-&lt;br /&gt;
| DataSnap-Server&lt;br /&gt;
| Callbacks (*)&lt;br /&gt;
|Die &amp;quot;Heavyweight&amp;quot;-Callbacks von DataSnap werden verwendet (weitere Informationen finden Sie unter [http://edn.embarcadero.com/article/41374 {{Delphi}} Labs: DataSnap XE - Callbacks]). Der Inhalt von TFDEventAlerter.Names muss in einem der folgenden Formate vorliegen:&lt;br /&gt;
* &amp;amp;lt;Kanalname&amp;amp;gt;. FireDAC registriert eine Callback-Funktion für den angegebenen Kanal. Mit &#039;&#039;&#039;TDSAdminClient.BroadcastToChannel&#039;&#039;&#039; senden Sie ein Ereignis an alle TFDEventAlerter-Komponenten, die für den angegebenen Kanal registriert sind.&lt;br /&gt;
* &amp;amp;lt;Kanalname&amp;amp;gt;=&amp;amp;lt;Callback-Name&amp;amp;gt;. FireDAC registriert eine Callback-Funktion mit den angegebenen Namen für den angegebenen Kanal. Informationen zum Initiieren eines Ereignisses finden Sie oben.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | DB2&lt;br /&gt;
| DBMS_ALERT (*)&lt;br /&gt;
| Das DBMS_ALERT-Paket wird verwendet. Vor dessen Verwendung muss ein Datenbankadministrator GRANT EXECUTE ON DBMS_ALERT TO &amp;amp;lt;Benutzer oder Gruppe&amp;amp;gt; ausführen. Verwenden Sie zum Initiieren eines Ereignisses den Aufruf  DBMS_ALERT.SIGNAL. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
CALL DBMS_ALERT.SIGNAL(&#039;Customers&#039;, &#039;123&#039;);&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| DBMS_PIPE&lt;br /&gt;
| Das DBMS_PIPE-Paket wird verwendet. Vor dessen Verwendung muss ein Datenbankadministrator GRANT EXECUTE ON DBMS_PIPE TO &amp;amp;lt;Benutzer oder Gruppe&amp;amp;gt; ausführen. Verwenden Sie zum Initiieren eines Ereignisses den Aufruf DBMS_PIPE.SEND_MESSAGE. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
CALL DBMS_PIPE.PACK_MESSAGE(123);&lt;br /&gt;
CALL DBMS_PIPE.SEND_MESSAGE(&#039;Customers&#039;);&lt;br /&gt;
END;         &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Firebird&lt;br /&gt;
| Events (*)&lt;br /&gt;
| Der Standardmechanismus von Firebird für Ereignisbenachrichtigungen wird verwendet. Verwenden Sie zum Initiieren eines Ereignisses die Anweisung POST_EVENT &amp;amp;lt;Name&amp;amp;gt;. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
EXECUTE BLOCK AS&lt;br /&gt;
BEGIN&lt;br /&gt;
POST_EVENT &#039;Customers&#039;;&lt;br /&gt;
END;        &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Informix&lt;br /&gt;
| DBMS_ALERT (*)&lt;br /&gt;
| Das DBMS_ALERT-Paket wird aus dem externen Kompatibilitätspaket verwendet. Verwenden Sie zum Initiieren eines Ereignisses den Aufruf DBMS_ALERT_SIGNAL. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
EXECUTE PROCEDURE DBMS_ALERT_SIGNAL(&#039;Customers&#039;, &#039;123&#039;)&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| InterBase&lt;br /&gt;
| Events (*)&lt;br /&gt;
| Der Standardmechanismus von InterBase für Ereignisbenachrichtigungen wird verwendet. Verwenden Sie zum Initiieren eines Ereignisses die Anweisung POST_EVENT &amp;amp;lt;Name&amp;amp;gt; aus einem Trigger oder einer gespeicherten Prozedur. Die clientseitige Initiierung wird nicht unterstützt.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Microsoft SQL-Server&lt;br /&gt;
| QueryNotifies (*)&lt;br /&gt;
|Der Dienst &amp;quot;Query Update Notification&amp;quot; wird verwendet. Der Inhalt von &#039;&#039;&#039;TFDEventAlerter.Names&#039;&#039;&#039; muss in einem der folgenden Formate vorliegen:&lt;br /&gt;
* CHANGE&amp;amp;lt;Index&amp;amp;gt;=&amp;amp;lt;Meldung&amp;amp;gt;;&amp;amp;lt;SELECT-Abfrage&amp;amp;gt;. Das Ereignis wird ausgelöst, wenn die von der SELECT-Abfrage zurückgegebenen Daten aktualisiert werden und die &amp;amp;lt;Meldung&amp;amp;gt; als Ereignisname zurückgegeben wird. Um ein Ereignis auszulösen, muss eine UPDATE-Anweisung für die ausgewählten Daten ausgeführt werden.&lt;br /&gt;
* &amp;amp;lt;Meldung&amp;amp;gt;. FireDAC erstellt die Tabelle _FD_EVENTS. Das Ereignis wird ausgelöst, wenn VALUE der Zeile NAME=&amp;amp;lt;Meldung&amp;amp;gt; aktualisiert wird. Um ein Ereignis auszulösen, muss eine UPDATE-Anweisung ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
Des Weiteren können die folgenden Parameter in &amp;quot;Names&amp;quot; angegeben werden:&lt;br /&gt;
* SERVICE=&amp;amp;lt;Name&amp;amp;gt;. Der Name des zu verwendenden Dienstes. &#039;?&#039; bedeutet, dass ein eindeutig benannter Dienst erstellt und nach der Verwendung wieder gelöscht wird.&lt;br /&gt;
* QUEUE=&amp;amp;lt;Name&amp;amp;gt;. Der Name der zu verwendenden Meldungswarteschlange. &#039;?&#039; bedeutet, dass eine eindeutig benannte Warteschlange erstellt und nach der Verwendung wieder gelöscht wird.&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Um die Abfragebenachrichtigung zu aktivieren, führen Sie die folgende Anweisung aus:&lt;br /&gt;
&lt;br /&gt;
ALTER DATABASE &amp;amp;lt;Name Ihrer DB&amp;amp;gt; SET ENABLE_BROKER  &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&amp;lt;span id=&amp;quot;mongodb&amp;quot;&amp;gt;MongoDB&amp;lt;/span&amp;gt;&lt;br /&gt;
| Tail (*)&lt;br /&gt;
|&lt;br /&gt;
Verwendet zum Warnen über Einfügungen einen sogenannten [https://docs.mongodb.org/manual/tutorial/create-tailable-cursor/ tailable Cursor (EN)] auf einer gegebenen [https://docs.mongodb.org/manual/core/capped-collections/ größenbeschränkten Dokumentensammlung (EN) (capped collection)].&lt;br /&gt;
&lt;br /&gt;
Um die größenbeschränkte Ziel-Dokumentensammlung anzugeben, muss die Eigenschaft [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.Names|Names]] der Warnung einen einzigen Wert enthalten und eines der folgenden Formate verwenden:&lt;br /&gt;
* {{placeholder|database}}.{{placeholder|collection}}&lt;br /&gt;
* {{placeholder|database}}.{{placeholder|collection}}={{placeholder|size}}&lt;br /&gt;
* {{placeholder|collection}}&lt;br /&gt;
* {{placeholder|collection}}={{placeholder|size}}&lt;br /&gt;
&lt;br /&gt;
Wobei Folgendes gilt:     &lt;br /&gt;
* {{placeholder|database}} ist der Name der Datenbank, die die größenbeschränkte Ziel-Dokumentensammlung enthält. Der Standarddatenbankname ist &amp;quot;test&amp;quot;.&lt;br /&gt;
* {{placeholder|collection}} ist der Name der größenbeschränkten Ziel-Dokumentensammlung.&lt;br /&gt;
* Wenn die Ziel-Dokumentensammlung nicht existiert, erstellt FireDAC eine neue größenbeschränkte Dokumentensammlung mit dem angegebenen Datenbanknamen, Sammlungsnamen und Dokumentenanzahl  ({{placeholder|size}}). Die Standardanzahl ist 1000 (Dokumente).&lt;br /&gt;
&lt;br /&gt;
Wenn eine Einfügung vorkommt, erhält Ihre Behandlungsroutine für das Ereignis [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.OnAlert|OnAlert]] das eingefügte [[lib_de:FireDAC.Phys.MongoDBWrapper.TMongoDocument|Dokument]] [[lib_de:FireDAC.Phys.MongoDBWrapper.TMongoDocument.AsJSON|als JSON-String]] ({{Arg|AArgument}}). {{Arg|AEventName}} ist der Wert des Feldes &amp;quot;Name&amp;quot; des eingefügten Dokuments.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | Oracle&lt;br /&gt;
| DBMS_ALERT (*)&lt;br /&gt;
| Das DBMS_ALERT-Paket wird verwendet. Vor dessen Verwendung muss ein Datenbankadministrator GRANT EXECUTE ON DBMS_ALERT TO &amp;amp;lt;Benutzer oder Gruppe&amp;amp;gt; ausführen. Verwenden Sie zum Initiieren eines Ereignisses den Aufruf  DBMS_ALERT.SIGNAL. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
SYS.DBMS_ALERT.SIGNAL(&#039;Customers&#039;, &#039;123&#039;);&lt;br /&gt;
END;       &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| DBMS_PIPE&lt;br /&gt;
| Das DBMS_PIPE-Paket wird verwendet. Vor dessen Verwendung muss ein Datenbankadministrator GRANT EXECUTE ON DBMS_PIPE TO &amp;amp;lt;Benutzer oder Gruppe&amp;amp;gt; ausführen. Verwenden Sie zum Initiieren eines Ereignisses den Aufruf DBMS_PIPE.SEND_MESSAGE. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
BEGIN&lt;br /&gt;
SYS.DBMS_PIPE.PACK_MESSAGE(123);&lt;br /&gt;
SYS.DBMS_PIPE.SEND_MESSAGE(&#039;Customers&#039;);&lt;br /&gt;
END;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| QueryNotifies&lt;br /&gt;
| Die Funktion &amp;quot;Continuous Query Notification (CQN)&amp;quot; ist eine Oracle-Implementierung der Funktion &amp;quot;Benachrichtigungen über Datenänderungen&amp;quot;. Weitere Informationen finden Sie unter [[Benachrichtigungen über Datenänderungen (FireDAC)#Oracle-CQN|Oracle-CQN]] und [http://docs.oracle.com/cd/B28359_01/appdev.111/b28395/oci10new.htm#CJGHFEDD Continuous Query Notification (EN)].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PostgreSQL&lt;br /&gt;
| Notifies (*)&lt;br /&gt;
| Der Standardmechanismus für die Ereignisbenachrichtigung wird verwendet. Verwenden Sie zum Initiieren eines Ereignisses die Anweisung NOTIFY &amp;amp;lt;Name&amp;amp;gt;. PostgreSQL 9.0 unterstützt Nutzdatenargumente, verwenden Sie NOTIFY &amp;amp;lt;Name&amp;amp;gt; [, &amp;amp;lt;paylod&amp;amp;gt;]. Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
NOTIFY Customers      &lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| SQLite&lt;br /&gt;
| Events (*)&lt;br /&gt;
| Die benutzerdefinierte Funktion POST_EVENT wird verwendet. Verwenden Sie zum Initiieren eines Ereignisses POST_EVENT(&amp;amp;lt;Name&amp;amp;gt;, [Arg1 [,Arg2 [,Arg3 [,Arg4]]]]). Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
SELECT POST_EVENT(&#039;Customers&#039;, 123)        &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der Standardtyp der Ereigniswarnung ist mit einem Sternchen gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Multithreading (FireDAC)|Multithreading]]&lt;br /&gt;
* [[Samp:FireDAC.TFDEventAlerter Sample|TFDEventAlerter]] (Beispielanwendung)&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Benachrichtigungen_%C3%BCber_Daten%C3%A4nderungen_(FireDAC)&amp;diff=208434</id>
		<title>Benachrichtigungen über Datenänderungen (FireDAC)</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Benachrichtigungen_%C3%BCber_Daten%C3%A4nderungen_(FireDAC)&amp;diff=208434"/>
		<updated>2016-06-10T09:16:22Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Internal Review. LOC-22111&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
{{Parent|Arbeiten mit Anweisungen (FireDAC)}}&lt;br /&gt;
&lt;br /&gt;
Mit der Funktion &amp;quot;Benachrichtigungen über Datenänderungen&amp;quot; können Sie Datenbank-Clients über Datenänderungen für einige Datenbanken benachrichtigen. Diese Funktion findet Änderungen in Daten in einer Datenbank (wie {{code|INSERT}}-, {{code|UPDATE}}- oder {{code|DELETE}}-Operationen) und benachrichtigt den Datenbank-Client über diese Änderungen.&lt;br /&gt;
&lt;br /&gt;
FireDAC unterstützt die Funktion &amp;quot;Benachrichtigungen über Änderungen&amp;quot; für verschiedene Datenbanken (siehe [[#Unterstützung für Änderungsbenachrichtigungen|Unterstützung für Änderungsbenachrichtigungen]]). FireDAC verwendet verschiedene Methoden, um diese Funktion, abhängig von der Art der Datenbank, zu implementieren. Dieses Thema beschreibt die allgemeinen Informationen der Funktion &amp;quot;Benachrichtigungen über FireDAC-Datenänderungen&amp;quot; und gibt dann einige [[#Benachrichtigungen über Datenänderungen für Spezifisches DBMS|Gesichtspunkte für spezifische DBMS-Implementierungen]].&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen über Mechanismen für Datenbankwarnungen finden Sie unter [[Datenbankwarnungen (FireDAC)|Datenbankwarnungen]].&lt;br /&gt;
&lt;br /&gt;
==Einrichten der Funktion &amp;quot;Benachrichtigung über FireDAC-Datenänderungen&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
Um die Funktion &amp;quot;Benachrichtigung über FireDAC-Datenänderungen&amp;quot; auf einer FireDAC-Anwendung einzurichten, sollten Sie die folgenden Hauptkomponenten hinzufügen und konfigurieren:&lt;br /&gt;
&lt;br /&gt;
* Ein [[lib_de:FireDAC.Comp.Client.TFDConnection|TFDConnection]]-Objekt -  Dies ist das FireDAC-Verbindungsobjekt, mit dem eine Verbindung zu einem DBMS hergestellt wird.&lt;br /&gt;
*: &#039;&#039;&#039;Hinweis&#039;&#039;&#039;: In diesem Abschnitt wird davon ausgegangen, dass Sie das Tutorial [[Erste Schritte bei der Verwendung von FireDAC|Erste Schritte bei der Verwendung von FireDAC]], das Anleitungen zum Entwickeln einer einfachen VCL-Anwendung zur Verbindung mit Demo-Datenbanken bereitstellt, gelesen und verstanden haben.&lt;br /&gt;
&lt;br /&gt;
* Ein [[lib_de:FireDAC.Comp.Client.TFDQuery|TFDQuery]]-Objekt - Dies ist das FireDAC-Objekt, mit dem Datenmengen, die SQL-Abfragen ausführen können, implementiert werden. Sie sollten die folgenden Grundeigenschaften der SQL-Abfrage, die festgestellt wird, implementieren:&lt;br /&gt;
** Die [[lib_de:FireDAC.Comp.Client.TFDRdbmsDataSet.Connection|Connection]]-Eigenschaft muss gesetzt werden, damit das FireDAC-Verbindungsobjekt angegeben wird.&lt;br /&gt;
** Die [[lib_de:FireDAC.Comp.Client.TFDQuery.SQL|SQL]]-Eigenschaft muss mit der gewünschten SQL-Anweisung gesetzt werden. &lt;br /&gt;
** Die [[lib_de:FireDAC.Comp.Client.TFDQuery.ChangeAlerter|ChangeAlerter]]-Eigenschaft muss gesetzt werden, damit das FireDAC-Warnobjekt, das mit Ihrer Datenmenge assoziiert ist, angegeben wird.&lt;br /&gt;
** Die [[lib_de:FireDAC.Comp.Client.TFDQuery.ChangeAlertName|ChangeAlertName]]-Eigenschaft kann gesetzt werden, damit der Name der Basistabelle, deren Änderungen festgestellt wurden, angegeben wird.&lt;br /&gt;
&lt;br /&gt;
* Ein [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]]-Objekt - Dies ist das Objekt, mit dem die Benachrichtigungen über Datenbankänderungen behandelt werden. Sie sollten die folgenden Grundeigenschaften der Ereigniswarnung konfigurieren:&lt;br /&gt;
** Mit der [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.Options|Options]]-Eigenschaft kann eine [[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions|Menge von Eigenschaften]] festgelegt werden, um das Verhalten der Ereigniswarnung zu kontrollieren.&lt;br /&gt;
** Die [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.SubscriptionName|SubscriptionName]]-Eigenschaft muss gesetzt werden, damit der Substriptionsname der Änderungsbenachrichtigung angegeben wird. Es hängt vom Typ der Datenbank, die Sie verwenden, ab.&lt;br /&gt;
**: &#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Aktivieren Sie [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]] vor der Ausführung der gefundenen [[lib_de:FireDAC.Comp.Client.TFDQuery|TFDQuery]]. Dies ist nötig, da die Anweisung mit der Abfragebenachrichtigungs-API vor der Ausführung registriert werden muss. Dies ist eine Anforderung vom SQL-Server und Oracle.&lt;br /&gt;
&lt;br /&gt;
==Antworten auf Änderungsbenachrichtigungen==&lt;br /&gt;
&lt;br /&gt;
Beim Empfang einer Benachrichtigung über Datenänderungen ruft FireDAC die Änderungen automatisch ab und aktualisiert die Datenmenge. Dieser Prozess wird von den folgenden Eigenschaften der Komponente [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]] gesteuert:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FireDAC.Comp.Client.TFDCustomEventAlerter.Options|FireDAC.Comp.Client.TFDCustomEventAlerter.Options]].[[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.AutoRefresh|AutoRefresh]]&lt;br /&gt;
* [[lib_de:FireDAC.Comp.Client.TFDCustomEventAlerter.Options|FireDAC.Comp.Client.TFDCustomEventAlerter.Options]].[[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.Timeout|Timeout]]&lt;br /&gt;
* [[lib_de:FireDAC.Comp.Client.TFDCustomEventAlerter.Options|FireDAC.Comp.Client.TFDCustomEventAlerter.Options]].[[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.MergeData|MergeData]]&lt;br /&gt;
&lt;br /&gt;
Jedes der Demo-Projekte, die in [[#Benachrichtigungen über Datenänderungen für Spezifisches DBMS|Benachrichtigungen über Datenänderungen für Spezifisches DBMS]] aufgelistet sind, zeigt, wie das oben genannte Szenario verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Außerdem können Sie die [[lib_de:FireDAC.Comp.Client.TFDCustomEventAlerter.OnAlert|TFDCustomEventAlerter.OnAlert]]-Ereignisbehandlungsroutine verwenden, die nach dem Ermitteln jeder Änderung der gefundenen Datenmenge ausgelöst wird. Mit dieser Ereignisbehandlungsroutine können Sie Ihr benutzerdefiniertes Szenario implementieren, um auf Benachrichtigungen über Datenänderungen zu antworten. Der folgende Code implementiert eine [[lib_de:FireDAC.Comp.Client.TFDCustomEventAlerter.OnAlert|OnAlert]]-Ereignisbehandlungsroutine, die eine Benachrichtigung anzeigt, wenn jede Daten in einer Datenbank geändert werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&#039;&#039;&#039;{{Delphi}}&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure TForm1.FDEventAlerter1Alert(ASender: TFDCustomEventAlerter;&lt;br /&gt;
  const AEventName: string; const AArgument: Variant);&lt;br /&gt;
begin&lt;br /&gt;
ShowMessage(&#039;Detected changes to the demo dataset.&#039;);&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&#039;&#039;&#039;{{CBuilder}}:&#039;&#039;&#039; &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void __fastcall TForm1::FDEventAlerter1Alert(TFDCustomEventAlerter *ASender, const UnicodeString AEventName,&lt;br /&gt;
          const Variant &amp;amp;AArgument)&lt;br /&gt;
{&lt;br /&gt;
  ShowMessage(&amp;quot;Detected changes to the demo dataset. &amp;quot;);&lt;br /&gt;
}&amp;lt;/source&amp;gt;&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Unterstützung für Änderungsbenachrichtigungen==&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle enthält eine Zusammenfassung der für das jeweilige DBMS verwendeten Änderungsbenachrichtigung.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;DBMS&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Typ der Änderungsbenachrichtigung&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Delta-Typ&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;TFDEventAlerter.SubscriptionName&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |InterBase&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Event Alerter (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Change Views (automatisches Delta)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Abonnementname von InterBase Change View&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |MS SQL Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Query Update Notification (automatische Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left; vertical-align: middle;&amp;quot; | Oracle&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |DBMS_ALERT / DBMS_PIPE (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Continuous Query Notification (CQN)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Automatisches Delta&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Jeder Wert&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Advantage Database&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Event Alerter (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Sybase SQL Anywhere&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Meldungen (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |DataSnap-Server&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Callbacks (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |DB2&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |DBMS_ALERT / DBMS_PIPE (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Firebird&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Event Alerter (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Informix&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |DBMS_ALERT (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |PostgreSQL&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Ereignisbenachrichtigung (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |SQLite&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Event Alerter (manuelle Benachrichtigung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Keiner (vollständige Datenmengenaktualisierung)&lt;br /&gt;
| style=&amp;quot;text-align: left; vertical-align: top;&amp;quot; |Benachrichtigungsmeldungstext&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Benachrichtigungen über Datenänderungen für Spezifisches DBMS==&lt;br /&gt;
&lt;br /&gt;
Dieser Abschnitt gibt einige Gesichtpunkte zur Implementierung der Funktion &amp;quot;Benachrichtigung über Datenänderungen&amp;quot; für verschiedene Datenbanken.&lt;br /&gt;
&lt;br /&gt;
===InterBase Change Views===&lt;br /&gt;
&lt;br /&gt;
Die Funktion Change Views ist die Interbase-Methode zur Implementierung von Benachrichtigungen über Datenbankänderungen. Weitere Informationen finden Sie unter [http://docwiki.embarcadero.com/InterBase/XE7/en/Change_Views Change Views (EN)].&lt;br /&gt;
&lt;br /&gt;
Vor der Entwicklung einer InterBase-Anwendung, die die Funktion Change Views verwendet, sollten Sie eine Subskription von Change Views erstellen. Der folgende Quelltextabschnitt ist ein Beispiel für die Erstellung der Subskription:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
/* Create the xxx subscription to track changes to the &#039;yyy&#039; table */&lt;br /&gt;
CREATE SUBSCRIPTION xxx ON yyy FOR ROW (INSERT, UPDATE, DELETE);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen zur Konfigurierung der Funktion Change Views finden Sie in dem Demo-Projekt unter:&lt;br /&gt;
&lt;br /&gt;
* {{SamplesMenu}} und zu &#039;&#039;&#039;Object Pascal\Database\FireDAC\Samples\DBMS Specific\InterBase\ChangeView\Generic&#039;&#039;&#039; navigieren.&lt;br /&gt;
&lt;br /&gt;
===Oracle CQN===&lt;br /&gt;
&lt;br /&gt;
De Funktion Continuous Query Notification (CQN) ist die Oracle-Implementierung der Funktion &amp;quot;Benachrichtigung über Datenänderungen&amp;quot;. Weitere Informationen finden Sie unter [http://docs.oracle.com/cd/B28359_01/appdev.111/b28395/oci10new.htm#CJGHFEDD Continuous Query Notification (EN)].&lt;br /&gt;
&lt;br /&gt;
Um die Oracle-CQN-Funktion zu konfigurieren, sollten Sie die folgenden Gesichtspunkte in Betracht ziehen:&lt;br /&gt;
&lt;br /&gt;
* Der Oracle-Client muss die &#039;&#039;&#039;Änderungsbenachrichtigung&#039;&#039;&#039;-Rechte besitzen. Der folgende Quelltextabschnitt ist ein Beispiel dafür, wie der Benutzer dieses Recht verwendet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
/* Give change notification privilege to the xxx Oracle user */&lt;br /&gt;
GRANT DBMS_CHANGE_NOTIFICATION TO xxx;&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*  Die [[lib_de:FireDAC.Comp.Client.TFDQuery.SQL|SQL]]-Eigenschaft sollte die [[Verwenden von Oracle mit FireDAC#Implicit ROWIDs|{{code|ROWID}}-Spalten]] der {{code|SELECT}} Liste für die Basistabelle hinzufügen. Zum Beispiel: {{code|SELECT t.ROWID, t.* FROM table t}}.&lt;br /&gt;
*: &#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Der {{code|ROWID}}-Bezeichner ist ein [[Eindeutige Kennzeichnungsfelder (FireDAC)|Eindeutige Kennzeichnungsfeld (FireDAC) (FireDAC)]] für einer Zeile in einer Datenbank. Es wird in der Zeit erstellt, in der die Zeile in die Tabelle eingefügt wird, und freigegeben wird, wenn sie entfernt wird. ROWID-Werte haben verschiedenen wichtige Verwendungen; sie sind z. B. der schnellste Weg, um auf eine Reihe zuzugreifen.&lt;br /&gt;
&lt;br /&gt;
* Die folgenden Eigenschaften des [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]]-Objekts sollten wie folgt konfiguriert werden:&lt;br /&gt;
** Setzen Sie die [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.Options|Options]].[[lib_de:FireDAC.Stan.Option.TFDEventAlerterOptions.Kind|Kind]]-Eigenschaft auf {{code|QueryNotifies}}.&lt;br /&gt;
** Setzen Sie die [[lib_de:FireDAC.Comp.Client.TFDEventAlerter.SubscriptionName|SubscriptionName]]-Eigenschaft auf jeden Wert. Diese Eigenschaft kann nicht leer sein. Andernfalls ist die Abfrage völlig, statt inkrementell, aktualisiert.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen zur Konfiguration der Oracle-CQN-Funktion finden Sie unter dem Beispiel [[samp_en:FireDAC.Oracle CQN Sample|FireDAC Oracle CQN]].&lt;br /&gt;
&lt;br /&gt;
====Bekannte Oracle-Probleme====&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu Versionen der 11.2-Datenbank, können einige Versionen von 11.2-Client-Software keine Änderungsbenachrichtigungen, OCI-Callbacks oder Advanced Queuing (AQ)-Benachrichtigungen empfangen. Dies ist ein bekanntes Oracle-Problem. Weitere Informationen finden Sie auf der folgenden Oracle-[https://support.oracle.com/epmos/faces/DocumentDisplay?id=1310859.1 Seite (EN)].&lt;br /&gt;
&lt;br /&gt;
===Microsoft-SQL===&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen zur Konfigurierung der Funktion &amp;quot;Benachrichtigungen über Datenänderungen&amp;quot; für eine MSSQL-Datenbank finden Sie in dem Demo-Projekt unter:&lt;br /&gt;
&lt;br /&gt;
* {{SamplesMenu}} und navigieren Sie zu &#039;&#039;&#039;Object Pascal\Database\FireDAC\Samples\DBMS Specific\MSSQL\QueryNotify&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Datenbankwarnungen (FireDAC)|Datenbankwarnungen (FireDAC)]]&lt;br /&gt;
* [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|FireDAC.Comp.Client.TFDEventAlerter]]&lt;br /&gt;
* [[lib_de:FireDAC.Comp.Client.TFDQuery|FireDAC.Comp.Client.TFDQuery]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FireDAC]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Neuerungen_in_Berlin&amp;diff=208418</id>
		<title>Neuerungen in Berlin</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Neuerungen_in_Berlin&amp;diff=208418"/>
		<updated>2016-06-09T13:50:50Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Updated. LOC-22847_GO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Neuerungen in den letzten Releases}}  &lt;br /&gt;
__TOC__&lt;br /&gt;
Das {{Version|Berlin}}-Release enthält die folgenden neuen und verbesserten Features.&lt;br /&gt;
&lt;br /&gt;
==Benutzerfreundlichere Installation==&lt;br /&gt;
&lt;br /&gt;
Wir haben den Installationsprozess von {{Product|Berlin}} verbessert, damit Sie das Produkt einfacher an Ihre Wünsche anpassen können.&lt;br /&gt;
&lt;br /&gt;
Es gibt nun ein neues &#039;&#039;&#039;[[Installationsprogramm|Installationsprogramm]]&#039;&#039;&#039;, mit dem eine grundlegende Version von {{Product|Berlin}}, die als Texteditor verwendet werden kann, sehr schnell installiert wird.&lt;br /&gt;
&lt;br /&gt;
Anschließend können Sie im neuen &#039;&#039;&#039;[[Installationsprogramm für Features|Installationsprogramm für Features]]&#039;&#039;&#039; die {{Product|Berlin}}-Features ([[Programmiersprachen|Programmiersprachen]], [[Unterstützte Zielplattformen|Zielplattformen]] usw.) auswählen, die in Ihrer anfänglichen {{Product|Berlin}}-Installation vorhanden sein sollen. Es werden nur die ausgewählten Features installiert, wodurch Sie Bandbreite, Zeit und Festplattenspeicher sparen.&lt;br /&gt;
&lt;br /&gt;
Später können Sie jederzeit mit dem neuen &#039;&#039;&#039;[[Feature-Manager|Feature-Manager]]&#039;&#039;&#039; {{Product|Berlin}} [[Hinzufügen und Entfernen von Features mit dem Feature-Manager|Features hinzufügen oder daraus entfernen]].&lt;br /&gt;
&lt;br /&gt;
Bestimmte Software, die im {{Product|Berlin}}-Installationsprogramm von {{Version|Seattle}} einbezogen war, steht nun über den &#039;&#039;&#039;[[GetIt-Package-Manager|GetIt-Package-Manager]]&#039;&#039;&#039; zur Verfügung. Weitere Informationen finden Sie unter [[Installationshinweise#Optionale zusätzliche Software|Optionale zusätzliche Software]] in den [[Installationshinweise|Installationshinweisen]].&lt;br /&gt;
&lt;br /&gt;
Das {{Product|Berlin}}-Installationsprogramm von {{Version|Seattle}} ist weiterhin als &#039;&#039;&#039;[[Offline-Installationsprogramm|Offline-Installationsprogramm]]&#039;&#039;&#039; verfügbar. Dieses Installationsprogramm können Sie verwenden, wenn Ihr System bei der Installation über keine aktive Internet-Verbindung verfügt.&lt;br /&gt;
&lt;br /&gt;
Anweisungen für die Installation und weitere Informationen finden Sie unter &#039;&#039;&#039;[[Installation|Installation]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==[[FireMonkey|{{FM|Berlin}}]]==&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für Android 6.0===&lt;br /&gt;
&lt;br /&gt;
Android {{AndroidSDKVersion}} (API Level {{AndroidAPILevel}}) wird jetzt [[Für die Anwendungsentwicklung unterstützte Android-Geräte|unterstützt]].&lt;br /&gt;
&lt;br /&gt;
===Adressbuch für iOS und Android===&lt;br /&gt;
&lt;br /&gt;
Auf mobilen Plattformen (Android und iOS) unterstützt {{FM|Berlin}} die Komponente [[lib_de:FMX.AddressBook.TAddressBook|TAddressBook]], mit der Sie in Ihren Anwendungen auf das Geräte-Adressbuch zugreifen können. Diese Komponente umfasst folgende grundlegende Funktionen:&lt;br /&gt;
&lt;br /&gt;
* Senden einer Anforderung für den Zugriff auf ein Geräte-Adressbuch und Abrufen des Zugriffsstatus.&lt;br /&gt;
* Zugreifen auf alle in dem Geräte-Adressbuch definierten Quellen.&lt;br /&gt;
* Abrufen aller oder einzelner Kontakte aus der angegebenen Quelle.&lt;br /&gt;
* Abrufen aller Kontakte aus bestimmten Gruppen.&lt;br /&gt;
* Bearbeiten oder Entfernen von vorhandenen Kontakten und Gruppen.&lt;br /&gt;
* Erstellen neuer Kontakte.&lt;br /&gt;
* Erstellen neuer Gruppen.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen und Beispiele finden Sie unter [[lib_de:FMX.AddressBook.TAddressBook|TAddressBook]] und [[Mobile-Tutorial: Verwenden einer Adressbuch-Komponente (iOS und Android)|Mobile-Tutorial: Verwenden der Adressbuch-Komponente (iOS und Android)]].&lt;br /&gt;
&lt;br /&gt;
===Verbesserter Stil-Designer===&lt;br /&gt;
&lt;br /&gt;
Am &#039;&#039;&#039;[[FireMonkey-Stil-Designer|Stil-Designer]]&#039;&#039;&#039; wurden mehrere Änderungen und Verbesserungen vorgenommen, wie:&lt;br /&gt;
&lt;br /&gt;
* Unterstützung von Zwischenablage, Tastatur und Mehrfachauswahl in der &#039;&#039;&#039;[[Strukturansicht|Strukturansicht]]&#039;&#039;&#039;.&lt;br /&gt;
* Vorschaubereich&lt;br /&gt;
* Unterstützung der Zoomfunktion&lt;br /&gt;
&lt;br /&gt;
: [[File:LondonFireMonkeyStyleDesigner.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Neuer ListView-Eintrags-Designer===&lt;br /&gt;
&lt;br /&gt;
Das [[lib_de:FMX.ListView.TListView|Listenansichts-Steuerelement]] unterstützt jetzt einen neuen Typ des [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemAppearance|Erscheinungsbildes für Einträge]] (auch im [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemEditAppearance|Bearbeitungsmodus]] verfügbar), {{Code|[[Anpassen der Darstellung von FireMonkey-Listenansichten#Verwenden des Werts &amp;quot;DynamicAppearance&amp;quot;|DynamicAppearance]]}}, mit dem Sie den Inhalt jedes Eintrags in Ihrer Listenansicht anpassen können: Beschriftungen, Bilder, Schaltflächen usw.&lt;br /&gt;
&lt;br /&gt;
Sie können auch im &#039;&#039;&#039;[[Formular-Designer|Formular-Designer]]&#039;&#039;&#039; mit der rechten Maustaste auf die Listenansicht klicken, und den neuen Eintrag &#039;&#039;&#039;[[Anpassen der Darstellung von FireMonkey-Listenansichten#Umschalten des Entwurfsmodus|Entwurfsmodus umschalten]]&#039;&#039;&#039; auswählen, um einen visuellen Eintragseditor für die Listenansicht zu aktivieren; damit können Sie die Steuerelemente der Einträge Ihrer Listenansicht visuell anpassen:&lt;br /&gt;
&lt;br /&gt;
: [[File:LondonListViewDesignMode.png]]&lt;br /&gt;
&lt;br /&gt;
In diesem Entwurfsmodus können Sie mit dem &#039;&#039;&#039;[[Objektinspektor|Objektinspektor]]&#039;&#039;&#039; dem Eintragsentwurf Ihrer Listenansicht neue Elemente hinzufügen und sie mit dem &#039;&#039;&#039;Objektinspektor&#039;&#039;&#039; und dem &#039;&#039;&#039;Formular-Designer&#039;&#039;&#039; anpassen.&lt;br /&gt;
&lt;br /&gt;
===Erweiterter Dienst zur Unterstützung der Zwischenablage===&lt;br /&gt;
&lt;br /&gt;
{{FM|Berlin}} verfügt jetzt über das Interface [[lib_de:FMX.Clipboard.IFMXExtendedClipboardService|IFMXExtendedClipboardService]], das neue Features hinzufügt. Beispielsweise können Sie mit dem Interface [[lib_de:FMX.Clipboard.IFMXExtendedClipboardService|IFMXExtendedClipboardService]]:&lt;br /&gt;
&lt;br /&gt;
*Benutzerdefinierte Formate registrieren.&lt;br /&gt;
* Daten im benutzerdefinierten Format kopieren/einfügen.&lt;br /&gt;
* Den Wert der Zwischenablage direkt ermitteln.&lt;br /&gt;
&lt;br /&gt;
===Verbesserung des Bilderlisten-Editors===&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie im Dialogfeld &#039;&#039;&#039;Bilder hinzufügen&#039;&#039;&#039; des [[Bilderlisten-Editor (FireMonkey)#Bereich &amp;quot;Liste der Bilder&amp;quot;|Bilderlisten-Editors]] mehrere Bilder gleichzeitig hinzufügen.&lt;br /&gt;
&lt;br /&gt;
===Erweiterungen des Gitters===&lt;br /&gt;
&lt;br /&gt;
Die [[lib_de:FMX.Grid.Style.TStyledGrid|Darstellungslogik]] und das [[lib_de:FMX.Grid.TGridModel|Datenmodell]] der [[lib_de:FMX.Grid.TCustomGrid|Gitter-Steuerelemente]] wurden von diesen getrennt. Dies ist eine notwendige, fehlerhafte API-Änderung, die es ermöglicht, zukünftig den Gitter-Steuerelementen, unter anderem, Unterstützung der [[Native FireMonkey-Steuerelemente|nativen Darstellung]] hinzuzufügen. Weitere Informationen finden Sie unter &#039;&#039;&#039;[[Changes to {{FM|Berlin}} Grid Controls in {{Version|Berlin}}|Änderungen an den {{FM|Berlin}} Gitter-Steuerelementen unter {{Version|Berlin}}]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Warnung:&#039;&#039;&#039; Bei der Migration eines älteren Projekts, das Gitter-Steuerelemente verwendet, nach {{Version|Berlin}} müssen Sie [[Changes to {{FM|Berlin}} Grid Controls in {{Version|Berlin}}|unter anderem]] die neue Unit [[lib_de:FMX.Grid.Style|FMX.Grid.Style]] in eine der &amp;lt;source lang=&amp;quot;delphi&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;uses&amp;lt;/source&amp;gt;-Klauseln Ihres Projekts miteinbeziehen. Diese Unit wird automatisch in neue Projekte eingefügt.&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für hohe DPI unter Windows===&lt;br /&gt;
&lt;br /&gt;
{{FM|Berlin}} stellt für Windows verbesserte Unterstützung für hohe DPI bereit, wie die Stile für Mehrfachauflösung, die Monitore mit 120 DPI und 144 DPI unterstützen.&lt;br /&gt;
&lt;br /&gt;
===Verbesserte Unterstützung für Zugriffstasten===&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung der [[Darstellung von Tasten und Tastenkürzeln#Zugriffstasten vorgeben|Zugriffstasten]] ist nun für folgende Steuerelemente verfügbar:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TLabel|TLabel]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TButton|TButton]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TRadioButton|TRadioButton]]&lt;br /&gt;
* [[lib_de:FMX.TabControl.TTabItem|TTabItem]] von [[lib_de:FMX.TabControl|TabControl]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TCheckBox|TCheckBox]]&lt;br /&gt;
* [[lib_de:FMX.ExtCtrls.TPopupBox.Items|TPopupBox.Items]] von [[lib_de:FMX.ExtCtrls.TPopupBox|TPopupBox]]&lt;br /&gt;
* [[lib_de:FMX.Controls.TTextControl|TTextControl]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TPresentedTextControl|TPresentedTextControl]]&lt;br /&gt;
* [[lib_de:FMX.ActnList.TCustomAction|TCustomAction]]&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für erweiterte Schriftartstile===&lt;br /&gt;
&lt;br /&gt;
[[lib_de:FMX.Graphics.TFont|TFont]] erhält eine neue Eigenschaft, [[lib_de:FMX.Graphics.TFont.StyleExt|StyleExt]], zum Behandeln von Schriftarten, die erweiterte Typen von [[lib_de:FMX.Graphics.TFontWeight|weight (Strichstärke)]], [[lib_de:FMX.Graphics.TFontSlant|slant (Schräge)]] oder [[lib_de:FMX.Graphics.TFontStretch|stretch (Laufweite der Schrift)]] haben.&lt;br /&gt;
&lt;br /&gt;
===Änderungen der Eigenschaft Hint===&lt;br /&gt;
&lt;br /&gt;
In früheren {{Product|Berlin}}-Versionen wurde [[lib_de:FMX.Controls.TControl.Hint|Hint]] in allen von [[lib_de:FMX.Controls.TControl|TControl]] abgeleiteten {{FM|Berlin}}-Steuerelementen als published deklariert. Jetzt wird die Eigenschaft [[lib_de:FMX.Controls.TControl.Hint|Hint]] in den unter [[Änderungen der Eigenschaft Hint in Berlin|Änderungen der Eigenschaft Hint in Berlin]] aufgelisteten {{FM|Berlin}}-Steuerelementen als published deklariert.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Warnung&#039;&#039;&#039;: Verwenden Sie in ihren Anwendungen [[lib_de:FMX.Controls.TControl.Hint|Hint]] nur mit den Steuerelementen, die in dieser [[Änderungen der Eigenschaft Hint in Berlin|Tabelle]] aufgeführt sind. Andernfalls werden Ihre Anwendungen nicht compiliert.&lt;br /&gt;
&lt;br /&gt;
===Vereinfachte Dialogfeld-API===&lt;br /&gt;
&lt;br /&gt;
Diverse Prozeduren und Funktionen zum Anzeigen von Dialogfeldern sind jetzt veraltet und wurden durch Prozeduren und Funktionen der neuen Plattformdienste [[lib_de:FMX.Platform.IFMXDialogServiceAsync|IFMXDialogServiceAsync]] und [[lib_de:FMX.Platform.IFMXDialogServiceSync|IFMXDialogServiceSync]] ersetzt, die Unterstützung für synchrone bzw. asynchrone Dialogfelder bereitstellen.&lt;br /&gt;
&lt;br /&gt;
In der folgenden Tabelle sind die API-Änderungen zusammengefasst:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Veraltete Member&lt;br /&gt;
! Neue Member&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* [[lib_de:FMX.Dialogs.ShowMessage|FMX.Dialogs.ShowMessage]]*&lt;br /&gt;
* [[lib_de:FMX.Dialogs.ShowMessageFmt|FMX.Dialogs.ShowMessageFmt]]*&lt;br /&gt;
* {{Code|FMX.Dialogs.ShowMessagePos}}&lt;br /&gt;
|&lt;br /&gt;
* [[lib_de:FMX.Platform.IFMXDialogServiceAsync.ShowMessageAsync|ShowMessageAsync]]&lt;br /&gt;
* [[lib_de:FMX.Platform.IFMXDialogServiceSync.ShowMessageSync|ShowMessageSync]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* {{Code|FMX.Dialogs.MessageDlg}}&lt;br /&gt;
* {{Code|FMX.Dialogs.MessageDlgPos}}&lt;br /&gt;
* {{Code|FMX.Dialogs.MessageDlgPosHelp}}&lt;br /&gt;
* {{Code|FMX.Platform.IFMXDialogService.MessageDialog}}&lt;br /&gt;
|&lt;br /&gt;
* [[lib_de:FMX.Platform.IFMXDialogServiceAsync.MessageDialogAsync|MessageDialogAsync]]&lt;br /&gt;
* [[lib_de:FMX.Platform.IFMXDialogServiceSync.MessageDialogSync|MessageDialogSync]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* {{Code|FMX.Dialogs.InputBox}}&lt;br /&gt;
* {{Code|FMX.Dialogs.InputQuery}}&lt;br /&gt;
* {{Code|FMX.Platform.IFMXDialogService.InputQuery}}&lt;br /&gt;
|&lt;br /&gt;
* [[lib_de:FMX.Platform.IFMXDialogServiceAsync.InputQueryAsync|InputQueryAsync]]&lt;br /&gt;
* [[lib_de:FMX.Platform.IFMXDialogServiceSync.InputQuerySync|InputQuerySync]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: * {{Code|ShowMessage}} und {{code|ShowMessageFmt}} sind nicht tatsächlich veraltet, Sie können stattdessen jedoch [[lib_de:FMX.Platform.IFMXDialogServiceAsync.ShowMessageAsync|ShowMessageAsync]] oder [[lib_de:FMX.Platform.IFMXDialogServiceSync.ShowMessageSync|ShowMessageSync]] verwenden.&lt;br /&gt;
&lt;br /&gt;
Außerdem wurden zwei neue Hilfsklassen erstellt: [[lib_de:FMX.DialogService.Async.TDialogServiceAsync|TDialogServiceAsync]] und [[lib_de:FMX.DialogService.Sync.TDialogServiceSync|TDialogServiceSync]]. Diese Hilfsklassen stellen Klassenmethoden und Funktionen bereit, mit denen Sie die neuen Prozeduren und Funktionen für Dialogfelder aufrufen können, ohne dass eine Instanz des entsprechenden [[FireMonkey-Plattformdienste|Plattformdienstes]] des Dialogfelds benötigt wird.&lt;br /&gt;
&lt;br /&gt;
===Weitere {{FM|Berlin}}-Änderungen===&lt;br /&gt;
&lt;br /&gt;
* Mit der neuen Eigenschaft [[lib_de:FMX.Pickers.TCustomPicker.AbsoluteTargetRect|AbsoluteTargetRect]] für Auswahlfenster können Sie die Position festlegen, an der ein Auswahlfenster angezeigt werden soll.&lt;br /&gt;
* Listenansichten zeigen Touch-Animationen auf Android.&lt;br /&gt;
* [[Verwenden von AppAnalytics in FireMonkey|AppAnalytics]] verwendet HTTPS anstatt HTTP.&lt;br /&gt;
* [[lib_de:FMX.Media.TMediaPlayer|TMediaPlayer]] versucht jetzt, die angegebene [[lib_de:FMX.Media.TMediaPlayer.FileName|Mediendatei]] für die Zielplattform mit dem Standardcodec [[lib_de:FMX.Media.TMediaPlayer.Play|abzuspielen]], falls die Erweiterung der Mediendatei nicht [[lib_de:FMX.Media.TMediaCodecManager.RegisterMediaCodecClass|registriert]] wurde.&lt;br /&gt;
* Der Typ [[lib_de:System.Double|Double]] hat den Typ [[lib_de:System.Extended|Extended]] ersetzt.&lt;br /&gt;
* Die veralteten Eigenschaften &#039;&#039;&#039;StrokeThickness&#039;&#039;&#039;, &#039;&#039;&#039;StrokeCap&#039;&#039;&#039;, &#039;&#039;&#039;StrokeDash&#039;&#039;&#039; und &#039;&#039;&#039;StrokeJoin&#039;&#039;&#039; von [[lib_de:FMX.Objects.TShape|TShape]] wurden gelöscht. Verwenden Sie die integrierte Eigenschaft [[lib_de:FMX.Objects.TShape.Stroke|TShape.Stroke]], die den Typ [[lib_de:FMX.Graphics.TStrokeBrush|TStrokeBrush]] hat. [[lib_de:FMX.Graphics.TStrokeBrush|TStrokeBrush]]-Objekte verfügen über die Eigenschaften [[lib_de:FMX.Graphics.TStrokeBrush.Thickness|Thickness]], [[lib_de:FMX.Graphics.TStrokeBrush.Cap|Cap]], [[lib_de:FMX.Graphics.TStrokeBrush.Dash|Dash]] und [[lib_de:FMX.Graphics.TStrokeBrush.Join|Join]], die Sie anstelle der gelöschten, veralteten Eigenschaften verwenden sollten.&lt;br /&gt;
* [[lib_de:FMX.Forms.IFMXWindowService.GetWindowScale|IFMXWindowService.GetWindowScale]] ist jetzt veraltet. Verwenden Sie die Eigenschaft [[lib_de:FMX.Types.TWindowHandle.Scale|Scale]] des [[lib_de:FMX.Forms.TCommonCustomForm.Handle|Handles]] eines [[lib_de:FMX.Forms.TCommonCustomForm|Formulars]], um die Skalierung des Formularfensters abzurufen.&lt;br /&gt;
&lt;br /&gt;
==[[Überblick zu VCL|VCL]]==&lt;br /&gt;
&lt;br /&gt;
* In der {{Product}}-Installation sind [[lib_de:Vcl.Ribbon|Ribbon-Steuerelemente]] nicht mehr enthalten. Diese Steuerelemente müssen Sie mit dem &#039;&#039;&#039;[[GetIt-Package-Manager|GetIt-Package-Manager]]&#039;&#039;&#039; separat installieren.&lt;br /&gt;
* [[Verwenden von AppAnalytics in der VCL|AppAnalytics]] verwendet HTTPS anstatt HTTP.&lt;br /&gt;
* Die Methode &#039;&#039;&#039;CreateRoot&#039;&#039;&#039; aus der Unit &#039;&#039;&#039;Vcl.Shell.ShellCtrls&#039;&#039;&#039; ist jetzt virtuell. Stammfelder aus derselben Unit sind jetzt als &amp;quot;protected&amp;quot; anstatt als &amp;quot;private&amp;quot; deklariert.&lt;br /&gt;
&lt;br /&gt;
==[[Enterprise Mobility Services (EMS)|EMS]]==&lt;br /&gt;
&lt;br /&gt;
===[[Installieren des EMS-Servers oder des EMS-Konsolenservers in einer Produktionsumgebung#Apache-Serverunterstützung|Apache-Serverunterstützung]]===&lt;br /&gt;
&lt;br /&gt;
Sie können jetzt den EMS-Server und die EMS-Konsole im Apache-Server in einer Produktionsumgebung ausführen.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Installieren des EMS-Servers oder des EMS-Konsolenservers in einer Produktionsumgebung#Apache-Serverunterstützung|Installieren und Ausführen des EMS-Servers und der EMS-Konsole im Apache-Server]].&lt;br /&gt;
&lt;br /&gt;
===[[Manuelles Bearbeiten der Konfiguration des EMS-Servers#Domänenübergreifende EMS-Server-API|Domänenübergreifende Aufrufe der EMS-Server-API]]===&lt;br /&gt;
&lt;br /&gt;
Der EMS-Server ermöglicht jetzt domänenübergreifende Aufrufe seiner API aus verschiedenen Domänen. Weitere Informationen finden Sie unter [[Manuelles Bearbeiten der Konfiguration des EMS-Servers#Domänenübergreifende EMS-Server-API|Domänenübergreifende Aufrufe der EMS-Server-API]].&lt;br /&gt;
&lt;br /&gt;
===[[EMS-EdgeModules|EMS-EdgeModules]]===&lt;br /&gt;
&lt;br /&gt;
EMS unterstützt jetzt das neue Feature [[EMS-EdgeModules|EMS-EdgeModules]], eine Erweiterung der Funktionalität des [[EMS-Server|EMS-Servers]].&lt;br /&gt;
&lt;br /&gt;
In {{Version|Berlin}} können Sie [[EMS-EdgeModules|EMS-EdgeModules]] als eigenständige Anwendungen ausführen und sie beim EMS-Server [[EMS-EdgeModules-Ressource#RegisterModule-Endpunkt|registrieren]]. Die EMS-EdgeModule-Kommunikation mit dem [[EMS-Server|EMS-Server]] erfolgt bidirektional.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen dazu finden Sie unter [[EMS-EdgeModules|EMS-EdgeModules]].&lt;br /&gt;
&lt;br /&gt;
===[[EMS-EdgeModules-Ressource|EMS-EdgeModules-Ressource]]===&lt;br /&gt;
&lt;br /&gt;
In der [[EMS-Konsolenserver|EMS-Konsole]] werden jetzt zwei neue Tabellen mit allen Informationen über [[EMS-EdgeModules-Ressource|EMS-EdgeModule]] und dessen im [[EMS-Server|EMS-Server]] geladenen Ressourcen angezeigt.&lt;br /&gt;
&lt;br /&gt;
Die [[Anwendung &amp;quot;EMS Management Console&amp;quot;|Anwendung &amp;quot;EMS Management Console&amp;quot;]] verfügt über [[Benutzeroberfläche der EMS-Ressourcenverwaltung|zwei neue Registerkarten]] zum einfachen Abrufen, Aktualisieren und Löschen der Daten der registrierten [[EMS-EdgeModules-Ressource|EMS-EdgeModules]] und deren Ressourcen. Einzelheiten zum Verwalten der [[EMS-EdgeModules-Ressource|EMS-EdgeModules]]-Daten auf dem [[EMS-Server|EMS-Server]] finden Sie unter [[Verwenden der Anwendung &amp;quot;EMS Management Console&amp;quot;|Verwenden der Anwendung &amp;quot;EMS Management Console&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
===[[Überblick zu ThingPoints|Überblick zu ThingPoints]]===&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie die neuen [[Überblick zu ThingPoints|ThingPoint]]-Anwendungen, um die Funktionalität des [[EMS-Server|EMS-Servers]] für das [[Iot:ThingConnect|Internet der Dinge (Internet of Things, IoT)]] zu erweitern. Mit einer ThingPoint-Anwendung können Sie Daten von sich in der Nähe befindlichen [[Iot:ThingConnect Devices|ThingConnect-Geräten]] erfassen, IoT-Daten vor- und nachverarbeiten und sie auf dem [[EMS-Server|EMS-Server]] speichern.&lt;br /&gt;
&lt;br /&gt;
Das &#039;&#039;&#039;[[samp_en:EMS.ThingPoint IoT Sample|Beispiel &amp;quot;EMS.ThingPoint IoT&amp;quot;]]&#039;&#039;&#039; zeigt, wie mit einer [[Überblick zu ThingPoints|ThingPoint]]-Anwendung der [[EMS-Server|EMS-Server]] erweitert wird und wie diese Daten von einer [[EMS-Client-Anwendung|EMS-Client-Anwendung]] genutzt werden.  &lt;br /&gt;
&lt;br /&gt;
Weitere Informationen zu ThingPoint-Anwendungen finden Sie unter [[Überblick zu ThingPoints|Überblick zu ThingPoints]].&lt;br /&gt;
&lt;br /&gt;
===[[EMS-API-Ressource|EMS-API-Ressource]]===&lt;br /&gt;
&lt;br /&gt;
Eine neue Ressource im EMS-Server stellt nun eine API-Dokumentation für alle Ressourcen und Endpunktmethoden des EMS-Servers bereit. Die API-Dokumentation kann in den Formaten YAML und JSON genutzt werden.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[EMS-API-Ressource|EMS-API-Ressource]].&lt;br /&gt;
&lt;br /&gt;
===[[Benutzerdefinierte API-Dokumentation|Benutzerdefinierte API-Dokumentation]]===&lt;br /&gt;
&lt;br /&gt;
Der EMS-Server stellt jetzt die Tools zum Erstellen der API-Dokumentation für neue Ressourcen in erweiterten EMS-Server-Packages bereit. Die neue Dokumentation wird durch Hinzufügen von Attributen zu den neuen Ressourcen und Endpunkten erstellt. Die API-Dokumentation wird in den Formaten YAML und JSON und der Zugriff darauf via HTTP bereitgestellt.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Benutzerdefinierte API-Dokumentation|Benutzerdefinierte API-Dokumentation]].&lt;br /&gt;
&lt;br /&gt;
==[[DataSnap-Anwendungen entwickeln|DataSnap]]==&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für JSON-Streaming===&lt;br /&gt;
&lt;br /&gt;
Neue Klasse [[lib_de:Data.DBXCommon.TDBXJSONStream|TDBXJSONStream]] zur Unterstützung von JSON-Streaming zwischen DataSnap-Servern und -Clients.&lt;br /&gt;
&lt;br /&gt;
Mit [[lib_de:Data.DBXCommon.TDBXJSONStream|TDBXJSONStream]] können Sie einen Stream von JSON-Objekten lesen und schreiben, allerdings nicht gleichzeitig.&lt;br /&gt;
&lt;br /&gt;
===Weitere DataSnap-Änderungen===&lt;br /&gt;
&lt;br /&gt;
* DataSnap-Clients benötigen zur Durchführung von HTTPS-Anforderungen [[OpenSSL|OpenSSL]] oder [[Indy|Indy]] nicht mehr.&lt;br /&gt;
&lt;br /&gt;
==[[Web Broker verwenden - Index|Web Broker]]==&lt;br /&gt;
&lt;br /&gt;
===Für C++-Projekte aus früheren Versionen mit Web.WebReq ist eine Aktualisierung erforderlich===&lt;br /&gt;
&lt;br /&gt;
Für C++-Projekte aus älteren Versionen, wie DataSnap-, Web-Broker- und Webdienst-Anwendungen, die die Unit [[lib_de:Web.WebReq|Web.WebReq]] verwenden, muss der Code aus Kompatibilitätsgründen mit {{product}} {{version}} aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
In diesen Projekten muss die folgende Zeile aus der &amp;lt;code&amp;gt;cpp&amp;lt;/code&amp;gt;-Projektdatei entfernt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;#pragma link &amp;quot;Web.WebReq&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Weitere Web Broker-Änderungen===&lt;br /&gt;
&lt;br /&gt;
* Die String-Behandlung wurde verbessert.&lt;br /&gt;
** Die Web-Broker-API verwendet standardmäßig die UTF-8-Codierung anstelle von ANSI.&lt;br /&gt;
** Die Parameter- und Ergebnistypen wurden von [[lib_de:System.AnsiString|AnsiString]] in [[lib_de:System.String|String]], [[lib_de:System.UTF8String|UTF8String]] oder [[lib_de:System.SysUtils.TBytes|TBytes]] geändert.&lt;br /&gt;
&lt;br /&gt;
==[[FireDAC|FireDAC]]==&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu IBM DB2 Server (FireDAC)|DB2]]===&lt;br /&gt;
&lt;br /&gt;
* Der [[Herstellen einer Verbindung zu IBM DB2 Server (FireDAC)|native DB2-Treiber]] und der [[Herstellen einer Verbindung zu ODBC-Datenquellen (FireDAC)|ODBC-Brückentreiber]] werden für DB2 AS/400 unterstützt.&lt;br /&gt;
* Neuer [[Herstellen einer Verbindung zu IBM DB2 Server (FireDAC)#Verbindungsdefinitionsparameter|Verbindungsdefinitionsparameter]]: {{code|TxSupported}}, der die Deaktivierung der FireDAC-Transaktionsverwaltung ermöglicht.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zur MongoDB-Datenbank (FireDAC)|MongoDB]]===&lt;br /&gt;
&lt;br /&gt;
* Unterstützung für [[Datenbankwarnungen (FireDAC)|Datenbankwarnungen]]. Es werden Benachrichtigungen über Einfügeoperationen einer [https://docs.mongodb.org/manual/core/capped-collections/ größenbeschränkten MongoDB-Dokumentsammlung (EN)] verwendet. Weitere Informationen dazu finden Sie unter &#039;&#039;&#039;[[Datenbankwarnungen (FireDAC)#mongodb|Datenbankwarnungen (FireDAC)]]&#039;&#039;&#039;.&lt;br /&gt;
* Neue Methode [[lib_de:FireDAC.Phys.MongoDBWrapper.TMongoDocument.Iterate|TMongoDocument.Iterate]], um Dokumenteneinträge zu durchlaufen. Weitere Informationen finden Sie in der neuen Demo {{Path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\MongoDB\ListView}}.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu Advantage Database Server (FireDAC)|Advantage]]===&lt;br /&gt;
&lt;br /&gt;
* Für Advantage v12 und höher:&lt;br /&gt;
** Verbesserung von [[lib_de:FireDAC.Phys.ADS.TFDADSBackup|TFDADSBackup]] und  [[lib_de:FireDAC.Phys.ADS.TFDADSRestore|TFDADSRestore]], um Unterstützung für das Sicherungsarchiv hinzuzufügen.&lt;br /&gt;
** Unterstützung des Datentyps {{code|GUID}}.&lt;br /&gt;
* Verbesserte Unterstützung für verschlüsselte Tabellen:&lt;br /&gt;
** Möglichkeit zur Bereitstellung eines einzelnen [[Herstellen einer Verbindung zu Advantage Database Server (FireDAC)#TablePwd|-Passworts]] für alle Tabellen.&lt;br /&gt;
** Unterstützung für den [[lib_de:FireDAC.Phys.ADS.TFDADSUtility.Encrypt|Verschlüsselungs-]]/[[lib_de:FireDAC.Phys.ADS.TFDADSUtility.Decrypt|Entschlüsselungs-]]Dienst.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu InterBase (FireDAC)|InterBase]]===&lt;br /&gt;
&lt;br /&gt;
* Neue [[Komponenten (FireDAC)#FireDAC-Dienstkomponenten|Dienstkomponente]], [[lib_de:FireDAC.Phys.IBBase.TFDIBInfo|TFDIBInfo]], zur Abfrage von Version, Lizenz, Konfiguration und Nutzungsdaten des Servers.&lt;br /&gt;
* Unterstützung für [[Unterstützung für das Blob-Streaming in FireDAC#Interne Streams|interne Streams]] für das [[Unterstützung für das Blob-Streaming in FireDAC|BLOB-Streaming]].&lt;br /&gt;
* Unterstützung für Array-Datentypen von InterBase. Weitere Informationen finden Sie in der neuen Demo [[samp_en:FireDAC.InterBase Arrays Sample|FireDAC.InterBase Arrays]].&lt;br /&gt;
* [[lib_de:FireDAC.Phys.IBWrapper.TIBRestoreOptions|TIBRestoreOptions.roReplace]] ersetzt {{Code|TIBRestoreOptions.roCreate}}.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu Firebird (FireDAC)|Firebird]]===&lt;br /&gt;
&lt;br /&gt;
* Neue [[Komponenten (FireDAC)#FireDAC-Dienstkomponenten|Dienstkomponente]], [[lib_de:FireDAC.Phys.IBBase.TFDIBInfo|TFDIBInfo]], zur Abfrage von Version, Lizenz, Konfiguration und Nutzungsdaten des Servers.&lt;br /&gt;
* Unterstützung für [[Unterstützung für das Blob-Streaming in FireDAC#Interne Streams|interne Streams]] für das [[Unterstützung für das Blob-Streaming in FireDAC|BLOB-Streaming]].&lt;br /&gt;
* Unterstützung für Array-Datentypen von Firebird. Weitere Informationen finden Sie in der neuen Demo [[samp_en:FireDAC.InterBase Arrays Sample|FireDAC.InterBase Arrays]].&lt;br /&gt;
* [[lib_de:FireDAC.Phys.IBWrapper.TIBRestoreOptions|TIBRestoreOptions.roReplace]] ersetzt {{Code|TIBRestoreOptions.roCreate}}.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu Informix (FireDAC)|Informix]]===&lt;br /&gt;
&lt;br /&gt;
* Die Klasse [[lib_de:FireDAC.Phys.Infx.TFDInfxError|TFDInfxError]] implementiert die Unterstützung für die Rückgabe des ISAM-Fehlercodes.&lt;br /&gt;
* Neue [[Herstellen einer Verbindung zu Informix (FireDAC)#Verbindungsdefinitionsparameter|Verbindungsdefinitionsparameter]]: {{code|[https://www-01.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.sqls.doc/ids_sqs_2038.htm%23ids_sqs_2038 TxRetainLocks(EN)]}} und {{code|[https://www-304.ibm.com/support/knowledgecenter/SSGU8G_11.70.0/com.ibm.sqls.doc/ids_sqs_1165.htm TxLastCommitted(EN)]}}.&lt;br /&gt;
* Unterstützung für pessimistisches Sperren.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu ODBC-Datenquellen (FireDAC)|ODBC]]===&lt;br /&gt;
&lt;br /&gt;
* Neuer [[Herstellen einer Verbindung zu ODBC-Datenquellen (FireDAC)#Verbindungsdefinitionsparameter|Verbindungsdefinitionsparameter]]: {{code|ODBCVersion}} = {{code|3.8}} | {{code|3.0}}, der zur Festlegung der [https://msdn.microsoft.com/en-us/library/ee388580%28v=vs.85%29.aspx Behavior-Version (EN)] des ODBC-Treibermanagers verwendet wird. Setzen Sie den Parameterwert auf {{code|3.8}}, wenn Ihre Anwendung BLOB-Ausgabeparameter verwendet und der ODBC-Treiber die Behavior-Version {{code|3.8}} unterstützt.&lt;br /&gt;
* Unterstützung für [[Datentypzuordnung (FireDAC)|Datentypzuordnungen]] mit [[lib_de:FireDAC.Stan.Option.TFDMapRule.TypeMask|Datentypnamen]].&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu Oracle Server (FireDAC)|Oracle]]===&lt;br /&gt;
&lt;br /&gt;
* Für Oracle 10g und höher:&lt;br /&gt;
** Unterstützung für [http://docs.oracle.com/cd/B28359_01/appdev.111/b28395/oci10new.htm#CJGHFEDD Benachrichtigungen über Abfrageänderungen (EN)] in [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]]. Weitere Informationen finden Sie in der neuen Demo {{Path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\Oracle\CQN}}.&lt;br /&gt;
* Für Oracle 11g und höher:&lt;br /&gt;
** Neue Komponente, [[lib_de:FireDAC.Phys.Oracle.TFDOracleAdmin|TFDOracleAdmin]] zum Verwalten einer Oracle-Datenbankinstanz.&lt;br /&gt;
** Unterstützung für 64-Bit- und vorzeichenlose 32-Bit-Integerwerte.&lt;br /&gt;
** Unterstützung für das [http://docs.oracle.com/cd/B28359_01/appdev.111/b28395/oci10new.htm#CHDDIGCG implizite Abrufen der ROWID (EN)]. ROWID ist implizit in der SELECT-Liste {{Code|SELECT … FOR UPDATE}} enthalten, um das [[Eindeutige Kennzeichnungsfelder (FireDAC)#Kennzeichnungsspalten für Zeilen|effektive Bearbeiten von Datenmengen]] zu ermöglichen.&lt;br /&gt;
** Unterstützung für Netzwerk-Timeouts. Neue [[Herstellen einer Verbindung zu Oracle Server (FireDAC)#Verbindungsdefinitionsparameter|Verbindungsdefinitionsparameter]]: {{Code|ReadTimeout}} und {{Code|WriteTimeout}}.&lt;br /&gt;
* Für Oracle 12c und höher:&lt;br /&gt;
** Unterstützung für die 32K-Datentypen VARCHAR2, NVARCHAR2 und RAW.&lt;br /&gt;
** Unterstützung für native boolesche Werte in PL/SQL.&lt;br /&gt;
** Unterstützung für [https://docs.oracle.com/database/121/SQLRF/statements_7002.htm#SQLRF55655 Identitätsspalten (EN)], die als [[Auto-Inkrementierungsfelder (FireDAC)|Auto-Inkrementierungsfelder]] erkannt werden.&lt;br /&gt;
** Unterstützung für [https://docs.oracle.com/database/121/LNOCI/oci10new.htm#LNOCI73008 implizite Ergebnisse (EN)]. Mit [[lib_de:FireDAC.Comp.Client.TFDAdaptedDataSet.NextRecordSet|NextRecordSet]] können Sie diese verarbeiten.&lt;br /&gt;
** Verbesserte Erkennung und Synchronisierung des [[lib_de:FireDAC.Comp.Client.TFDCustomConnection.InTransaction|Transaktionsstatus]].&lt;br /&gt;
** Unterstützung für neue Authentifizierungsmodi im [[Herstellen einer Verbindung zu Oracle Server (FireDAC)#Verbindungsdefinitionsparameter|Verbindungsdefinitionsparameter]] {{Code|AuthMode}}: {{Code|SYSASM}}, {{Code|SYSBACKUP}}, {{Code|SYSDG}} und {{Code|SYSKM}}.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu PostgreSQL (FireDAC)|PostgreSQL]]===&lt;br /&gt;
&lt;br /&gt;
* Für PostgreSQL 9.2 und höher:&lt;br /&gt;
** Unterstützung für den Datentyp [[JSON|JSON]]&lt;br /&gt;
** Unterstützung für [http://www.postgresql.org/docs/current/static/rangetypes.html Bereichstypen (EN)].&lt;br /&gt;
* Für PostgreSQL 9.3 und später:&lt;br /&gt;
** Unterstützung zur Identifizierung von Objektfehlerfeldern. Zu diesem Zweck wurden [[lib_de:FireDAC.Phys.PGWrapper.TFDPgError|FireDAC.Phys.PGWrapper.TFDPgError]] die folgenden Eigenschaften hinzugefügt:&lt;br /&gt;
*** [[lib_de:FireDAC.Phys.PGWrapper.TFDPgError.SchemaName|SchemaName]]: Enthält den Namen des Schemas, das das dem Fehler zugeordnete Datenbankobjekt enthält. &lt;br /&gt;
*** [[lib_de:FireDAC.Phys.PGWrapper.TFDPgError.TableName|TableName]]: Enthält den Namen der Tabelle, die dem Fehler zugeordnet ist. &lt;br /&gt;
*** [[lib_de:FireDAC.Phys.PGWrapper.TFDPgError.ColumnName|ColumnName]]: Enthält den Namen der Spalte, die dem Fehler zugeordnet ist. &lt;br /&gt;
*** [[lib_de:FireDAC.Phys.PGWrapper.TFDPgError.TypeName|TypeName]]: Enthält den Namen des Datentyps, der dem Fehler zugeordnet ist. &lt;br /&gt;
*** [[lib_de:FireDAC.Phys.PGWrapper.TFDPgError.ConstraintName|ConstraintName]]: Enthält den Namen der Einschränkung, die dem Fehler zugeordnet ist. &lt;br /&gt;
* Für PostgreSQL 9.4 und höher:&lt;br /&gt;
** Unterstützung für den Datentyp [http://www.postgresql.org/docs/current/static/datatype-json.html JSONB (EN)].&lt;br /&gt;
* Unterstützung für PostgreSQL-Client- und -Server-Version 9.5.&lt;br /&gt;
* Verbesserte Unterstützung für eingeschränkte Arrays:&lt;br /&gt;
** Neuer [[Herstellen einer Verbindung zu PostgreSQL (FireDAC)#Verbindungsdefinitionsparameter|Verbindungsdefinitionsparameter]], {{code|ArrayScanSample}}, mit dem ermittelt wird, ob Arrays {{code|[[lib_de:Data.DB.TFieldType|ftArray]]}} oder {{code|[[lib_de:Data.DB.TFieldType|ftDataSet]]}} zugeordnet sind.&lt;br /&gt;
** Mit der Eigenschaft &amp;lt;code&amp;gt;[[lib_de:FireDAC.Stan.Param.TFDParam.ArrayType|TFDParam.ArrayType]]=atTable&amp;lt;/code&amp;gt; können Sie Arrays an den Server senden. &lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu SQLite-Datenbanken (FireDAC)|SQLite]]===&lt;br /&gt;
&lt;br /&gt;
* SQLite-Binärdateien wurden auf Version 3.9.2 aktualisiert.&lt;br /&gt;
* Für SQLite v3.8.9 und später:&lt;br /&gt;
** Unterstützung erweiterter Infos zu Indexspalten, einschließlich Infos darüber, ob sie absteigend oder aufsteigend verlaufen oder ob sie Basisspalten oder Ausdrucksspalten sind.&lt;br /&gt;
** Unterstützung für Ausdrucksindizes.&lt;br /&gt;
* Für OS X:&lt;br /&gt;
** Vorerzeugte, optimierte Client-Bibliothek. Sie sollten {{Path|libcgsqlite3.dylib}} bereitstellen, wenn Sie Anwendungen für OS X erstellen, die FireDAC und SQLite verwenden.&lt;br /&gt;
** Unterstützung für statisches Linken mit {{Path|libcgsqlite3.dylib}}.&lt;br /&gt;
** Unterstützung für Verschlüsselung.&lt;br /&gt;
&lt;br /&gt;
===Weitere FireDAC-Änderungen===&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FireDAC.Comp.DataSet.TFDDataSet.Reconcile|TFDDataSet.Reconcile]] trägt standardmäßig keine konsolidierten Änderungen mehr ein. Wenn Sie {{True}} an {{Code|TFDDataSet.Reconcile}} übergeben, werden konsolidierte Änderungen allerdings immer eingetragen, auch wenn [[lib_de:FireDAC.Comp.DataSet.TFDDataSet.UpdateOptions|UpdateOptions]].[[lib_de:FireDAC.Stan.Option.TFDUpdateOptions.AutoCommitUpdates|AutoCommitUpdates]] {{False}} ist.&lt;br /&gt;
* Der Typ von [[lib_de:FireDAC.Stan.Intf.TFDVersion|TFDVersion]] wurde von [[lib_de:System.Int64|Int64]] in [[lib_de:System.UInt64|UInt64]] geändert.&lt;br /&gt;
* Die Units [[lib_de:FireDAC.Phys.ODBCBase|FireDAC.Phys.ODBCBase]] und [[lib_de:FireDAC.Phys.ODBCWrapper|FireDAC.Phys.ODBCWrapper]] wurden aus dem Package {{path|FireDACODBCDriver{{PackageVersion|Berlin}}.bpl}} in das Package {{path|FireDACCommonODBC{{PackageVersion|Berlin}}.bpl}} verschoben.&lt;br /&gt;
* Sie können eine [[lib_de:FireDAC.Stan.Intf.TFDMergeOptions|Gruppe von Zusammenführungsoptionen]] in Aufrufen von [[lib_de:FireDAC.Comp.DataSet.TFDDataSet.MergeDataSet|TFDDataSet.MergeDataSet]] festlegen.&lt;br /&gt;
&lt;br /&gt;
==[[Entwickeln von Cloud-Anwendungen|Cloud-Dienst]]==&lt;br /&gt;
&lt;br /&gt;
===Amazon===&lt;br /&gt;
&lt;br /&gt;
[[lib_de:Data.Cloud.AmazonAPI|AmazonAPI]] wird jetzt für folgende Aktionen unterstützt:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:Data.Cloud.AmazonAPI.TAmazonQueueService.PurgeQueue|Löschen aller Nachrichten]] in einer Queue.&lt;br /&gt;
* Verwalten des [http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html Lebenszyklus (EN)] der Objekte in einem Speicher mithilfe von [[lib_de:Data.Cloud.AmazonAPI.TAmazonStorageService.GetBucketLifecycleXML|GetBucketLifecycleXML]], [[lib_de:Data.Cloud.AmazonAPI.TAmazonStorageService.SetBucketLifecycle|SetBucketLifecycle]] und [[lib_de:Data.Cloud.AmazonAPI.TAmazonStorageService.DeleteBucketLifecycle|DeleteBucketLifecycle]].&lt;br /&gt;
&lt;br /&gt;
===Azure===&lt;br /&gt;
&lt;br /&gt;
*[[lib_de:Data.Cloud.AzureAPI|AzureAPI]] unterstützt jetzt die folgenden API-Versionen:&lt;br /&gt;
** Microsoft Azure Blob Service: {{Code|API Version 21.02.2015}}&lt;br /&gt;
** Microsoft Azure Table Service: {{Code|API Version 21.02.2015}}&lt;br /&gt;
** Microsoft Azure Queue Service: {{Code|API Version 21.02.2015}}&lt;br /&gt;
* Unterstützung für Append-Blobs:&lt;br /&gt;
** Jetzt können Sie [[lib_de:Data.Cloud.AzureAPI.TAzureBlobService.PutAppendBlob|Append-Blobs erstellen]].&lt;br /&gt;
**Sie können den vorhandenen Append-Blobs [[lib_de:Data.Cloud.AzureAPI.TAzureBlobService.AppendBlock|Daten hinzufügen]].&lt;br /&gt;
* Verbesserte Unterstützung für Zugriffsrichtlinien:&lt;br /&gt;
** Unterstützung für Zugriffsrichtlinien in Bezug auf [[lib_de:Data.Cloud.AzureAPI.TAzureQueueService.GetQueueACL|Warteschlangen]] und [[lib_de:Data.Cloud.AzureAPI.TAzureTableService.GetTableACL|Tabellen]] hinzugefügt.&lt;br /&gt;
** [[lib_de:Data.Cloud.AzureAPI.TPolicy|TPolicy]] und ihre Unterklassen ([[lib_de:Data.Cloud.AzureAPI.TBlobPolicy|TBlobPolicy]], [[lib_de:Data.Cloud.AzureAPI.TQueuePolicy|TQueuePolicy]], [[lib_de:Data.Cloud.AzureAPI.TTablePolicy|TTablePolicy]]) ersetzen [[lib_de:Data.Cloud.AzureAPI.TAccessPolicy|TAccessPolicy]], die jetzt veraltet ist.&lt;br /&gt;
* Verbesserte Leasing-Unterstützug für Blobs und Blob-Container:&lt;br /&gt;
** Unterstützung für [[lib_de:Data.Cloud.AzureAPI.TAzureBlobService.AcquireContainerLease|Leasing-Container]] und weitere Operationen in Zusammenhang mit Container-Leasing hinzugefügt.&lt;br /&gt;
** Jetzt können Sie [[lib_de:Data.Cloud.AzureAPI.TAzureBlobService.ChangeBlobLease|den Bezeichner eines Blob-Leasing ändern]].&lt;br /&gt;
** Sie können außerdem einen Bezeichner für das neue Leasing vorschlagen, wenn Sie ein [[lib_de:Data.Cloud.AzureAPI.TAzureBlobService.AcquireBlobLease|Blob mit einem Leasing belegen]].&lt;br /&gt;
* Diensteigenschaften und Statistiken:&lt;br /&gt;
** Unterstützung für Eigenschaften des [[lib_de:Data.Cloud.AzureAPI.TAzureBlobService.GetBlobServiceProperties|Blob-Diensts]], [[lib_de:Data.Cloud.AzureAPI.TAzureQueueService.GetQueueServiceProperties|Warteschlangendiensts]] und [[lib_de:Data.Cloud.AzureAPI.TAzureTableService.GetTableServiceProperties|Tabellendiensts]] hinzugefügt.&lt;br /&gt;
** Unterstützung für Statistiken des [[lib_de:Data.Cloud.AzureAPI.TAzureBlobService.GetBlobServiceStats|Blob-Diensts]], des [[lib_de:Data.Cloud.AzureAPI.TAzureQueueService.GetQueueServiceStats|Warteschlangendiensts]] und des [[lib_de:Data.Cloud.AzureAPI.TAzureTableService.GetTableServiceStats|Tabellendiensts]] hinzugefügt.&lt;br /&gt;
* Die Azure-Dienste stellen eine neue Eigenschaft bereit, [[lib_de:Data.Cloud.AzureAPI.TAzureService.Timeout|Timeout]], mit der Sie das Timeout für Ihre Anforderungen festlegen können.&lt;br /&gt;
&lt;br /&gt;
==[[REST-Clientbibliothek|REST-Clientbibliothek]]==&lt;br /&gt;
&lt;br /&gt;
* Die Unit {{Path|REST.Exception}} ist jetzt veraltet. Die Klassen dieser Unit gehören nun zur Unit [[lib_de:REST.Types|REST.Types]].&lt;br /&gt;
&lt;br /&gt;
==[[LiveBindings in RAD Studio|LiveBindings]]==&lt;br /&gt;
&lt;br /&gt;
* Auswertungs-Tastenkürzel sind ein neues, standardmäßig aktiviertes Feature von einigen Bindungskomponenten, das die Leistung von LiveBindings beim Füllen von Listen- oder Tabellensteuerelementen mit einfachen Bindungsausdrücken verbessert. Siehe [[LiveBindings in RAD Studio#Verwenden von Auswertungs-Tastenkürzel|Verwenden von Auswertungs-Tastenkürzel]].&lt;br /&gt;
* Die Klasse [[lib_de:System.Bindings.Outputs.TConverterUtils|TConverterUtils]] aus [[lib_de:System.Bindings.Outputs|System.Bindings.Outputs]] ist jetzt public. [[lib_de:System.Bindings.Outputs.TConverterUtils|TConverterUtils]] stellt eine Reihe von Hilfsmethoden zum Zuweisen eines Wertetyps zu einem anderen Wertetyp und zum Umwandeln eines Wertetyps in einen anderen Wertetyp bereit.&lt;br /&gt;
&lt;br /&gt;
==Konnektivitäts-Framework für ThingConnect IoT==&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis&#039;&#039;&#039;: ThingConnect-Komponenten können separate mit dem &#039;&#039;&#039;[[GetIt-Package-Manager|GetIt-Package-Manager]]&#039;&#039;&#039; heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Iot:ThingConnect|ThingConnect]]&#039;&#039;&#039; verwandelt Standard- und benutzerdefinierte intelligente Geräte, Sensoren und Wearables für das Internet der Dinge (Internet of Things, IoT) in einfach zu verwendende API-Komponenten. Weitere Informationen finden Sie in der [[Iot:ThingConnect|ThingConnect-Dokumentation]].&lt;br /&gt;
&lt;br /&gt;
==BeaconFence==&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis&#039;&#039;&#039;: BeaconFence kann separat mit dem &#039;&#039;&#039;[[GetIt-Package-Manager|GetIt-Package-Manager]]&#039;&#039;&#039; heruntergeladen werden. Installationsanweisungen für BeaconFence finden Sie auf [http://docwiki.embarcadero.com/IoT/en/Installing_BeaconFence dieser Seite].&lt;br /&gt;
&lt;br /&gt;
Wir haben [[Iot:BeaconFence|BeaconFence]] in {{Product|Berlin}} {{Version|Berlin}} neue Features hinzugefügt. Zu den Verbesserungen von BeaconFence zählen:&lt;br /&gt;
&lt;br /&gt;
* Zonenerkennung mit {{code|Position}} oder {{code|PositionInPath}}.&lt;br /&gt;
* Beacon-Unterstützung auf der Windows-Plattform.&lt;br /&gt;
* Anpassungsfunktion der aktuellen Position.&lt;br /&gt;
* Unterstützung für [[#Unterstützung des Eddystone-Beacon-Formats|Eddystone-Beacons]].&lt;br /&gt;
* Verbesserte Berechnungsleistung.&lt;br /&gt;
* Neue Funktionalität zum Zeichnen. &lt;br /&gt;
* Zwei neue Eigenschaften wurden für den Zugriff auf die zuletzt berechneten Positionen hinzugefügt:&lt;br /&gt;
** {{code|LastRawPosition}}&lt;br /&gt;
** {{code|LastPathPosition}}&lt;br /&gt;
* Neues Feature zum programmseitigen Aktivieren/Deaktivieren von Beacons. Die Eigenschaft {{code|UseToPositioning}} gibt an, ob der Beacon für die Berechnung der Position verwendet wird oder nicht.&lt;br /&gt;
&lt;br /&gt;
==[[RTL|RTL]]==&lt;br /&gt;
&lt;br /&gt;
===Bluetooth LE- und Beacon-Unterstützung in Windows 10===&lt;br /&gt;
&lt;br /&gt;
{{Product|Berlin}} {{Version|Berlin}} enthält die neue WinRT Bluetooth-API zur Unterstützung von [[Verwenden von Bluetooth Low Energy|Bluetooth Low Energy]] und [[Verwenden von Beacons|Beacons]] auf der Windows 10-Plattform. Sie können jetzt Anwendungen auf Windows 10 ausführen, die Folgendes ermöglichen:&lt;br /&gt;
&lt;br /&gt;
* Nach BLE-Geräten suchen, die Daten bekanntgeben.&lt;br /&gt;
* BLE-Bekanntgabedaten senden und empfangen.&lt;br /&gt;
* Benutzerdefinierte BLE-Bekanntgabedaten über die [[lib_de:System.Bluetooth.TBluetoothLEAdvertiseData.ManufacturerSpecificData|herstellerspezifischen Daten]] senden.&lt;br /&gt;
* Beacons mit [https://developer.apple.com/ibeacon/ iBeacon (EN)]- und [http://altbeacon.org/ AltBeacon (EN)]-Formaten verwenden.&lt;br /&gt;
&lt;br /&gt;
===Verbesserte Bluetooth LE-Ermittlungsleistung===&lt;br /&gt;
&lt;br /&gt;
Die RTL stellt jetzt eine neue Implementierung des [[Verwenden von Bluetooth Low Energy|BLE]]-Suchfilters bereit, der die neuen BLE-Chips mit geringem Energieverbrauch nutzt.&lt;br /&gt;
&lt;br /&gt;
Sie können jetzt nach bestimmten BLE-Geräten suchen, indem Sie unabhängige, angepasste Suchfilter verwenden. Dazu können Sie:&lt;br /&gt;
&lt;br /&gt;
*Ihren Filter als einen [[lib_de:System.Bluetooth.TBluetoothLEScanFilter|TBluetoothLEScanFilter]] erstellen.&lt;br /&gt;
*Die [[lib_de:System.Bluetooth.TBluetoothLEScanFilter Properties|Felder]] angeben, nach denen Ihre Geräte gefiltert werden sollen.&lt;br /&gt;
**Optional können Sie für Geräte, die [[lib_de:System.Bluetooth.TBluetoothLEAdvertiseData.ManufacturerSpecificData|ManufacturerSpecificData (herstellerspezifische Daten)]] wie z. B. [[Verwenden von Beacons#Beacon-Typen|AltBeacons und iBeacons]] nutzen, mit der Hilfsklasse [[lib_de:System.Beacon.TBeaconManufacturerDataHelper|TBeaconManufacturerDataHelper]] nach diesen Daten filtern. Übergeben Sie dann den [[lib_de:System.Beacon.TBeaconManufacturerDataHelper|TBeaconManufacturerDataHelper]]-Inhalt an den Filter.&lt;br /&gt;
&lt;br /&gt;
*Zum Schluss fügen Sie den Filter der [[lib_de:System.Bluetooth.TBluetoothLEScanFilterList|Filterliste]] hinzu und starten mithilfe der neuen Implementierung von [[lib_de:System.Bluetooth.TBluetoothLEManager.StartDiscovery|StartDiscovery]] die Ermittlung von Geräten.&lt;br /&gt;
&lt;br /&gt;
===Bluetooth LE enthält neue Ereignisse zum Behandeln von Abonnements für Merkmale===&lt;br /&gt;
&lt;br /&gt;
Die Komponente [[lib_de:System.Bluetooth.Components.TBluetoothLE|TBluetoothLE]] stellt zwei neue Ereignisse zum Behandeln von Abonnements für GATT-Server-Merkmale bereit: &lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Bluetooth.Components.TBluetoothLE.OnCharacteristicSubscribed|OnCharacteristicSubscribed]] wird ausgelöst, wenn ein Remote-Gerät ein GATT-Server-Merkmal [[lib_de:System.Bluetooth.Components.TBluetoothLE.SubscribeToCharacteristic|abonniert]].&lt;br /&gt;
* [[lib_de:System.Bluetooth.Components.TBluetoothLE.OnCharacteristicUnSubscribed|OnCharacteristicUnSubscribed]] wird ausgelöst, wenn ein Remote-Gerät das Abonnement eines GATT-Server-Merkmals [[lib_de:System.Bluetooth.Components.TBluetoothLE.UnSubscribeToCharacteristic|aufhebt]].&lt;br /&gt;
&lt;br /&gt;
Die bereits vorhandenen Ereignisse [[lib_de:System.Bluetooth.Components.TBluetoothLE.OnConnect|OnConnect]] und [[lib_de:System.Bluetooth.Components.TBluetoothLE.OnDisconnect|OnDisconnect]] wurden jetzt in die Komponente [[lib_de:System.Bluetooth.Components.TBluetoothLE|TBluetoothLE]] aufgenommen:&lt;br /&gt;
&lt;br /&gt;
* Das Ereignis [[lib_de:System.Bluetooth.Components.TBluetoothLE.OnConnect|OnConnect]] wird ausgelöst, wenn Sie eine Verbindung zu einem Remote-Gerät des GATT-Servers herstellen. &lt;br /&gt;
* Das Ereignis [[lib_de:System.Bluetooth.Components.TBluetoothLE.OnDisconnect|OnDisconnect]] wird ausgelöst, wenn Sie die Verbindung zu einem Remote-Gerät des GATT-Servers trennen.&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für das Eddystone Beacon-Format===&lt;br /&gt;
&lt;br /&gt;
Die RTL fügt Unterstützung für die Verwendung von [[Verwenden von Beacons|Beacons]] mit dem [https://github.com/google/eddystone/blob/master/protocol-specification.md Eddystone (EN)]-Format hinzu. Es gibt drei mögliche [[Verwenden von Beacons#Beacon-Typen|Typen]]:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Beacon.TEddystoneUID|EddystoneUID]]: Der Beacon sendet einen Bezeichner, der aus einem [[lib_de:System.Beacon.TEddystoneUID.Namespace|Namespace]] und einer Instanz ([[lib_de:System.Beacon.TEddystoneUID.Instance|Instance]]) besteht. &lt;br /&gt;
* [[lib_de:System.Beacon.TEddystoneURL|EddystoneURL]]: Der Beacon sendet einen [[lib_de:System.Beacon.TEddystoneURL.URL|URL]] in einem komprimierten Format.&lt;br /&gt;
* [[lib_de:System.Beacon.TEddystoneTLM|EddystoneTLM]]: Der Beacon sendet [[lib_de:System.Beacon.TEddystoneTLM Fields|Telemetrieninformationen]] im Zusammenhang mit dem Status des Beacons.&lt;br /&gt;
&lt;br /&gt;
===Verbesserte Beacon-Suchleistung===&lt;br /&gt;
&lt;br /&gt;
Durch Hinzufügen [[#Verbesserte Bluetooth LE-Ermittlungsleistung|neuer BLE-Suchfilter]] wurde das Beacon-Framework verbessert und bietet folgende Aktionen:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Beacon.TBeaconManager.StartScan|Suche]] nach beliebigen [[lib_de:System.Beacon.TKindofBeacon|Beacontypen]] zur gleichen Zeit.&lt;br /&gt;
* Suche nach nicht registrierten Beacons. &lt;br /&gt;
&lt;br /&gt;
Sie müssen jetzt einen zu überwachenden Beacon nicht registrieren. Stattdessen können Sie:&lt;br /&gt;
&lt;br /&gt;
* Auf Ihrem [[lib_de:System.Beacon.Components.TBeacon|TBeacon]]-Gerät den [[lib_de:System.Beacon.TBeaconScanMode|Extended]]-Modus festlegen.&lt;br /&gt;
* Die zu überwachenden nicht registrierten Beacons in der Eigenschaft [[lib_de:System.Beacon.Components.TCustomBeacon.ModeExtended|ModeExtended]] angeben.&lt;br /&gt;
* Die neue Methode [[lib_de:System.Beacon.TBeaconManager.StartScan|StartScan]] zum Suchen der angegebenen Beacons verwenden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Der letzte Punkt ermöglicht die simultane Suche nach Beacons verschiedener [[lib_de:System.Beacon.TKindofBeacon|Arten]].&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Verwenden von Beacons#Registrieren der zu überwachenden Bereiche|Registrieren von Beacons]] und [[Verwenden von Beacons#Starten und Beenden der Überwachung von Beacons|Suchen nach Beacons]].&lt;br /&gt;
&lt;br /&gt;
===Die Komponente TBeaconDevice unterstützt das Format Eddystone-Beacon===&lt;br /&gt;
&lt;br /&gt;
Durch Hinzufügen der [[#Unterstützung für das Eddystone Beacon-Format|Eddystone-Beacons]] wurde die Unterstützung für dieses Format in der Komponente [[lib_de:System.Beacon.Components.TBeaconDevice|TBeaconDevice]] ermöglicht.&lt;br /&gt;
&lt;br /&gt;
Mit [[lib_de:System.Beacon.Components.TBeaconDevice|TBeaconDevice]] können Sie jetzt Anwendungen auf Ihrem BLE-Gerät ausführen, die Näherungsdaten mit den [https://github.com/google/eddystone/blob/master/protocol-specification.md Spezifikationen (EN)] eines Eddystone-Beacons bekanntgeben. &lt;br /&gt;
&lt;br /&gt;
Sie können die Formate [[lib_de:System.Beacon.TEddystoneUID|EddystoneUID]] und [[lib_de:System.Beacon.TEddystoneURL|EddystoneURL]] über die Eigenschaft [[lib_de:System.Beacon.Components.TCustomBeaconDevice.BeaconType|BeaconType]] auswählen.&lt;br /&gt;
&lt;br /&gt;
Plattformunterstützung:&lt;br /&gt;
&lt;br /&gt;
* Auf &#039;&#039;&#039;Android&#039;&#039;&#039;-Geräten können Sie das Eddystone-Format mit Version 5.0 oder höher bekanntgeben.&lt;br /&gt;
* Auf &#039;&#039;&#039;iOS&#039;&#039;&#039;-Geräten können nur iBeacon-Frames bekanntgegeben werden.&lt;br /&gt;
* &#039;&#039;&#039;Windows&#039;&#039;&#039;-Geräte lassen das Eddystone-Format nicht zu, da mit der WinRT-API für BLE die bekanntgegebenen [[lib_de:System.Bluetooth.TBluetoothLEAdvertiseData.ServiceData|ServiceData]] nicht angepasst werden können.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen bei App-Tethering===&lt;br /&gt;
&lt;br /&gt;
Zu [[Verwenden von App-Tethering|App-Tethering]] wurden die folgenden Features hinzugefügt:&lt;br /&gt;
&lt;br /&gt;
* Zwei neue [[lib_de:System.Tether.NetworkAdapter.TTetheringNetworkAdapterCommon|Netzwerk-Adapter]], die die Unterstützung von [[Wikipedia:IP multicast|Multicast (EN)]] für [[Wikipedia:IPv4|IPv4]] und [[Wikipedia:IPv6|IPv6]] bereitstellen. Sie können [[Verbinden zu Remote-Anwendungen mithilfe von App-Tethering#Konfigurieren Ihrer Adapter|Ihren Manager für deren Verwendung konfigurieren]].&lt;br /&gt;
* Sie können einen Bereich von IPv4-Adressen als Ziel der [[lib_de:System.Tether.Manager.TTetheringManager.DiscoverManagers|Ermittlung von Remote-Managern]] festlegen.&lt;br /&gt;
* Unterstützung für [[lib_de:System.Tether.Manager.TTetheringAdapter|Protokollfilterung]]. Sie können die Protokollierung für bestimmte Elemente der App-Tethering-Architektur [[lib_de:System.Tether.Manager.TTetheringAdapter.AddLogItem|aktivieren]] oder [[lib_de:System.Tether.Manager.TTetheringAdapter.RemoveLogItem|deaktivieren]].&lt;br /&gt;
*[[lib_de:System.Tether.Manager.TTetheringProfile|Profile]] können jetzt steuern, ob Verbindungsanforderungen von Remote-Profilen zulässig sind oder nicht. Daher wurde:&lt;br /&gt;
** Das Ereignis {{Code|TTetheringProfile.OnConnectProfile}} in [[lib_de:System.Tether.Manager.TTetheringProfile.OnBeforeConnectProfile|OnBeforeConnectProfile]] und [[lib_de:System.Tether.Manager.TTetheringProfile.OnAfterConnectProfile|OnAfterConnectProfile]] unterteilt.&lt;br /&gt;
** Der Ereignistyp {{Code|TTetheringDisconnectEvent}} in [[lib_de:System.Tether.Manager.TTetheringProfileEvent|TTetheringProfileEvent]] umbenannt.&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für asynchrone HTTP-Anforderungen===&lt;br /&gt;
&lt;br /&gt;
Sie können jetzt HTTP-Anforderungen asynchron senden, sodass die Ausführung Ihrer Anwendung während eines Downloads nicht angehalten wird.&lt;br /&gt;
&lt;br /&gt;
Informationen zur Verwendung der HTTP-Client-Komponenten finden Sie unter [[Verwenden eines HTTP-Clients#Asynchrones Ausführen von Anforderungen|Asynchrones Ausführen von Anforderungen]]. Informationen zur Verwendung der HTTP-Client-API finden Sie unter [[lib_de:System.Net.HttpClient.THTTPClient|THTTPClient]].&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für verschlüsselte ZIP-Dateien===&lt;br /&gt;
&lt;br /&gt;
[[lib_de:System.Zip.TZipFile|TZipFile]] stellt ein [[lib_de:System.Zip.TZipFile.OnCreateDecompressStream|Ereignis]] (oder eine [[lib_de:System.Zip.TZipFile.CreateDecompressStreamCallBack|Callback-Funktion]]) zur Verfügung, die Sie beim [[lib_de:System.Zip.TZipFile.Extract|Extrahieren von verschlüsselten ZIP-Dateien]], wie z. B. passwortgeschützten ZIP-Dateien, zum Dekomprimieren nutzen können.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen von String-Listen===&lt;br /&gt;
&lt;br /&gt;
[[lib_de:System.Classes.TStrings|TStrings]] und Unterklassen wie [[lib_de:System.Classes.TStringList|TStringList]] enthalten nun folgende Features:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.AddPair|AddPair]] zum Hinzufügen von Schlüssel/Wertepaaren zu der String-Liste mit dem [[Wikipedia:Fluent interface|sprechenden Programmierstil]].&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.KeyNames|KeyNames]] zum Abrufen einer Liste mit Schlüsseln aus einer String-Liste, die Schlüssel/Wertepaare enthält.&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.Options|Options]] zum einfachen Steuern vieler boolescher Eigenschaften in der String-Liste.&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.SetStrings|SetStrings]], um die Strings aus einem anderen [[lib_de:System.Classes.TStrings|TStrings]]-Objekt zu kopieren. Die Prozedur entspricht [[lib_de:System.Classes.TStrings.Assign|Assign]], jedoch ohne mehrere Eigenschaften zu kopieren wie [[lib_de:System.Classes.TStrings.Assign|Assign]].&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.TrailingLineBreak|TrailingLineBreak]]; die Eigenschaft bestimmt, ob die Eigenschaft [[lib_de:System.Classes.TStrings.Text|Text]] nach der letzten Zeile einen Zeilenumbruch enthalten muss oder nicht.&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.Updating|Updating]]; die Eigenschaft gibt an, ob sich die String-Liste mitten in einer [[lib_de:System.Classes.TStrings.BeginUpdate|Aktualisierung]] befindet oder nicht.&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.UseLocale|UseLocale]]; die Eigenschaft legt die Implementierung fest, die die String-Liste zum Vergleichen der Strings verwenden muss.&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.ExtractName|ExtractName]] erhielt ein neues Feld ({{code|AllNames}}), das die Rückgabe von [[lib_de:System.Classes.TStrings.ExtractName|ExtractName]] festlegt, wenn der zu analysierende String kein Schlüssel/Wertepaar ist.&lt;br /&gt;
&lt;br /&gt;
{{Code|TStringList}} erhält zudem neue [[lib_de:System.Classes.TStringList.Create|überladene Konstruktoren]] zum Vereinfachen der Erstellung von initialisierten Instanzen von {{Code|TStringList}}.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen von TMemIniFile===&lt;br /&gt;
&lt;br /&gt;
[[lib_de:System.IniFiles.TMemIniFile|TMemIniFile]] hat folgende Features erhalten:&lt;br /&gt;
&lt;br /&gt;
* Sie können den Wert der Eigenschaft [[lib_de:System.IniFiles.TMemIniFile.CaseSensitive|CaseSensitive]] jetzt im Aufruf an den [[lib_de:System.IniFiles.TMemIniFile.Create|Konstruktor]] angeben.&lt;br /&gt;
* Die neue Eigenschaft [[lib_de:System.IniFiles.TMemIniFile.Modified|Modified]] gibt an, ob die INI-Datei geändert wurde, nachdem sie [[lib_de:System.IniFiles.TMemIniFile.Create|von der Festplatte geladen wurde]].&lt;br /&gt;
* Die neue Eigenschaft [[lib_de:System.IniFiles.TMemIniFile.AutoSave|AutoSave]] bestimmt, ob die Instanz von {{Code|TMemIniFile}} Änderungen auf der Festplatte [[lib_de:System.IniFiles.TMemIniFile.UpdateFile|speichern]] soll, wenn sie [[lib_de:System.IniFiles.TMemIniFile.Destroy|freigegeben]] wird.&lt;br /&gt;
&lt;br /&gt;
===Pufferunterstützung für TFileStream===&lt;br /&gt;
&lt;br /&gt;
{{Code|TFDFileStream}} wurde aus [[lib_de:FireDAC.Stan.Util|FireDAC.Stan.Util]] nach [[lib_de:System.Classes|System.Classes]] verschoben und in [[lib_de:System.Classes.TBufferedFileStream|TBufferedFileStream]] umbenannt.&lt;br /&gt;
&lt;br /&gt;
[[lib_de:System.Classes.TBufferedFileStream|TBufferedFileStream]] ist ein Nachkomme von [[lib_de:System.Classes.TFileStream|TFileStream]], der mehrfache, aufeinander folgende kleine Schreib- und Lesevorgänge optimiert. Mit anderen Worten: [[lib_de:System.Classes.TBufferedFileStream|TBufferedFileStream]] fügt [[lib_de:System.Classes.TFileStream|TFileStream]] Pufferunterstützung hinzu.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: [[lib_de:System.Classes.TBufferedFileStream|TBufferedFileStream]] stellt keine Leistungssteigerung für lange oder sich an zufälliger Position befindenden Lese- oder Schreibvorgänge bereit.&lt;br /&gt;
&lt;br /&gt;
===Geänderte Syntax für JSON-Pfade für den Zugriff auf Objekteigenschaften===&lt;br /&gt;
&lt;br /&gt;
Die unterstützte [[lib_de:System.JSON.TJSONPathParser|JSON-Pfadsyntax]] für den Zugriff auf Objekteigenschaften, die in ihren Namen Punkte enthalten, wurde in {{Version|Berlin}} geändert:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Syntaxbeispiel&lt;br /&gt;
! {{Version|Seattle}}&lt;br /&gt;
! {{Version|Berlin}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{Code|root.&amp;quot;child.name&amp;quot;}}&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{Code|root[&amp;quot;child.name&amp;quot;]}}&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{Code|root[&#039;child.name&#039;]}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Optimierung von regulären Ausdrücken und String-Ersetzung===&lt;br /&gt;
&lt;br /&gt;
Die Verwendung von [[rad_de:Reguläre Ausdrücke|regulären Ausdrücken]] wird jetzt durch Verkürzung der Ausführungszeit und Verbesserung der Arbeitsspeichernutzung optimiert.&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle enthält ein Beispiel für die beschleunigte Ausführungszeit bei Verwendung der optimierten regulären Ausdrücke auf Windows- und Android-Plattformen. Diese Beispiele wurden für eine einfache Analyse der regulären Ausdrücke (170 KB-Datei) berechnet.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Plattform&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Ausführungszeit (ms)&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Beschleunigung&lt;br /&gt;
|-&lt;br /&gt;
! Vorher&lt;br /&gt;
! Optimiert&lt;br /&gt;
|-&lt;br /&gt;
| Windows (Intel i7, Windows 7)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 5900&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; |  ~310x&lt;br /&gt;
|-&lt;br /&gt;
| Android (Motorola E(2nd gen), Android 5.0.2)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 47075&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 420&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | ~111x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Die Beschleunigungswerte in dieser Tabelle sind für dieses Beispiel spezifisch. Die Werte könnten je nach regulärem Ausdruck und Arbeitscomputer variieren.&lt;br /&gt;
&lt;br /&gt;
Eine sehr große Anzahl von Übereinstimmungen beeinflusst jetzt aufgrund der Optimierung die Auslastung des Arbeitsspeichers nicht wesentlich.&lt;br /&gt;
&lt;br /&gt;
Die Leistung der Funktion [[lib_de:System.SysUtils.StringReplace|StringReplace]] wurde auch verbessert.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für HTTP-Verbindungen===&lt;br /&gt;
&lt;br /&gt;
* Zwei neue Timeouts: {{code|ConnectionTimeout}} und {{code|ResponseTimeout}} für das HTTP-[[lib_de:System.Net.URLClient|Framework]] und die HTTP-[[lib_de:System.Net.HttpClientComponent|Komponente]].&lt;br /&gt;
&lt;br /&gt;
===Funktionen URLEncode / URLDecode===&lt;br /&gt;
&lt;br /&gt;
Die Funktionen zur URL-Codierung und -Decodierung wurden nach [[lib_de:System.NetEncoding|System.NetEncoding]] verschoben.&lt;br /&gt;
&lt;br /&gt;
Die Funktionen [[lib_de:System.Net.URLClient.TURI.URLEncode|System.Net.URLClient.TURI.URLEncode]] und [[lib_de:System.Net.URLClient.TURI.URLDecode|System.Net.URLClient.TURI.URLDecode]] sind jetzt veraltet. Verwenden Sie stattdessen [[lib_de:System.NetEncoding.TURLEncoding.URLDecode|System.NetEncoding.TURLEncoding.URLDecode]] und [[lib_de:System.NetEncoding.TURLEncoding.Encode|System.NetEncoding.TURLEncoding.Encode]].&lt;br /&gt;
&lt;br /&gt;
Die folgenden neuen Funktionen wurden [[lib_de:System.NetEncoding|System.NetEncoding]] hinzugefügt: &lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.NetEncoding.TURLEncoding.EncodePath|EncodePath]]&lt;br /&gt;
* [[lib_de:System.NetEncoding.TURLEncoding.EncodeAuth|EncodeAuth]]&lt;br /&gt;
* [[lib_de:System.NetEncoding.TURLEncoding.EncodeQuery|EncodeQuery]]&lt;br /&gt;
* [[lib_de:System.NetEncoding.TURLEncoding.EncodeForm|EncodeForm]]&lt;br /&gt;
&lt;br /&gt;
===Verwenden von [[lib_de:System.Messaging.TMessageBase|TMessageBase]] anstatt von [[lib_de:System.Messaging.TMessage|TMessage]] für C++-Projekte===&lt;br /&gt;
&lt;br /&gt;
Die Klasse [[lib_de:System.Messaging.TMessage|TMessage]] aus [[lib_de:System.Messaging|System.Messaging]] wurde in [[lib_de:System.Messaging.TMessageBase|TMessageBase]] umbenannt, um Mehrdeutigkeiten in C++-Projekten zu vermeiden, die andere Units mit eigener Meldungsbehandlung, wie [[lib_de:Winapi.Messages|Winapi.Messages]], einbeziehen.&lt;br /&gt;
&lt;br /&gt;
[[lib_de:System.Messaging.TMessage|TMessage]] verbleibt als Alias für [[lib_de:System.Messaging.TMessageBase|TMessageBase]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Zu den Typen TRect, TRectF, TPoint und TPointF hinzugefügte C++-Funktionen===&lt;br /&gt;
&lt;br /&gt;
Neue C++-Funktionen wurden [[lib_de:|System.Types]] hinzugefügt:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Types.TRect|TRect]]&lt;br /&gt;
* [[lib_de:System.Types.TRectF|TRectF]]&lt;br /&gt;
* [[lib_de:System.Types.TPointF|TPointF]]&lt;br /&gt;
* [[lib_de:System.Types.TPoint|TPoint]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Weitere RTL-Änderungen===&lt;br /&gt;
&lt;br /&gt;
* Die Ereignisse [[lib_de:System.Bluetooth.TBluetoothGattServer.OnConnectedDevice|OnConnectedDevice]] und [[lib_de:System.Bluetooth.TBluetoothGattServer.OnDisconnectDevice|OnDisconnectDevice]] von [[lib_de:System.Bluetooth.TBluetoothGattServer|TBluetoothGattServer]] werden nun von Android unterstützt.&lt;br /&gt;
* Die Stringtypen [[lib_de:System.UTF8String|UTF8String]] und [[lib_de:System.RawByteString|RawByteString]] werden jetzt auf iOS und Android unterstützt.&lt;br /&gt;
* Die [[Verwenden der Parallel Programming Library|Parallel Programming Library]] enthält jetzt einen neuen Record, [[lib_de:System.Threading.TThreadPoolStats|TThreadPoolStats]], den Sie für Diagnosezwecke zum Erfassen einer Momentaufnahme des internen Zustands eines [[lib_de:System.Threading.TThreadPool|Thread-Pools]] verwenden können.&lt;br /&gt;
* Die [[lib_de:System.Net.HttpClient.THTTPResponse Methods|Getter-Methoden von THTTPResponse]] sind jetzt als public deklariert, daher müssen Sie die Interfaces [[lib_de:System.Net.URLClient.IURLResponse|IURLResponse]] oder [[lib_de:System.Net.HttpClient.IHTTPResponse|IHTTPResponse]] dafür nicht mehr verwenden.&lt;br /&gt;
* Die Klasse {{Code|EOperationCanceled}} aus der Unit [[lib_de:System.Threading|System.Threading]] wurde in [[lib_de:System.SysUtils.EOperationCancelled|EOperationCancelled]] umbenannt und in die Unit [[lib_de:System.SysUtils|System.SysUtils]] verschoben.&lt;br /&gt;
* In der RTL wurde die Unit-Abhängigkeit {{Path|Winapi.ActiveX}} von der Unit {{Path|Winapi.Winrt}} entfernt.&lt;br /&gt;
* Die Prozedur [[lib_de:FMX.Dialogs.ShowMessage|ShowMessage]] ist jetzt unter iOS asynchron.&lt;br /&gt;
* Die Funktion [[lib_de:System.TimeSpan.TTimeSpan.ToString|ToString]] des Typs [[lib_de:System.TimeSpan.TTimeSpan|TTimeSpan]] ist jetzt public.&lt;br /&gt;
* [[lib_de:System.Net.HttpClient|HTTP Client]]-Unterstützung zur automatischen Dekomprimierung einer Antwort in der [[lib_de:System.Net.HttpClient.IHTTPResponse.ContentEncoding|Inhaltscodierung]] [[Wikipedia:gzip|gzip (EN)]].&lt;br /&gt;
* Der [[lib_de:System.ZLib.TZDecompressionStream.Create|TZDecompressionStream-Konstruktor]] hat den neuen Parameter {{code|OwnsStream}}. Damit wird angegeben, ob diese Klasse Eigentümer des Komprimierungs-Streams ist oder nicht.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Frameworks und Bibliotheken#Native APIs von Plattformen|Native APIs]]==&lt;br /&gt;
&lt;br /&gt;
* Die in der Unit {{Path|Androidapi.JNI.Bluetooth}} enthaltene [http://developer.android.com/intl/es/reference/android/bluetooth/le/package-summary.html Android Bluetooth LE-API] wurde mit neuen Klassen und Methoden entsprechend den Änderungen aktualisiert, die [http://developer.android.com/intl/es/sdk/api_diff/21/changes.html in API-Level 21 (EN)] für die Android-Plattform 5.0 oder höher eingeführt wurden.&lt;br /&gt;
* {{Product|Berlin}} enthält neue Units für [[Wikipedia:DirectX#DirectX 12|DirectX 12 (EN)]].&lt;br /&gt;
* Units für [[Wikipedia:Windows Runtime|WinRT]] sind jetzt einfacher zu verwenden.&lt;br /&gt;
&lt;br /&gt;
==[[Delphi-Toolkette|{{Delphi|Berlin}}-Compiler]]==&lt;br /&gt;
&lt;br /&gt;
===Verbesserte Leistung bei der Compilierung von Generics===&lt;br /&gt;
&lt;br /&gt;
An {{Delphi|Berlin}}-Compilern wurde eine Reihe von Änderungen für Generics vorgenommen, wodurch die folgenden Verbesserungen erzielt wurden:&lt;br /&gt;
&lt;br /&gt;
* Die Analyse von Generics erfolgt jetzt bis zu dreimal schneller.&lt;br /&gt;
* Die Leistung von [[DCC32|DCC32]], [[DCC64|DCC64]] und [[DCCOSX|DCCOSX]] beim Linken von Projekten, die Generics ausgiebig verwenden, wurde verbessert.&lt;br /&gt;
&lt;br /&gt;
===Attribute werden von allen Compilern unterstützt===&lt;br /&gt;
&lt;br /&gt;
Alle {{Delphi|Berlin}}-Compiler unterstützen jetzt die folgenden Attribute:&lt;br /&gt;
&lt;br /&gt;
* {{code|[[Compiler-Attribute#Unsafe|unsafe]]}}&lt;br /&gt;
* {{code|[[Compiler-Attribute#Volatile|volatile]]}}&lt;br /&gt;
* {{code|[[Compiler-Attribute#Weak|weak]]}}&lt;br /&gt;
&lt;br /&gt;
===Weitere Verbesserungen der {{Delphi|Berlin}}-Compiler===&lt;br /&gt;
&lt;br /&gt;
* Der für [[E2163 Zu viele bedingte Symbole (Delphi)|bedingte Symbole]] zugewiesene Speicherplatz wurde von 256 Byte auf 4096 Byte erweitert.&lt;br /&gt;
* Die Größe von [[lib_de:System.Extended|Extended]] beträgt nun aus Gründen der Kompatibilität mit [[BCCOSX|BCCOSX]] 16 Byte.&lt;br /&gt;
* Zur Durchsetzung der Sichtbarkeitssemantik können [[Unterstützende Klassen und Records (Delphi)|unterstützende Klassen und Records]] nicht auf private Member der Klassen oder Records zugreifen, die sie erweitern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Compiler für C++|Compiler für C++]]==&lt;br /&gt;
&lt;br /&gt;
===Aktualisierung von BCCAARM und BCCIOSARM===&lt;br /&gt;
&lt;br /&gt;
[[BCCAARM|BCCAARM]] und [[BCCIOSARM|BCCIOSARM]] wurden für die Verwendung von [http://llvm.org/releases/3.3/tools/clang/docs/ReleaseNotes.html Clang 3.3] und [http://llvm.org/releases/3.3/docs/ReleaseNotes.html LLVM 3.3] aktualisiert.&lt;br /&gt;
&lt;br /&gt;
===Verbesserte C++-Unterstützung für {{Delphi|Berlin}}-Typen===&lt;br /&gt;
&lt;br /&gt;
In [[Durch Clang erweiterte C++-Compiler|C++-Compilern, die durch Clang erweitert wurden]]:&lt;br /&gt;
&lt;br /&gt;
* Sie können für [[lib_de:System.UnicodeString|Strings]] und für die folgenden RTL-Container und abgeleiteten Container [http://en.cppreference.com/w/cpp/language/range-for bereichsbasierte for-Schleifen] und [http://en.cppreference.com/w/cpp/iterator STL-Iteratoren] verwenden: [[lib_de:System.DynamicArray|DynamicArray]], [[lib_de:System.Classes.TCollection|TCollection]] und [[lib_de:System.Generics.Collections.TEnumerable|TEnumerable]].&lt;br /&gt;
* Sie können [[Behandlung der anonymen Methoden von Delphi in C++#Verwenden eines Lambda-Ausdrucks|Lambda-Ausdrücke]] in Aufrufen von [[lib_de:System.Threading.TParallel.For|TParallel::For]], [[lib_de:System.Threading.TTask.Create|TTask::Create]] oder [[lib_de:System.Threading.TTask.Future|TTask::Future]] verwenden.&lt;br /&gt;
&lt;br /&gt;
===Änderungen von C++-Optionen===&lt;br /&gt;
&lt;br /&gt;
In [[Durch Clang erweiterte C++-Compiler|C++-Compilern, die durch Clang erweitert wurden]]:&lt;br /&gt;
&lt;br /&gt;
* Die Befehlszeilenoption {{code|-PC}} zum Aktivieren der parallelen Compilierung in der Befehlszeile ist jetzt veraltet. Verwenden Sie stattdessen &amp;lt;code&amp;gt;--jobs=&amp;amp;lt;N&amp;amp;gt;&amp;lt;/code&amp;gt;. Weitere Informationen finden Sie unter [[Befehlszeilenoberflächen von C++-Compilern, die durch Clang erweitert wurden#Verwenden der parallelen Compilierung|Verwenden der parallelen Compilierung]].&lt;br /&gt;
* Die Befehlszeilenoption {{code|-fmath-errno}}, mit der die Anzeige von Fehlern von mathematischen Funktionen angefordert wird, kann jetzt in der [[Ein erster Blick auf die IDE|IDE]] konfiguriert werden. Sie finden die Option in den [[C++-Compiler Erweitert#Gleitkomma-Optionen|Gleitkomma-Optionen]] unter {{Menu|Projekt &amp;amp;gt; Optionen &amp;amp;gt; C++-Compiler &amp;amp;gt; Erweitert}}. Diese Option ist standardmäßig für die [[Durch Clang erweiterte C++-Compiler|durch Clang erweiterten C++-Compiler]] aktiviert.&lt;br /&gt;
&lt;br /&gt;
===Weitere Änderungen an C++-Compilern===&lt;br /&gt;
&lt;br /&gt;
* Der [[BCC32C|BCC32C]]-Compiler stellt jetzt eine Abhängigkeitsprüfung bereit. Der Befehl [[Alle Projekte compilieren|Make]] compiliert nur die Dateien, die seit dem letzten Erzeugen geändert wurden, und Dateien, deren Abhängigkeiten sich geändert haben.&lt;br /&gt;
* Die Bibliothek [http://compiler-rt.llvm.org/ compiler-rt (EN)] steht jetzt für [[BCC32C|BCC32C]] und [[BCC64|BCC64]] zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
===Entfernung der Legacyheader===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Header der Vorgängerversionen werden nur für Windows und OSX bereitgestellt. In jedem Fall müssen Sie die Legacyheader für iOS oder Android nicht einbeziehen (&amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#include&amp;lt;/source&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Wie in [http://docwiki.embarcadero.com/RADStudio/Berlin/en/What&#039;s_New_in_XE8#C.2B.2B_Changes_for_XE8 C++-Änderungen für XE8] vorgewarnt, wurden die Header der Vorgängerversionen in den folgenden Fällen entfernt:&lt;br /&gt;
&lt;br /&gt;
* In Units, die in {{product|XE2}} {{version|XE2}} oder später eingeführt wurden. Diese Änderung kann zu Fehlern führen, wenn Sie anstelle von voll qualifizierten Headern nicht qualifizierte Header einführen. Geben Sie beispielsweise für die Verwendung der Unit {{code|System.SysUtils}} statt &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#include &amp;lt;SysUtils.hpp&amp;gt;&amp;lt;/source&amp;gt; &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#include &amp;lt;System.SysUtils.hpp&amp;gt;&amp;lt;/source&amp;gt; ein.&lt;br /&gt;
* In einigen Units, die vor {{product|XE2}} {{version|XE2}} eingeführt wurden, wie z. B. {{code|Soap.SOAPMidas}}. In diesem Fall ist {{code|Soap.SOAPMidas}} der Name der Unit und der Name des Package. Deshalb sollten Sie zur Vermeidung von Namenskonflikten &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#include &amp;lt;Soap.SOAPMidas.hpp&amp;gt;&amp;lt;/source&amp;gt; anstatt von &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#include &amp;lt;SOAPMidas.hpp&amp;gt; verwenden&amp;lt;/source&amp;gt;.&lt;br /&gt;
* Die DirectX Übersetzungsheader.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[IDE-Referenz und Hilfsprogramme|IDE]]==&lt;br /&gt;
&lt;br /&gt;
===Unverankerter Formular-Designer===&lt;br /&gt;
&lt;br /&gt;
Sie können jetzt den Formular-Designer für die VCL und für FireMonkey frei platzierbar anzeigen. Sie können den eingebetteten Designer in den [[Optionen für den Formular-Designer|Optionen für den Formular-Designer]] aktivieren oder deaktivieren. Um den Formular-Designer frei platzierbar anzeigen, wählen Sie {{Menu|Tools &amp;amp;gt; Optionen &amp;amp;gt; Formular-Designer}}, deaktivieren das Kontrollkästchen &#039;&#039;&#039;Eingebetteter Designer&#039;&#039;&#039; und klicken auf &#039;&#039;&#039;OK&#039;&#039;&#039;. Die Änderungen werden beim nächsten Start der IDE wirksam.&lt;br /&gt;
&lt;br /&gt;
===[[FireUI Live-Vorschau|FireUI Live-Vorschau]]===&lt;br /&gt;
&lt;br /&gt;
[[FireUI Live-Vorschau|FireUI Live-Vorschau]] ist ein neues Tool in {{product}}, das das aktive Formular der entworfenen Anwendung, gleichzeitig an verschiedene Geräte übermittelt, um festzustellen, wie das Anwendungsdesign in Echtzeit aussieht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireUI Live-Vorschau&#039;&#039;&#039; besteht aus zwei Teilen:&lt;br /&gt;
&lt;br /&gt;
* [[FireUI Live-Vorschau (IDE)|FireUI Live-Vorschau (IDE)]]: Die IDE fungiert als Server, der die Verbindungen der Geräte verwaltet.&lt;br /&gt;
* [[FireUI App-Vorschau|FireUI App-Vorschau]]: Die Client-Anwendung, über die die Zielgeräte eine Verbindung zu einer IDE-Instanz herstellen.&lt;br /&gt;
&lt;br /&gt;
[[FireUI Live-Vorschau (IDE)|FireUI Live-Vorschau (IDE)]] benötigt keine weitere Installation und enthält die Standardkonfiguration. Informationen zum Konfigurieren zusätzlicher IDE-Optionen finden Sie unter [[FireUI Live-Vorschau (IDE-Optionen)|FireUI Live-Vorschau (IDE-Optionen)]].&lt;br /&gt;
&lt;br /&gt;
Informationen zum Beziehen des Clients finden Sie unter [[FireUI App-Vorschau#Beziehen der FireUI App-Vorschau|Beziehen der FireUI App-Vorschau]].&lt;br /&gt;
&lt;br /&gt;
===[[GetIt-Abhängigkeiten|GetIt-Abhängigkeiten]]===&lt;br /&gt;
&lt;br /&gt;
Neue [[Projektoptionen (Dialogfeld)|Projektoptionen-Seite]] zur Verwaltung von GetIt-Abhängigkeiten.&lt;br /&gt;
&lt;br /&gt;
In diesem Dialogfeld können Sie die Projektabhängigkeiten in Bezug auf die Packages des [[GetIt-Package-Manager|GetIt-Package-Managers]] festlegen.&lt;br /&gt;
&lt;br /&gt;
Die Optionsseite &#039;&#039;&#039;GetIt-Abhängigkeiten&#039;&#039;&#039; befindet sich unter {{Menu|Projekt &amp;amp;gt; Optionen &amp;amp;gt; [[GetIt-Abhängigkeiten|GetIt-Abhängigkeiten]]}}.&lt;br /&gt;
&lt;br /&gt;
===[[Verwenden des Positionsmarkenstapels|Positionsmarkenstapel]]===&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;&#039;Positionsmarkenstapel&#039;&#039;&#039; stellt eine Methode zur Navigation durch Ihren Quellcode dar, bei der Sie Ihrem Code aufeinandergestapelte Positionsmarken hinzufügen. Anhand der Positionsmarken können Sie dann zurücknavigieren. Dabei wird jeweils zur letzten Positionsmarke des Stapels navigiert, also zur letzten Positionsmarke, die auf dem Stapel abgelegt wurde.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Quelltext-Editor#Stapelpositionsmarken|Stapelpositionsmarken]] und [[Verwenden des Positionsmarkenstapels|Verwenden des Positionsmarkenstapels]].&lt;br /&gt;
&lt;br /&gt;
===[[Quelltext-Editor#Auswahlerweiterung|Auswahlerweiterung]]===&lt;br /&gt;
&lt;br /&gt;
Mit der &#039;&#039;&#039;Auswahlerweiterung&#039;&#039;&#039; können Sie den Bezeichner, auf dem sich der Cursor befindet, auswählen und die Auswahl zu größeren syntaktischen Gruppen erweitern, wie z. B. Anweisung, Zeile, Block, Methode usw. Drücken Sie die Tastenkombination {{Key|STRG+W}}, um die Auswahl zu starten und zu erweitern.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Quelltext-Editor#Auswahlerweiterung|Auswahlerweiterung]].&lt;br /&gt;
&lt;br /&gt;
===Methodentoxizitäts-Metriken===&lt;br /&gt;
&lt;br /&gt;
Die neue Projektseite &#039;&#039;&#039;[[Methodentoxizitäts-Metriken|Methodentoxizitäts-Metriken]]&#039;&#039;&#039; ({{Menu|Projekt &amp;amp;gt; Methodentoxizitäts-Metriken}}) enthält Metriken zu den Funktionen Ihres aktiven Projekts, die Sie zum Suchen von für eine Umgestaltung (Refactoring) geeigneten Methoden verwenden können. Sie können Ihre Metriken im CSV-Format exportieren und die Schwellenwerte für Schlüsselmetriken auf der neuen Optionsseite &#039;&#039;&#039;[[Toxizitätsmetriken|Toxizitätsmetriken]]&#039;&#039;&#039; anpassen.&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen der Strukturansicht für C++===&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;[[Strukturansicht|Strukturansicht]]&#039;&#039;&#039; wurde verschiedenen Verbesserungen für C++ unterzogen, wie:&lt;br /&gt;
&lt;br /&gt;
* Unterstützung für [[C++11|C++11]]-Features, wie [[Von C++-Compilern aus RAD Studio, die durch Clang erweitert wurden, unterstützte C++11-Features#Alias-Vorlagen|Alias-Vorlagen]] oder [[Von C++-Compilern aus RAD Studio, die durch Clang erweitert wurden, unterstützte C++11-Features#Initialisierungslisten|Initialisierungslisten]].&lt;br /&gt;
* Unterstützung für Funktionen, die einen [http://en.cppreference.com/w/cpp/language/pointer#Pointers_to_functions Funktionszeiger (EN)] zurückgeben.&lt;br /&gt;
* Unterstützung für [http://en.cppreference.com/w/cpp/language/bit_field unbenannte Bit-Felder (EN)].&lt;br /&gt;
* Verbesserte Unterstützung für [[Throw|throw]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen des Android-Dienstes===&lt;br /&gt;
&lt;br /&gt;
* Neuer Experte für das automatische Entfernen von [[Android-Dienst|Android-Dienst]]-Projekten aus [[Geräteübergreifende Anwendung|geräteübergreifenden Anwendungen]].&lt;br /&gt;
*[[Projektabhängigkeiten|Projekt-Abhängigkeiten]] sind automatisch aktiviert:&lt;br /&gt;
** Diese Option ermöglicht, dass alle [[Android-Dienst|Android-Dienst]]-Projekte, die einer [[Geräteübergreifende Anwendung|geräteübergreifenden Anwendung]] hinzugefügt wurden, automatisch vor der Hauptanwendung erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Erstellen von Android-Diensten|Erstellen von Android-Diensten]].&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für die Ausführung von iOS-Ad-hoc-Anwendungen===&lt;br /&gt;
&lt;br /&gt;
Sie können jetzt [[Ausführen von iOS-Anwendungen auf einem iOS-Gerät|iOS-Anwendungen]], die mit der [[Übersicht über Zielplattformen#Verwenden des Konfigurationsknotens|Plattformkonfiguration]] &#039;&#039;&#039;Ad-hoc&#039;&#039;&#039; erstellt werden, aus der IDE ausführen.&lt;br /&gt;
&lt;br /&gt;
===Anpassbare Datei info.plist===&lt;br /&gt;
&lt;br /&gt;
Sie können [[Anpassen der Datei info.plist|Ihre info.plist-Datei]] für OS X- und iOS-Anwendungen anpassen.&lt;br /&gt;
&lt;br /&gt;
===Entwurfszeit-Verbesserungen für Android-Smartwatches===&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;&#039;[[Formular-Designer|Formular-Designer]]&#039;&#039;&#039; stellt jetzt Folgendes zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
* Zwei spezielle [[Formular-Designer#Ansichtsauswahl|Ansichten]] für Android-Smartwatches.&lt;br /&gt;
* Eine [[Geräteübergreifende Vorschau|Vorschau]] des Designbereichs für vier verschiedene Android-Smartwatches.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Erstellen einer Android-App#Erstellen von Anwendungen für Android-Smartwatches|Erstellen von Anwendungen für Android-Smartwatches]].&lt;br /&gt;
&lt;br /&gt;
===Neue Optionsseite für Dateizuordnungen===&lt;br /&gt;
&lt;br /&gt;
In früheren Versionen mussten Sie während der Installation auswählen, welche Dateierweiterungen {{Product|Berlin}} zugeordnet werden sollten.&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie {{Product|Berlin}}-Dateizuordnungen auf der neuen Optionsseite &#039;&#039;&#039;[[Dateizuordnung|Dateizuordnung]]&#039;&#039;&#039; konfigurieren.&lt;br /&gt;
&lt;br /&gt;
===Neue Option zum Anzeigen von Informationsmeldungen vom Delphi-Compiler===&lt;br /&gt;
&lt;br /&gt;
Die IDE ermöglicht jetzt die Anzeige von Informationsmeldungen vom {{delphi}}-Compiler auf der Ausgabe-Registerkarte [[Fenster: Meldungen|Meldungsfenster]].&lt;br /&gt;
&lt;br /&gt;
In {{Menu|Projekt &amp;amp;gt; Optionen &amp;amp;gt; [[Delphi-Compiler|Delphi-Compiler]]}} können Sie die Option &#039;&#039;&#039;Allgemeine Meldungen anzeigen&#039;&#039;&#039; für Ihr Projekt aktivieren.&lt;br /&gt;
&lt;br /&gt;
===Neue Option zum Ein-/Ausblenden der [[Quelltext-Editor#Navigationssymbolleiste|Navigationssymbolleiste]]===&lt;br /&gt;
&lt;br /&gt;
In der IDE können Sie jetzt die [[Quelltext-Editor#Navigationssymbolleiste|Navigationssymbolleiste]] für den [[Quelltext-Editor|Quelltext-Editor]] ausblenden.&lt;br /&gt;
&lt;br /&gt;
Die neue Option &#039;&#039;&#039;Navigationssymbolleiste anzeigen&#039;&#039;&#039; befindet sich in {{menu| Tools &amp;amp;gt; Optionen &amp;amp;gt; Editor-Optionen &amp;amp;gt; Anzeige}}.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Verwenden der Navigationssymbolleiste#So blenden Sie die Navigationssymbolleiste aus|So blenden Sie die Navigationssymbolleiste aus]]. &lt;br /&gt;
&lt;br /&gt;
===High-DPI-Unterstützung===&lt;br /&gt;
&lt;br /&gt;
Die IDE bietet jetzt [https://msdn.microsoft.com/en-us/library/windows/desktop/dd371771%28v=vs.85%29.aspx DPI-Unterstützung (EN)]. Damit wird die Benutzerfreundlichkeit auf Systemen erhöht, die einen höheren DPI-Wert als 96 PPI verwenden.&lt;br /&gt;
&lt;br /&gt;
===Weitere IDE-Änderungen===&lt;br /&gt;
&lt;br /&gt;
* Die [[Verwenden der CPU-Ansicht|CPU-Ansicht]] unterstützt das Debuggen von iOS- und Android-Anwendungen.&lt;br /&gt;
&lt;br /&gt;
==[[Anwendungen debuggen - Index|Debugger]]==&lt;br /&gt;
&lt;br /&gt;
===iOS- und Android-Debugger===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Unterstützung für [[Strukturierte Typen#Dynamische Arrays|Dynamische Arrays]] in {{Delphi}}.&lt;br /&gt;
&lt;br /&gt;
===64-Bit-iOS-Debugger===&lt;br /&gt;
&lt;br /&gt;
Der 64-Bit-iOS-Debugger verfügt nun über die folgenden Features:&lt;br /&gt;
&lt;br /&gt;
* Unicode-Unterstützung.&lt;br /&gt;
* Verbesserte Unterstützung für {{Delphi}}-Arrays, -Strings und -Zeichen.&lt;br /&gt;
* Unterstützung für nicht-nullbasierte Arrays.&lt;br /&gt;
* Unterstützung zum Auswerten von Eigenschaften und Varianten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Definition von Haltepunkten in C++-Headerdateien.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Hilfsprogramme|Hilfsprogramme]]==&lt;br /&gt;
&lt;br /&gt;
* Das [[Java2OP.exe: Der Generator für native Android-Brückendateien|Java2OP.exe]]-Tool arbeitet jetzt mit JDK 8.&lt;br /&gt;
* Neues Tool &#039;&#039;&#039;SdkTransform.exe&#039;&#039;&#039;. Damit können Objective-C- oder C++-Header in {{Delphi|Berlin}}-Header umgewandelt werden.&lt;br /&gt;
&lt;br /&gt;
==[[samp_en:Main Page|Beispielanwendungen]]==&lt;br /&gt;
&lt;br /&gt;
Neue Beispielanwendungen wurden {{Version|Berlin}} hinzugefügt:&lt;br /&gt;
&lt;br /&gt;
* C++-Version der Beispiele:&lt;br /&gt;
** Das Beispiel [[samp_en:RTL.RegExpressionFMX Sample|RTL.RegExpression FMX]].&lt;br /&gt;
** Das Beispiel [[samp_en:RTL.RegExpressionVCL Sample|RTL.RegExpression VCL]].&lt;br /&gt;
** Das Beispiel [[samp_en:VCL.Windows 10 SharingContract Sample|VCL.Windows 10 SharingContract]].&lt;br /&gt;
* EMS-Beispiele:&lt;br /&gt;
** Das Beispiel [[samp_en:EMS.ThingPoint IoT Sample|EMS.ThingPoint IoT]].&lt;br /&gt;
** Das Beispiel [[samp_en:EMS.APIDocAttributes Sample|EMS.APIDocAttributes]].&lt;br /&gt;
* {{FM|Berlin}}-Beispiele:&lt;br /&gt;
** Das Beispiel [[samp_en:FMX.Remote Service Demo Sample|FMX.Remote Service Demo]].&lt;br /&gt;
** Das Beispiel [[samp_en:FMX.Birthday Reminder Sample|FMX.Birthday Reminder Demo]].&lt;br /&gt;
** Das Beispiel [[samp_en:FMX.SimplePhysics Sample|FMX.SimplePhysics]].&lt;br /&gt;
** Das Beispiel [[samp_en:FMX.StreamingMedia Sample|FMX.StreamingMedia]].&lt;br /&gt;
* FireDAC-Beispiele:&lt;br /&gt;
** Das Beispiel [[samp_en:FireDAC.InterBase Arrays Sample|FireDAC.InterBase Arrays]].&lt;br /&gt;
** Das Beispiel [[samp_en:FireDAC.PostgreSQL Ranges Sample|FireDAC.PostgreSQL Ranges]].&lt;br /&gt;
** Das Beispiel [[samp_en:FireDAC.PostgreSQL Arrays Sample|FireDAC.PostgreSQL Arrays]].&lt;br /&gt;
** Das Beispiel [[samp_en:FireDAC.SQLite Encryption Sample|FireDAC.SQLite Encryption]]. &lt;br /&gt;
** Das Beispiel [[samp_en:FireDAC.Oracle CQN Sample|FireDAC.Oracle CQN]]. &lt;br /&gt;
** Das Beispiel [[samp_en:FireDAC.MongoDB.ListView Sample|FireDAC.MongoDB ListView]].&lt;br /&gt;
* RTL-Beispiele:&lt;br /&gt;
** Das Beispiel [[samp_en:RTL.ExtendedBeaconScanner Sample|RTL.ExtendedBeaconScanner]].&lt;br /&gt;
** Das Beispiel [[samp_en:RTL.HttpAsyncDownload Sample|RTL.HttpAsyncDownload]].&lt;br /&gt;
&lt;br /&gt;
==Hilfe==&lt;br /&gt;
&lt;br /&gt;
* Für [[Hilfe zur Hilfe - CHM|CHM-Dateien]] ist nun die Registerkarte &#039;&#039;&#039;Favoriten&#039;&#039;&#039; verfügbar.&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Neuerungen_in_Berlin&amp;diff=208417</id>
		<title>Neuerungen in Berlin</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Neuerungen_in_Berlin&amp;diff=208417"/>
		<updated>2016-06-09T13:50:42Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Updated. LOC-22847_GO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Neuerungen in den letzten Releases}}  &lt;br /&gt;
__TOC__&lt;br /&gt;
Das {{Version|Berlin}}-Release enthält die folgenden neuen und verbesserten Features.&lt;br /&gt;
&lt;br /&gt;
==Benutzerfreundlichere Installation==&lt;br /&gt;
&lt;br /&gt;
Wir haben den Installationsprozess von {{Product|Berlin}} verbessert, damit Sie das Produkt einfacher an Ihre Wünsche anpassen können.&lt;br /&gt;
&lt;br /&gt;
Es gibt nun ein neues &#039;&#039;&#039;[[Installationsprogramm|Installationsprogramm]]&#039;&#039;&#039;, mit dem eine grundlegende Version von {{Product|Berlin}}, die als Texteditor verwendet werden kann, sehr schnell installiert wird.&lt;br /&gt;
&lt;br /&gt;
Anschließend können Sie im neuen &#039;&#039;&#039;[[Installationsprogramm für Features|Installationsprogramm für Features]]&#039;&#039;&#039; die {{Product|Berlin}}-Features ([[Programmiersprachen|Programmiersprachen]], [[Unterstützte Zielplattformen|Zielplattformen]] usw.) auswählen, die in Ihrer anfänglichen {{Product|Berlin}}-Installation vorhanden sein sollen. Es werden nur die ausgewählten Features installiert, wodurch Sie Bandbreite, Zeit und Festplattenspeicher sparen.&lt;br /&gt;
&lt;br /&gt;
Später können Sie jederzeit mit dem neuen &#039;&#039;&#039;[[Feature-Manager|Feature-Manager]]&#039;&#039;&#039; {{Product|Berlin}} [[Hinzufügen und Entfernen von Features mit dem Feature-Manager|Features hinzufügen oder daraus entfernen]].&lt;br /&gt;
&lt;br /&gt;
Bestimmte Software, die im {{Product|Berlin}}-Installationsprogramm von {{Version|Seattle}} einbezogen war, steht nun über den &#039;&#039;&#039;[[GetIt-Package-Manager|GetIt-Package-Manager]]&#039;&#039;&#039; zur Verfügung. Weitere Informationen finden Sie unter [[Installationshinweise#Optionale zusätzliche Software|Optionale zusätzliche Software]] in den [[Installationshinweise|Installationshinweisen]].&lt;br /&gt;
&lt;br /&gt;
Das {{Product|Berlin}}-Installationsprogramm von {{Version|Seattle}} ist weiterhin als &#039;&#039;&#039;[[Offline-Installationsprogramm|Offline-Installationsprogramm]]&#039;&#039;&#039; verfügbar. Dieses Installationsprogramm können Sie verwenden, wenn Ihr System bei der Installation über keine aktive Internet-Verbindung verfügt.&lt;br /&gt;
&lt;br /&gt;
Anweisungen für die Installation und weitere Informationen finden Sie unter &#039;&#039;&#039;[[Installation|Installation]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==[[FireMonkey|{{FM|Berlin}}]]==&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für Android 6.0===&lt;br /&gt;
&lt;br /&gt;
Android {{AndroidSDKVersion}} (API Level {{AndroidAPILevel}}) wird jetzt [[Für die Anwendungsentwicklung unterstützte Android-Geräte|unterstützt]].&lt;br /&gt;
&lt;br /&gt;
===Adressbuch für iOS und Android===&lt;br /&gt;
&lt;br /&gt;
Auf mobilen Plattformen (Android und iOS) unterstützt {{FM|Berlin}} die Komponente [[lib_de:FMX.AddressBook.TAddressBook|TAddressBook]], mit der Sie in Ihren Anwendungen auf das Geräte-Adressbuch zugreifen können. Diese Komponente umfasst folgende grundlegende Funktionen:&lt;br /&gt;
&lt;br /&gt;
* Senden einer Anforderung für den Zugriff auf ein Geräte-Adressbuch und Abrufen des Zugriffsstatus.&lt;br /&gt;
* Zugreifen auf alle in dem Geräte-Adressbuch definierten Quellen.&lt;br /&gt;
* Abrufen aller oder einzelner Kontakte aus der angegebenen Quelle.&lt;br /&gt;
* Abrufen aller Kontakte aus bestimmten Gruppen.&lt;br /&gt;
* Bearbeiten oder Entfernen von vorhandenen Kontakten und Gruppen.&lt;br /&gt;
* Erstellen neuer Kontakte.&lt;br /&gt;
* Erstellen neuer Gruppen.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen und Beispiele finden Sie unter [[lib_de:FMX.AddressBook.TAddressBook|TAddressBook]] und [[Mobile-Tutorial: Verwenden einer Adressbuch-Komponente (iOS und Android)|Mobile-Tutorial: Verwenden der Adressbuch-Komponente (iOS und Android)]].&lt;br /&gt;
&lt;br /&gt;
===Verbesserter Stil-Designer===&lt;br /&gt;
&lt;br /&gt;
Am &#039;&#039;&#039;[[FireMonkey-Stil-Designer|Stil-Designer]]&#039;&#039;&#039; wurden mehrere Änderungen und Verbesserungen vorgenommen, wie:&lt;br /&gt;
&lt;br /&gt;
* Unterstützung von Zwischenablage, Tastatur und Mehrfachauswahl in der &#039;&#039;&#039;[[Strukturansicht|Strukturansicht]]&#039;&#039;&#039;.&lt;br /&gt;
* Vorschaubereich&lt;br /&gt;
* Unterstützung der Zoomfunktion&lt;br /&gt;
&lt;br /&gt;
: [[File:LondonFireMonkeyStyleDesigner.png|500px]]&lt;br /&gt;
&lt;br /&gt;
===Neuer ListView-Eintrags-Designer===&lt;br /&gt;
&lt;br /&gt;
Das [[lib_de:FMX.ListView.TListView|Listenansichts-Steuerelement]] unterstützt jetzt einen neuen Typ des [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemAppearance|Erscheinungsbildes für Einträge]] (auch im [[lib_de:FMX.ListView.Appearances.TPublishedAppearance.ItemEditAppearance|Bearbeitungsmodus]] verfügbar), {{Code|[[Anpassen der Darstellung von FireMonkey-Listenansichten#Verwenden des Werts &amp;quot;DynamicAppearance&amp;quot;|DynamicAppearance]]}}, mit dem Sie den Inhalt jedes Eintrags in Ihrer Listenansicht anpassen können: Beschriftungen, Bilder, Schaltflächen usw.&lt;br /&gt;
&lt;br /&gt;
Sie können auch im &#039;&#039;&#039;[[Formular-Designer|Formular-Designer]]&#039;&#039;&#039; mit der rechten Maustaste auf die Listenansicht klicken, und den neuen Eintrag &#039;&#039;&#039;[[Anpassen der Darstellung von FireMonkey-Listenansichten#Umschalten des Entwurfsmodus|Entwurfsmodus umschalten]]&#039;&#039;&#039; auswählen, um einen visuellen Eintragseditor für die Listenansicht zu aktivieren; damit können Sie die Steuerelemente der Einträge Ihrer Listenansicht visuell anpassen:&lt;br /&gt;
&lt;br /&gt;
: [[File:LondonListViewDesignMode.png]]&lt;br /&gt;
&lt;br /&gt;
In diesem Entwurfsmodus können Sie mit dem &#039;&#039;&#039;[[Objektinspektor|Objektinspektor]]&#039;&#039;&#039; dem Eintragsentwurf Ihrer Listenansicht neue Elemente hinzufügen und sie mit dem &#039;&#039;&#039;Objektinspektor&#039;&#039;&#039; und dem &#039;&#039;&#039;Formular-Designer&#039;&#039;&#039; anpassen.&lt;br /&gt;
&lt;br /&gt;
===Erweiterter Dienst zur Unterstützung der Zwischenablage===&lt;br /&gt;
&lt;br /&gt;
{{FM|Berlin}} verfügt jetzt über das Interface [[lib_de:FMX.Clipboard.IFMXExtendedClipboardService|IFMXExtendedClipboardService]], das neue Features hinzufügt. Beispielsweise können Sie mit dem Interface [[lib_de:FMX.Clipboard.IFMXExtendedClipboardService|IFMXExtendedClipboardService]]:&lt;br /&gt;
&lt;br /&gt;
*Benutzerdefinierte Formate registrieren.&lt;br /&gt;
* Daten im benutzerdefinierten Format kopieren/einfügen.&lt;br /&gt;
* Den Wert der Zwischenablage direkt ermitteln.&lt;br /&gt;
&lt;br /&gt;
===Verbesserung des Bilderlisten-Editors===&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie im Dialogfeld &#039;&#039;&#039;Bilder hinzufügen&#039;&#039;&#039; des [[Bilderlisten-Editor (FireMonkey)#Bereich &amp;quot;Liste der Bilder&amp;quot;|Bilderlisten-Editors]] mehrere Bilder gleichzeitig hinzufügen.&lt;br /&gt;
&lt;br /&gt;
===Erweiterungen des Gitters===&lt;br /&gt;
&lt;br /&gt;
Die [[lib_de:FMX.Grid.Style.TStyledGrid|Darstellungslogik]] und das [[lib_de:FMX.Grid.TGridModel|Datenmodell]] der [[lib_de:FMX.Grid.TCustomGrid|Gitter-Steuerelemente]] wurden von diesen getrennt. Dies ist eine notwendige, fehlerhafte API-Änderung, die es ermöglicht, zukünftig den Gitter-Steuerelementen, unter anderem, Unterstützung der [[Native FireMonkey-Steuerelemente|nativen Darstellung]] hinzuzufügen. Weitere Informationen finden Sie unter &#039;&#039;&#039;[[Changes to {{FM|Berlin}} Grid Controls in {{Version|Berlin}}|Änderungen an den {{FM|Berlin}} Gitter-Steuerelementen unter {{Version|Berlin}}]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Warnung:&#039;&#039;&#039; Bei der Migration eines älteren Projekts, das Gitter-Steuerelemente verwendet, nach {{Version|Berlin}} müssen Sie [[Changes to {{FM|Berlin}} Grid Controls in {{Version|Berlin}}|unter anderem]] die neue Unit [[lib_de:FMX.Grid.Style|FMX.Grid.Style]] in eine der &amp;lt;source lang=&amp;quot;delphi&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;uses&amp;lt;/source&amp;gt;-Klauseln Ihres Projekts miteinbeziehen. Diese Unit wird automatisch in neue Projekte eingefügt.&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für hohe DPI unter Windows===&lt;br /&gt;
&lt;br /&gt;
{{FM|Berlin}} stellt für Windows verbesserte Unterstützung für hohe DPI bereit, wie die Stile für Mehrfachauflösung, die Monitore mit 120 DPI und 144 DPI unterstützen.&lt;br /&gt;
&lt;br /&gt;
===Verbesserte Unterstützung für Zugriffstasten===&lt;br /&gt;
&lt;br /&gt;
Die Unterstützung der [[Darstellung von Tasten und Tastenkürzeln#Zugriffstasten vorgeben|Zugriffstasten]] ist nun für folgende Steuerelemente verfügbar:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TLabel|TLabel]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TButton|TButton]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TRadioButton|TRadioButton]]&lt;br /&gt;
* [[lib_de:FMX.TabControl.TTabItem|TTabItem]] von [[lib_de:FMX.TabControl|TabControl]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TCheckBox|TCheckBox]]&lt;br /&gt;
* [[lib_de:FMX.ExtCtrls.TPopupBox.Items|TPopupBox.Items]] von [[lib_de:FMX.ExtCtrls.TPopupBox|TPopupBox]]&lt;br /&gt;
* [[lib_de:FMX.Controls.TTextControl|TTextControl]]&lt;br /&gt;
* [[lib_de:FMX.StdCtrls.TPresentedTextControl|TPresentedTextControl]]&lt;br /&gt;
* [[lib_de:FMX.ActnList.TCustomAction|TCustomAction]]&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für erweiterte Schriftartstile===&lt;br /&gt;
&lt;br /&gt;
[[lib_de:FMX.Graphics.TFont|TFont]] erhält eine neue Eigenschaft, [[lib_de:FMX.Graphics.TFont.StyleExt|StyleExt]], zum Behandeln von Schriftarten, die erweiterte Typen von [[lib_de:FMX.Graphics.TFontWeight|weight (Strichstärke)]], [[lib_de:FMX.Graphics.TFontSlant|slant (Schräge)]] oder [[lib_de:FMX.Graphics.TFontStretch|stretch (Laufweite der Schrift)]] haben.&lt;br /&gt;
&lt;br /&gt;
===Änderungen der Eigenschaft Hint===&lt;br /&gt;
&lt;br /&gt;
In früheren {{Product|Berlin}}-Versionen wurde [[lib_de:FMX.Controls.TControl.Hint|Hint]] in allen von [[lib_de:FMX.Controls.TControl|TControl]] abgeleiteten {{FM|Berlin}}-Steuerelementen als published deklariert. Jetzt wird die Eigenschaft [[lib_de:FMX.Controls.TControl.Hint|Hint]] in den unter [[Änderungen der Eigenschaft Hint in Berlin|Änderungen der Eigenschaft Hint in Berlin]] aufgelisteten {{FM|Berlin}}-Steuerelementen als published deklariert.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Warnung&#039;&#039;&#039;: Verwenden Sie in ihren Anwendungen [[lib_de:FMX.Controls.TControl.Hint|Hint]] nur mit den Steuerelementen, die in dieser [[Änderungen der Eigenschaft Hint in Berlin|Tabelle]] aufgeführt sind. Andernfalls werden Ihre Anwendungen nicht compiliert.&lt;br /&gt;
&lt;br /&gt;
===Vereinfachte Dialogfeld-API===&lt;br /&gt;
&lt;br /&gt;
Diverse Prozeduren und Funktionen zum Anzeigen von Dialogfeldern sind jetzt veraltet und wurden durch Prozeduren und Funktionen der neuen Plattformdienste [[lib_de:FMX.Platform.IFMXDialogServiceAsync|IFMXDialogServiceAsync]] und [[lib_de:FMX.Platform.IFMXDialogServiceSync|IFMXDialogServiceSync]] ersetzt, die Unterstützung für synchrone bzw. asynchrone Dialogfelder bereitstellen.&lt;br /&gt;
&lt;br /&gt;
In der folgenden Tabelle sind die API-Änderungen zusammengefasst:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Veraltete Member&lt;br /&gt;
! Neue Member&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* [[lib_de:FMX.Dialogs.ShowMessage|FMX.Dialogs.ShowMessage]]*&lt;br /&gt;
* [[lib_de:FMX.Dialogs.ShowMessageFmt|FMX.Dialogs.ShowMessageFmt]]*&lt;br /&gt;
* {{Code|FMX.Dialogs.ShowMessagePos}}&lt;br /&gt;
|&lt;br /&gt;
* [[lib_de:FMX.Platform.IFMXDialogServiceAsync.ShowMessageAsync|ShowMessageAsync]]&lt;br /&gt;
* [[lib_de:FMX.Platform.IFMXDialogServiceSync.ShowMessageSync|ShowMessageSync]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* {{Code|FMX.Dialogs.MessageDlg}}&lt;br /&gt;
* {{Code|FMX.Dialogs.MessageDlgPos}}&lt;br /&gt;
* {{Code|FMX.Dialogs.MessageDlgPosHelp}}&lt;br /&gt;
* {{Code|FMX.Platform.IFMXDialogService.MessageDialog}}&lt;br /&gt;
|&lt;br /&gt;
* [[lib_de:FMX.Platform.IFMXDialogServiceAsync.MessageDialogAsync|MessageDialogAsync]]&lt;br /&gt;
* [[lib_de:FMX.Platform.IFMXDialogServiceSync.MessageDialogSync|MessageDialogSync]]&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
* {{Code|FMX.Dialogs.InputBox}}&lt;br /&gt;
* {{Code|FMX.Dialogs.InputQuery}}&lt;br /&gt;
* {{Code|FMX.Platform.IFMXDialogService.InputQuery}}&lt;br /&gt;
|&lt;br /&gt;
* [[lib_de:FMX.Platform.IFMXDialogServiceAsync.InputQueryAsync|InputQueryAsync]]&lt;br /&gt;
* [[lib_de:FMX.Platform.IFMXDialogServiceSync.InputQuerySync|InputQuerySync]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: * {{Code|ShowMessage}} und {{code|ShowMessageFmt}} sind nicht tatsächlich veraltet, Sie können stattdessen jedoch [[lib_de:FMX.Platform.IFMXDialogServiceAsync.ShowMessageAsync|ShowMessageAsync]] oder [[lib_de:FMX.Platform.IFMXDialogServiceSync.ShowMessageSync|ShowMessageSync]] verwenden.&lt;br /&gt;
&lt;br /&gt;
Außerdem wurden zwei neue Hilfsklassen erstellt: [[lib_de:FMX.DialogService.Async.TDialogServiceAsync|TDialogServiceAsync]] und [[lib_de:FMX.DialogService.Sync.TDialogServiceSync|TDialogServiceSync]]. Diese Hilfsklassen stellen Klassenmethoden und Funktionen bereit, mit denen Sie die neuen Prozeduren und Funktionen für Dialogfelder aufrufen können, ohne dass eine Instanz des entsprechenden [[FireMonkey-Plattformdienste|Plattformdienstes]] des Dialogfelds benötigt wird.&lt;br /&gt;
&lt;br /&gt;
===Weitere {{FM|Berlin}}-Änderungen===&lt;br /&gt;
&lt;br /&gt;
* Mit der neuen Eigenschaft [[lib_de:FMX.Pickers.TCustomPicker.AbsoluteTargetRect|AbsoluteTargetRect]] für Auswahlfenster können Sie die Position festlegen, an der ein Auswahlfenster angezeigt werden soll.&lt;br /&gt;
* Listenansichten zeigen Touch-Animationen auf Android.&lt;br /&gt;
* [[Verwenden von AppAnalytics in FireMonkey|AppAnalytics]] verwendet HTTPS anstatt HTTP.&lt;br /&gt;
* [[lib_de:FMX.Media.TMediaPlayer|TMediaPlayer]] versucht jetzt, die angegebene [[lib_de:FMX.Media.TMediaPlayer.FileName|Mediendatei]] für die Zielplattform mit dem Standardcodec [[lib_de:FMX.Media.TMediaPlayer.Play|abzuspielen]], falls die Erweiterung der Mediendatei nicht [[lib_de:FMX.Media.TMediaCodecManager.RegisterMediaCodecClass|registriert]] wurde.&lt;br /&gt;
* Der Typ [[lib_de:System.Double|Double]] hat den Typ [[lib_de:System.Extended|Extended]] ersetzt.&lt;br /&gt;
* Die veralteten Eigenschaften &#039;&#039;&#039;StrokeThickness&#039;&#039;&#039;, &#039;&#039;&#039;StrokeCap&#039;&#039;&#039;, &#039;&#039;&#039;StrokeDash&#039;&#039;&#039; und &#039;&#039;&#039;StrokeJoin&#039;&#039;&#039; von [[lib_de:FMX.Objects.TShape|TShape]] wurden gelöscht. Verwenden Sie die integrierte Eigenschaft [[lib_de:FMX.Objects.TShape.Stroke|TShape.Stroke]], die den Typ [[lib_de:FMX.Graphics.TStrokeBrush|TStrokeBrush]] hat. [[lib_de:FMX.Graphics.TStrokeBrush|TStrokeBrush]]-Objekte verfügen über die Eigenschaften [[lib_de:FMX.Graphics.TStrokeBrush.Thickness|Thickness]], [[lib_de:FMX.Graphics.TStrokeBrush.Cap|Cap]], [[lib_de:FMX.Graphics.TStrokeBrush.Dash|Dash]] und [[lib_de:FMX.Graphics.TStrokeBrush.Join|Join]], die Sie anstelle der gelöschten, veralteten Eigenschaften verwenden sollten.&lt;br /&gt;
* [[lib_de:FMX.Forms.IFMXWindowService.GetWindowScale|IFMXWindowService.GetWindowScale]] ist jetzt veraltet. Verwenden Sie die Eigenschaft [[lib_de:FMX.Types.TWindowHandle.Scale|Scale]] des [[lib_de:FMX.Forms.TCommonCustomForm.Handle|Handles]] eines [[lib_de:FMX.Forms.TCommonCustomForm|Formulars]], um die Skalierung des Formularfensters abzurufen.&lt;br /&gt;
&lt;br /&gt;
==[[Überblick zu VCL|VCL]]==&lt;br /&gt;
&lt;br /&gt;
* In der {{Product}}-Installation sind [[lib_de:Vcl.Ribbon|Ribbon-Steuerelemente]] nicht mehr enthalten. Diese Steuerelemente müssen Sie mit dem &#039;&#039;&#039;[[GetIt-Package-Manager|GetIt-Package-Manager]]&#039;&#039;&#039; separat installieren.&lt;br /&gt;
* [[Verwenden von AppAnalytics in der VCL|AppAnalytics]] verwendet HTTPS anstatt HTTP.&lt;br /&gt;
* Die Methode &#039;&#039;&#039;CreateRoot&#039;&#039;&#039; aus der Unit &#039;&#039;&#039;Vcl.Shell.ShellCtrls&#039;&#039;&#039; ist jetzt virtuell. Stammfelder aus derselben Unit sind jetzt als &amp;quot;protected&amp;quot; anstatt als &amp;quot;private&amp;quot; deklariert.&lt;br /&gt;
&lt;br /&gt;
==[[Enterprise Mobility Services (EMS)|EMS]]==&lt;br /&gt;
&lt;br /&gt;
===[[Installieren des EMS-Servers oder des EMS-Konsolenservers in einer Produktionsumgebung#Apache-Serverunterstützung|Apache-Serverunterstützung]]===&lt;br /&gt;
&lt;br /&gt;
Sie können jetzt den EMS-Server und die EMS-Konsole im Apache-Server in einer Produktionsumgebung ausführen.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Installieren des EMS-Servers oder des EMS-Konsolenservers in einer Produktionsumgebung#Apache-Serverunterstützung|Installieren und Ausführen des EMS-Servers und der EMS-Konsole im Apache-Server]].&lt;br /&gt;
&lt;br /&gt;
===[[Manuelles Bearbeiten der Konfiguration des EMS-Servers#Domänenübergreifende EMS-Server-API|Domänenübergreifende Aufrufe der EMS-Server-API]]===&lt;br /&gt;
&lt;br /&gt;
Der EMS-Server ermöglicht jetzt domänenübergreifende Aufrufe seiner API aus verschiedenen Domänen. Weitere Informationen finden Sie unter [[Manuelles Bearbeiten der Konfiguration des EMS-Servers#Domänenübergreifende EMS-Server-API|Domänenübergreifende Aufrufe der EMS-Server-API]].&lt;br /&gt;
&lt;br /&gt;
===[[EMS-EdgeModules|EMS-EdgeModules]]===&lt;br /&gt;
&lt;br /&gt;
EMS unterstützt jetzt das neue Feature [[EMS-EdgeModules|EMS-EdgeModules]], eine Erweiterung der Funktionalität des [[EMS-Server|EMS-Servers]].&lt;br /&gt;
&lt;br /&gt;
In {{Version|Berlin}} können Sie [[EMS-EdgeModules|EMS-EdgeModules]] als eigenständige Anwendungen ausführen und sie beim EMS-Server [[EMS-EdgeModules-Ressource#RegisterModule-Endpunkt|registrieren]]. Die EMS-EdgeModule-Kommunikation mit dem [[EMS-Server|EMS-Server]] erfolgt bidirektional.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen dazu finden Sie unter [[EMS-EdgeModules|EMS-EdgeModules]].&lt;br /&gt;
&lt;br /&gt;
===[[EMS-EdgeModules-Ressource|EMS-EdgeModules-Ressource]]===&lt;br /&gt;
&lt;br /&gt;
In der [[EMS-Konsolenserver|EMS-Konsole]] werden jetzt zwei neue Tabellen mit allen Informationen über [[EMS-EdgeModules-Ressource|EMS-EdgeModule]] und dessen im [[EMS-Server|EMS-Server]] geladenen Ressourcen angezeigt.&lt;br /&gt;
&lt;br /&gt;
Die [[Anwendung &amp;quot;EMS Management Console&amp;quot;|Anwendung &amp;quot;EMS Management Console&amp;quot;]] verfügt über [[Benutzeroberfläche der EMS-Ressourcenverwaltung|zwei neue Registerkarten]] zum einfachen Abrufen, Aktualisieren und Löschen der Daten der registrierten [[EMS-EdgeModules-Ressource|EMS-EdgeModules]] und deren Ressourcen. Einzelheiten zum Verwalten der [[EMS-EdgeModules-Ressource|EMS-EdgeModules]]-Daten auf dem [[EMS-Server|EMS-Server]] finden Sie unter [[Verwenden der Anwendung &amp;quot;EMS Management Console&amp;quot;|Verwenden der Anwendung &amp;quot;EMS Management Console&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
===[[Überblick zu ThingPoints|Überblick zu ThingPoints]]===&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie die neuen [[Überblick zu ThingPoints|ThingPoint]]-Anwendungen, um die Funktionalität des [[EMS-Server|EMS-Servers]] für das [[Iot:ThingConnect|Internet der Dinge (Internet of Things, IoT)]] zu erweitern. Mit einer ThingPoint-Anwendung können Sie Daten von sich in der Nähe befindlichen [[Iot:ThingConnect Devices|ThingConnect-Geräten]] erfassen, IoT-Daten vor- und nachverarbeiten und sie auf dem [[EMS-Server|EMS-Server]] speichern.&lt;br /&gt;
&lt;br /&gt;
Das &#039;&#039;&#039;[[samp_en:EMS.ThingPoint IoT Sample|Beispiel &amp;quot;EMS.ThingPoint IoT&amp;quot;]]&#039;&#039;&#039; zeigt, wie mit einer [[Überblick zu ThingPoints|ThingPoint]]-Anwendung der [[EMS-Server|EMS-Server]] erweitert wird und wie diese Daten von einer [[EMS-Client-Anwendung|EMS-Client-Anwendung]] genutzt werden.  &lt;br /&gt;
&lt;br /&gt;
Weitere Informationen zu ThingPoint-Anwendungen finden Sie unter [[Überblick zu ThingPoints|Überblick zu ThingPoints]].&lt;br /&gt;
&lt;br /&gt;
===[[EMS-API-Ressource|EMS-API-Ressource]]===&lt;br /&gt;
&lt;br /&gt;
Eine neue Ressource im EMS-Server stellt nun eine API-Dokumentation für alle Ressourcen und Endpunktmethoden des EMS-Servers bereit. Die API-Dokumentation kann in den Formaten YAML und JSON genutzt werden.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[EMS-API-Ressource|EMS-API-Ressource]].&lt;br /&gt;
&lt;br /&gt;
===[[Benutzerdefinierte API-Dokumentation|Benutzerdefinierte API-Dokumentation]]===&lt;br /&gt;
&lt;br /&gt;
Der EMS-Server stellt jetzt die Tools zum Erstellen der API-Dokumentation für neue Ressourcen in erweiterten EMS-Server-Packages bereit. Die neue Dokumentation wird durch Hinzufügen von Attributen zu den neuen Ressourcen und Endpunkten erstellt. Die API-Dokumentation wird in den Formaten YAML und JSON und der Zugriff darauf via HTTP bereitgestellt.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Benutzerdefinierte API-Dokumentation|Benutzerdefinierte API-Dokumentation]].&lt;br /&gt;
&lt;br /&gt;
==[[DataSnap-Anwendungen entwickeln|DataSnap]]==&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für JSON-Streaming===&lt;br /&gt;
&lt;br /&gt;
Neue Klasse [[lib_de:Data.DBXCommon.TDBXJSONStream|TDBXJSONStream]] zur Unterstützung von JSON-Streaming zwischen DataSnap-Servern und -Clients.&lt;br /&gt;
&lt;br /&gt;
Mit [[lib_de:Data.DBXCommon.TDBXJSONStream|TDBXJSONStream]] können Sie einen Stream von JSON-Objekten lesen und schreiben, allerdings nicht gleichzeitig.&lt;br /&gt;
&lt;br /&gt;
===Weitere DataSnap-Änderungen===&lt;br /&gt;
&lt;br /&gt;
* DataSnap-Clients benötigen zur Durchführung von HTTPS-Anforderungen [[OpenSSL|OpenSSL]] oder [[Indy|Indy]] nicht mehr.&lt;br /&gt;
&lt;br /&gt;
==[[Web Broker verwenden - Index|Web Broker]]==&lt;br /&gt;
&lt;br /&gt;
===Für C++-Projekte aus früheren Versionen mit Web.WebReq ist eine Aktualisierung erforderlich===&lt;br /&gt;
&lt;br /&gt;
Für C++-Projekte aus älteren Versionen, wie DataSnap-, Web-Broker- und Webdienst-Anwendungen, die die Unit [[lib_de:Web.WebReq|Web.WebReq]] verwenden, muss der Code aus Kompatibilitätsgründen mit {{product}} {{version}} aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
In diesen Projekten muss die folgende Zeile aus der &amp;lt;code&amp;gt;cpp&amp;lt;/code&amp;gt;-Projektdatei entfernt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;#pragma link &amp;quot;Web.WebReq&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Weitere Web Broker-Änderungen===&lt;br /&gt;
&lt;br /&gt;
* Die String-Behandlung wurde verbessert.&lt;br /&gt;
** Die Web-Broker-API verwendet standardmäßig die UTF-8-Codierung anstelle von ANSI.&lt;br /&gt;
** Die Parameter- und Ergebnistypen wurden von [[lib_de:System.AnsiString|AnsiString]] in [[lib_de:System.String|String]], [[lib_de:System.UTF8String|UTF8String]] oder [[lib_de:System.SysUtils.TBytes|TBytes]] geändert.&lt;br /&gt;
&lt;br /&gt;
==[[FireDAC|FireDAC]]==&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu IBM DB2 Server (FireDAC)|DB2]]===&lt;br /&gt;
&lt;br /&gt;
* Der [[Herstellen einer Verbindung zu IBM DB2 Server (FireDAC)|native DB2-Treiber]] und der [[Herstellen einer Verbindung zu ODBC-Datenquellen (FireDAC)|ODBC-Brückentreiber]] werden für DB2 AS/400 unterstützt.&lt;br /&gt;
* Neuer [[Herstellen einer Verbindung zu IBM DB2 Server (FireDAC)#Verbindungsdefinitionsparameter|Verbindungsdefinitionsparameter]]: {{code|TxSupported}}, der die Deaktivierung der FireDAC-Transaktionsverwaltung ermöglicht.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zur MongoDB-Datenbank (FireDAC)|MongoDB]]===&lt;br /&gt;
&lt;br /&gt;
* Unterstützung für [[Datenbankwarnungen (FireDAC)|Datenbankwarnungen]]. Es werden Benachrichtigungen über Einfügeoperationen einer [https://docs.mongodb.org/manual/core/capped-collections/ größenbeschränkten MongoDB-Dokumentsammlung (EN)] verwendet. Weitere Informationen dazu finden Sie unter &#039;&#039;&#039;[[Datenbankwarnungen (FireDAC)#mongodb|Datenbankwarnungen (FireDAC)]]&#039;&#039;&#039;.&lt;br /&gt;
* Neue Methode [[lib_de:FireDAC.Phys.MongoDBWrapper.TMongoDocument.Iterate|TMongoDocument.Iterate]], um Dokumenteneinträge zu durchlaufen. Weitere Informationen finden Sie in der neuen Demo {{Path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\MongoDB\ListView}}.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu Advantage Database Server (FireDAC)|Advantage]]===&lt;br /&gt;
&lt;br /&gt;
* Für Advantage v12 und höher:&lt;br /&gt;
** Verbesserung von [[lib_de:FireDAC.Phys.ADS.TFDADSBackup|TFDADSBackup]] und  [[lib_de:FireDAC.Phys.ADS.TFDADSRestore|TFDADSRestore]], um Unterstützung für das Sicherungsarchiv hinzuzufügen.&lt;br /&gt;
** Unterstützung des Datentyps {{code|GUID}}.&lt;br /&gt;
* Verbesserte Unterstützung für verschlüsselte Tabellen:&lt;br /&gt;
** Möglichkeit zur Bereitstellung eines einzelnen [[Herstellen einer Verbindung zu Advantage Database Server (FireDAC)#TablePwd|-Passworts]] für alle Tabellen.&lt;br /&gt;
** Unterstützung für den [[lib_de:FireDAC.Phys.ADS.TFDADSUtility.Encrypt|Verschlüsselungs-]]/[[lib_de:FireDAC.Phys.ADS.TFDADSUtility.Decrypt|Entschlüsselungs-]]Dienst.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu InterBase (FireDAC)|InterBase]]===&lt;br /&gt;
&lt;br /&gt;
* Neue [[Komponenten (FireDAC)#FireDAC-Dienstkomponenten|Dienstkomponente]], [[lib_de:FireDAC.Phys.IBBase.TFDIBInfo|TFDIBInfo]], zur Abfrage von Version, Lizenz, Konfiguration und Nutzungsdaten des Servers.&lt;br /&gt;
* Unterstützung für [[Unterstützung für das Blob-Streaming in FireDAC#Interne Streams|interne Streams]] für das [[Unterstützung für das Blob-Streaming in FireDAC|BLOB-Streaming]].&lt;br /&gt;
* Unterstützung für Array-Datentypen von InterBase. Weitere Informationen finden Sie in der neuen Demo [[samp_en:FireDAC.InterBase Arrays Sample|FireDAC.InterBase Arrays]].&lt;br /&gt;
* [[lib_de:FireDAC.Phys.IBWrapper.TIBRestoreOptions|TIBRestoreOptions.roReplace]] ersetzt {{Code|TIBRestoreOptions.roCreate}}.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu Firebird (FireDAC)|Firebird]]===&lt;br /&gt;
&lt;br /&gt;
* Neue [[Komponenten (FireDAC)#FireDAC-Dienstkomponenten|Dienstkomponente]], [[lib_de:FireDAC.Phys.IBBase.TFDIBInfo|TFDIBInfo]], zur Abfrage von Version, Lizenz, Konfiguration und Nutzungsdaten des Servers.&lt;br /&gt;
* Unterstützung für [[Unterstützung für das Blob-Streaming in FireDAC#Interne Streams|interne Streams]] für das [[Unterstützung für das Blob-Streaming in FireDAC|BLOB-Streaming]].&lt;br /&gt;
* Unterstützung für Array-Datentypen von Firebird. Weitere Informationen finden Sie in der neuen Demo [[samp_en:FireDAC.InterBase Arrays Sample|FireDAC.InterBase Arrays]].&lt;br /&gt;
* [[lib_de:FireDAC.Phys.IBWrapper.TIBRestoreOptions|TIBRestoreOptions.roReplace]] ersetzt {{Code|TIBRestoreOptions.roCreate}}.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu Informix (FireDAC)|Informix]]===&lt;br /&gt;
&lt;br /&gt;
* Die Klasse [[lib_de:FireDAC.Phys.Infx.TFDInfxError|TFDInfxError]] implementiert die Unterstützung für die Rückgabe des ISAM-Fehlercodes.&lt;br /&gt;
* Neue [[Herstellen einer Verbindung zu Informix (FireDAC)#Verbindungsdefinitionsparameter|Verbindungsdefinitionsparameter]]: {{code|[https://www-01.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.sqls.doc/ids_sqs_2038.htm%23ids_sqs_2038 TxRetainLocks(EN)]}} und {{code|[https://www-304.ibm.com/support/knowledgecenter/SSGU8G_11.70.0/com.ibm.sqls.doc/ids_sqs_1165.htm TxLastCommitted(EN)]}}.&lt;br /&gt;
* Unterstützung für pessimistisches Sperren.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu ODBC-Datenquellen (FireDAC)|ODBC]]===&lt;br /&gt;
&lt;br /&gt;
* Neuer [[Herstellen einer Verbindung zu ODBC-Datenquellen (FireDAC)#Verbindungsdefinitionsparameter|Verbindungsdefinitionsparameter]]: {{code|ODBCVersion}} = {{code|3.8}} | {{code|3.0}}, der zur Festlegung der [https://msdn.microsoft.com/en-us/library/ee388580%28v=vs.85%29.aspx Behavior-Version (EN)] des ODBC-Treibermanagers verwendet wird. Setzen Sie den Parameterwert auf {{code|3.8}}, wenn Ihre Anwendung BLOB-Ausgabeparameter verwendet und der ODBC-Treiber die Behavior-Version {{code|3.8}} unterstützt.&lt;br /&gt;
* Unterstützung für [[Datentypzuordnung (FireDAC)|Datentypzuordnungen]] mit [[lib_de:FireDAC.Stan.Option.TFDMapRule.TypeMask|Datentypnamen]].&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu Oracle Server (FireDAC)|Oracle]]===&lt;br /&gt;
&lt;br /&gt;
* Für Oracle 10g und höher:&lt;br /&gt;
** Unterstützung für [http://docs.oracle.com/cd/B28359_01/appdev.111/b28395/oci10new.htm#CJGHFEDD Benachrichtigungen über Abfrageänderungen (EN)] in [[lib_de:FireDAC.Comp.Client.TFDEventAlerter|TFDEventAlerter]]. Weitere Informationen finden Sie in der neuen Demo {{Path|Object Pascal\Database\FireDAC\Samples\DBMS Specific\Oracle\CQN}}.&lt;br /&gt;
* Für Oracle 11g und höher:&lt;br /&gt;
** Neue Komponente, [[lib_de:FireDAC.Phys.Oracle.TFDOracleAdmin|TFDOracleAdmin]] zum Verwalten einer Oracle-Datenbankinstanz.&lt;br /&gt;
** Unterstützung für 64-Bit- und vorzeichenlose 32-Bit-Integerwerte.&lt;br /&gt;
** Unterstützung für das [http://docs.oracle.com/cd/B28359_01/appdev.111/b28395/oci10new.htm#CHDDIGCG implizite Abrufen der ROWID (EN)]. ROWID ist implizit in der SELECT-Liste {{Code|SELECT … FOR UPDATE}} enthalten, um das [[Eindeutige Kennzeichnungsfelder (FireDAC)#Kennzeichnungsspalten für Zeilen|effektive Bearbeiten von Datenmengen]] zu ermöglichen.&lt;br /&gt;
** Unterstützung für Netzwerk-Timeouts. Neue [[Herstellen einer Verbindung zu Oracle Server (FireDAC)#Verbindungsdefinitionsparameter|Verbindungsdefinitionsparameter]]: {{Code|ReadTimeout}} und {{Code|WriteTimeout}}.&lt;br /&gt;
* Für Oracle 12c und höher:&lt;br /&gt;
** Unterstützung für die 32K-Datentypen VARCHAR2, NVARCHAR2 und RAW.&lt;br /&gt;
** Unterstützung für native boolesche Werte in PL/SQL.&lt;br /&gt;
** Unterstützung für [https://docs.oracle.com/database/121/SQLRF/statements_7002.htm#SQLRF55655 Identitätsspalten (EN)], die als [[Auto-Inkrementierungsfelder (FireDAC)|Auto-Inkrementierungsfelder]] erkannt werden.&lt;br /&gt;
** Unterstützung für [https://docs.oracle.com/database/121/LNOCI/oci10new.htm#LNOCI73008 implizite Ergebnisse (EN)]. Mit [[lib_de:FireDAC.Comp.Client.TFDAdaptedDataSet.NextRecordSet|NextRecordSet]] können Sie diese verarbeiten.&lt;br /&gt;
** Verbesserte Erkennung und Synchronisierung des [[lib_de:FireDAC.Comp.Client.TFDCustomConnection.InTransaction|Transaktionsstatus]].&lt;br /&gt;
** Unterstützung für neue Authentifizierungsmodi im [[Herstellen einer Verbindung zu Oracle Server (FireDAC)#Verbindungsdefinitionsparameter|Verbindungsdefinitionsparameter]] {{Code|AuthMode}}: {{Code|SYSASM}}, {{Code|SYSBACKUP}}, {{Code|SYSDG}} und {{Code|SYSKM}}.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu PostgreSQL (FireDAC)|PostgreSQL]]===&lt;br /&gt;
&lt;br /&gt;
* Für PostgreSQL 9.2 und höher:&lt;br /&gt;
** Unterstützung für den Datentyp [[JSON|JSON]]&lt;br /&gt;
** Unterstützung für [http://www.postgresql.org/docs/current/static/rangetypes.html Bereichstypen (EN)].&lt;br /&gt;
* Für PostgreSQL 9.3 und später:&lt;br /&gt;
** Unterstützung zur Identifizierung von Objektfehlerfeldern. Zu diesem Zweck wurden [[lib_de:FireDAC.Phys.PGWrapper.TFDPgError|FireDAC.Phys.PGWrapper.TFDPgError]] die folgenden Eigenschaften hinzugefügt:&lt;br /&gt;
*** [[lib_de:FireDAC.Phys.PGWrapper.TFDPgError.SchemaName|SchemaName]]: Enthält den Namen des Schemas, das das dem Fehler zugeordnete Datenbankobjekt enthält. &lt;br /&gt;
*** [[lib_de:FireDAC.Phys.PGWrapper.TFDPgError.TableName|TableName]]: Enthält den Namen der Tabelle, die dem Fehler zugeordnet ist. &lt;br /&gt;
*** [[lib_de:FireDAC.Phys.PGWrapper.TFDPgError.ColumnName|ColumnName]]: Enthält den Namen der Spalte, die dem Fehler zugeordnet ist. &lt;br /&gt;
*** [[lib_de:FireDAC.Phys.PGWrapper.TFDPgError.TypeName|TypeName]]: Enthält den Namen des Datentyps, der dem Fehler zugeordnet ist. &lt;br /&gt;
*** [[lib_de:FireDAC.Phys.PGWrapper.TFDPgError.ConstraintName|ConstraintName]]: Enthält den Namen der Einschränkung, die dem Fehler zugeordnet ist. &lt;br /&gt;
* Für PostgreSQL 9.4 und höher:&lt;br /&gt;
** Unterstützung für den Datentyp [http://www.postgresql.org/docs/current/static/datatype-json.html JSONB (EN)].&lt;br /&gt;
* Unterstützung für PostgreSQL-Client- und -Server-Version 9.5.&lt;br /&gt;
* Verbesserte Unterstützung für eingeschränkte Arrays:&lt;br /&gt;
** Neuer [[Herstellen einer Verbindung zu PostgreSQL (FireDAC)#Verbindungsdefinitionsparameter|Verbindungsdefinitionsparameter]], {{code|ArrayScanSample}}, mit dem ermittelt wird, ob Arrays {{code|[[lib_de:Data.DB.TFieldType|ftArray]]}} oder {{code|[[lib_de:Data.DB.TFieldType|ftDataSet]]}} zugeordnet sind.&lt;br /&gt;
** Mit der Eigenschaft &amp;lt;code&amp;gt;[[lib_de:FireDAC.Stan.Param.TFDParam.ArrayType|TFDParam.ArrayType]]=atTable&amp;lt;/code&amp;gt; können Sie Arrays an den Server senden. &lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für [[Herstellen einer Verbindung zu SQLite-Datenbanken (FireDAC)|SQLite]]===&lt;br /&gt;
&lt;br /&gt;
* SQLite-Binärdateien wurden auf Version 3.9.2 aktualisiert.&lt;br /&gt;
* Für SQLite v3.8.9 und später:&lt;br /&gt;
** Unterstützung erweiterter Infos zu Indexspalten, einschließlich Infos darüber, ob sie absteigend oder aufsteigend verlaufen oder ob sie Basisspalten oder Ausdrucksspalten sind.&lt;br /&gt;
** Unterstützung für Ausdrucksindizes.&lt;br /&gt;
* Für OS X:&lt;br /&gt;
** Vorerzeugte, optimierte Client-Bibliothek. Sie sollten {{Path|libcgsqlite3.dylib}} bereitstellen, wenn Sie Anwendungen für OS X erstellen, die FireDAC und SQLite verwenden.&lt;br /&gt;
** Unterstützung für statisches Linken mit {{Path|libcgsqlite3.dylib}}.&lt;br /&gt;
** Unterstützung für Verschlüsselung.&lt;br /&gt;
&lt;br /&gt;
===Weitere FireDAC-Änderungen===&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:FireDAC.Comp.DataSet.TFDDataSet.Reconcile|TFDDataSet.Reconcile]] trägt standardmäßig keine konsolidierten Änderungen mehr ein. Wenn Sie {{True}} an {{Code|TFDDataSet.Reconcile}} übergeben, werden konsolidierte Änderungen allerdings immer eingetragen, auch wenn [[lib_de:FireDAC.Comp.DataSet.TFDDataSet.UpdateOptions|UpdateOptions]].[[lib_de:FireDAC.Stan.Option.TFDUpdateOptions.AutoCommitUpdates|AutoCommitUpdates]] {{False}} ist.&lt;br /&gt;
* Der Typ von [[lib_de:FireDAC.Stan.Intf.TFDVersion|TFDVersion]] wurde von [[lib_de:System.Int64|Int64]] in [[lib_de:System.UInt64|UInt64]] geändert.&lt;br /&gt;
* Die Units [[lib_de:FireDAC.Phys.ODBCBase|FireDAC.Phys.ODBCBase]] und [[lib_de:FireDAC.Phys.ODBCWrapper|FireDAC.Phys.ODBCWrapper]] wurden aus dem Package {{path|FireDACODBCDriver{{PackageVersion|Berlin}}.bpl}} in das Package {{path|FireDACCommonODBC{{PackageVersion|Berlin}}.bpl}} verschoben.&lt;br /&gt;
* Sie können eine [[lib_de:FireDAC.Stan.Intf.TFDMergeOptions|Gruppe von Zusammenführungsoptionen]] in Aufrufen von [[lib_de:FireDAC.Comp.DataSet.TFDDataSet.MergeDataSet|TFDDataSet.MergeDataSet]] festlegen.&lt;br /&gt;
&lt;br /&gt;
==[[Entwickeln von Cloud-Anwendungen|Cloud-Dienst]]==&lt;br /&gt;
&lt;br /&gt;
===Amazon===&lt;br /&gt;
&lt;br /&gt;
[[lib_de:Data.Cloud.AmazonAPI|AmazonAPI]] wird jetzt für folgende Aktionen unterstützt:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:Data.Cloud.AmazonAPI.TAmazonQueueService.PurgeQueue|Löschen aller Nachrichten]] in einer Queue.&lt;br /&gt;
* Verwalten des [http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html Lebenszyklus (EN)] der Objekte in einem Speicher mithilfe von [[lib_de:Data.Cloud.AmazonAPI.TAmazonStorageService.GetBucketLifecycleXML|GetBucketLifecycleXML]], [[lib_de:Data.Cloud.AmazonAPI.TAmazonStorageService.SetBucketLifecycle|SetBucketLifecycle]] und [[lib_de:Data.Cloud.AmazonAPI.TAmazonStorageService.DeleteBucketLifecycle|DeleteBucketLifecycle]].&lt;br /&gt;
&lt;br /&gt;
===Azure===&lt;br /&gt;
&lt;br /&gt;
*[[lib_de:Data.Cloud.AzureAPI|AzureAPI]] unterstützt jetzt die folgenden API-Versionen:&lt;br /&gt;
** Microsoft Azure Blob Service: {{Code|API Version 21.02.2015}}&lt;br /&gt;
** Microsoft Azure Table Service: {{Code|API Version 21.02.2015}}&lt;br /&gt;
** Microsoft Azure Queue Service: {{Code|API Version 21.02.2015}}&lt;br /&gt;
* Unterstützung für Append-Blobs:&lt;br /&gt;
** Jetzt können Sie [[lib_de:Data.Cloud.AzureAPI.TAzureBlobService.PutAppendBlob|Append-Blobs erstellen]].&lt;br /&gt;
**Sie können den vorhandenen Append-Blobs [[lib_de:Data.Cloud.AzureAPI.TAzureBlobService.AppendBlock|Daten hinzufügen]].&lt;br /&gt;
* Verbesserte Unterstützung für Zugriffsrichtlinien:&lt;br /&gt;
** Unterstützung für Zugriffsrichtlinien in Bezug auf [[lib_de:Data.Cloud.AzureAPI.TAzureQueueService.GetQueueACL|Warteschlangen]] und [[lib_de:Data.Cloud.AzureAPI.TAzureTableService.GetTableACL|Tabellen]] hinzugefügt.&lt;br /&gt;
** [[lib_de:Data.Cloud.AzureAPI.TPolicy|TPolicy]] und ihre Unterklassen ([[lib_de:Data.Cloud.AzureAPI.TBlobPolicy|TBlobPolicy]], [[lib_de:Data.Cloud.AzureAPI.TQueuePolicy|TQueuePolicy]], [[lib_de:Data.Cloud.AzureAPI.TTablePolicy|TTablePolicy]]) ersetzen [[lib_de:Data.Cloud.AzureAPI.TAccessPolicy|TAccessPolicy]], die jetzt veraltet ist.&lt;br /&gt;
* Verbesserte Leasing-Unterstützug für Blobs und Blob-Container:&lt;br /&gt;
** Unterstützung für [[lib_de:Data.Cloud.AzureAPI.TAzureBlobService.AcquireContainerLease|Leasing-Container]] und weitere Operationen in Zusammenhang mit Container-Leasing hinzugefügt.&lt;br /&gt;
** Jetzt können Sie [[lib_de:Data.Cloud.AzureAPI.TAzureBlobService.ChangeBlobLease|den Bezeichner eines Blob-Leasing ändern]].&lt;br /&gt;
** Sie können außerdem einen Bezeichner für das neue Leasing vorschlagen, wenn Sie ein [[lib_de:Data.Cloud.AzureAPI.TAzureBlobService.AcquireBlobLease|Blob mit einem Leasing belegen]].&lt;br /&gt;
* Diensteigenschaften und Statistiken:&lt;br /&gt;
** Unterstützung für Eigenschaften des [[lib_de:Data.Cloud.AzureAPI.TAzureBlobService.GetBlobServiceProperties|Blob-Diensts]], [[lib_de:Data.Cloud.AzureAPI.TAzureQueueService.GetQueueServiceProperties|Warteschlangendiensts]] und [[lib_de:Data.Cloud.AzureAPI.TAzureTableService.GetTableServiceProperties|Tabellendiensts]] hinzugefügt.&lt;br /&gt;
** Unterstützung für Statistiken des [[lib_de:Data.Cloud.AzureAPI.TAzureBlobService.GetBlobServiceStats|Blob-Diensts]], des [[lib_de:Data.Cloud.AzureAPI.TAzureQueueService.GetQueueServiceStats|Warteschlangendiensts]] und des [[lib_de:Data.Cloud.AzureAPI.TAzureTableService.GetTableServiceStats|Tabellendiensts]] hinzugefügt.&lt;br /&gt;
* Die Azure-Dienste stellen eine neue Eigenschaft bereit, [[lib_de:Data.Cloud.AzureAPI.TAzureService.Timeout|Timeout]], mit der Sie das Timeout für Ihre Anforderungen festlegen können.&lt;br /&gt;
&lt;br /&gt;
==[[REST-Clientbibliothek|REST-Clientbibliothek]]==&lt;br /&gt;
&lt;br /&gt;
* Die Unit {{Path|REST.Exception}} ist jetzt veraltet. Die Klassen dieser Unit gehören nun zur Unit [[lib_de:REST.Types|REST.Types]].&lt;br /&gt;
&lt;br /&gt;
==[[LiveBindings in RAD Studio|LiveBindings]]==&lt;br /&gt;
&lt;br /&gt;
* Auswertungs-Tastenkürzel sind ein neues, standardmäßig aktiviertes Feature von einigen Bindungskomponenten, das die Leistung von LiveBindings beim Füllen von Listen- oder Tabellensteuerelementen mit einfachen Bindungsausdrücken verbessert. Siehe [[LiveBindings in RAD Studio#Verwenden von Auswertungs-Tastenkürzel|Verwenden von Auswertungs-Tastenkürzel]].&lt;br /&gt;
* Die Klasse [[lib_de:System.Bindings.Outputs.TConverterUtils|TConverterUtils]] aus [[lib_de:System.Bindings.Outputs|System.Bindings.Outputs]] ist jetzt public. [[lib_de:System.Bindings.Outputs.TConverterUtils|TConverterUtils]] stellt eine Reihe von Hilfsmethoden zum Zuweisen eines Wertetyps zu einem anderen Wertetyp und zum Umwandeln eines Wertetyps in einen anderen Wertetyp bereit.&lt;br /&gt;
&lt;br /&gt;
==Konnektivitäts-Framework für ThingConnect IoT==&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis&#039;&#039;&#039;: ThingConnect-Komponenten können separate mit dem &#039;&#039;&#039;[[GetIt-Package-Manager|GetIt-Package-Manager]]&#039;&#039;&#039; heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Iot:ThingConnect|ThingConnect]]&#039;&#039;&#039; verwandelt Standard- und benutzerdefinierte intelligente Geräte, Sensoren und Wearables für das Internet der Dinge (Internet of Things, IoT) in einfach zu verwendende API-Komponenten. Weitere Informationen finden Sie in der [[Iot:ThingConnect|ThingConnect-Dokumentation]].&lt;br /&gt;
&lt;br /&gt;
==BeaconFence==&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis&#039;&#039;&#039;: BeaconFence kann separat mit dem &#039;&#039;&#039;[[GetIt-Package-Manager|GetIt-Package-Manager]]&#039;&#039;&#039; heruntergeladen werden. Installationsanweisungen für BeaconFence finden Sie auf [http://docwiki.embarcadero.com/IoT/en/Installing_BeaconFence dieser Seite].&lt;br /&gt;
&lt;br /&gt;
Wir haben [[Iot:BeaconFence|BeaconFence]] in {{Product|Berlin}} {{Version|Berlin}} neue Features hinzugefügt. Zu den Verbesserungen von BeaconFence zählen:&lt;br /&gt;
&lt;br /&gt;
* Zonenerkennung mit {{code|Position}} oder {{code|PositionInPath}}.&lt;br /&gt;
* Beacon-Unterstützung auf der Windows-Plattform.&lt;br /&gt;
* Anpassungsfunktion der aktuellen Position.&lt;br /&gt;
* Unterstützung für [[#Unterstützung des Eddystone-Beacon-Formats|Eddystone-Beacons]].&lt;br /&gt;
* Verbesserte Berechnungsleistung.&lt;br /&gt;
* Neue Funktionalität zum Zeichnen. &lt;br /&gt;
* Zwei neue Eigenschaften wurden für den Zugriff auf die zuletzt berechneten Positionen hinzugefügt:&lt;br /&gt;
** {{code|LastRawPosition}}&lt;br /&gt;
** {{code|LastPathPosition}}&lt;br /&gt;
* Neues Feature zum programmseitigen Aktivieren/Deaktivieren von Beacons. Die Eigenschaft {{code|UseToPositioning}} gibt an, ob der Beacon für die Berechnung der Position verwendet wird oder nicht.&lt;br /&gt;
&lt;br /&gt;
==[[RTL|RTL]]==&lt;br /&gt;
&lt;br /&gt;
===Bluetooth LE- und Beacon-Unterstützung in Windows 10===&lt;br /&gt;
&lt;br /&gt;
{{Product|Berlin}} {{Version|Berlin}} enthält die neue WinRT Bluetooth-API zur Unterstützung von [[Verwenden von Bluetooth Low Energy|Bluetooth Low Energy]] und [[Verwenden von Beacons|Beacons]] auf der Windows 10-Plattform. Sie können jetzt Anwendungen auf Windows 10 ausführen, die Folgendes ermöglichen:&lt;br /&gt;
&lt;br /&gt;
* Nach BLE-Geräten suchen, die Daten bekanntgeben.&lt;br /&gt;
* BLE-Bekanntgabedaten senden und empfangen.&lt;br /&gt;
* Benutzerdefinierte BLE-Bekanntgabedaten über die [[lib_de:System.Bluetooth.TBluetoothLEAdvertiseData.ManufacturerSpecificData|herstellerspezifischen Daten]] senden.&lt;br /&gt;
* Beacons mit [https://developer.apple.com/ibeacon/ iBeacon (EN)]- und [http://altbeacon.org/ AltBeacon (EN)]-Formaten verwenden.&lt;br /&gt;
&lt;br /&gt;
===Verbesserte Bluetooth LE-Ermittlungsleistung===&lt;br /&gt;
&lt;br /&gt;
Die RTL stellt jetzt eine neue Implementierung des [[Verwenden von Bluetooth Low Energy|BLE]]-Suchfilters bereit, der die neuen BLE-Chips mit geringem Energieverbrauch nutzt.&lt;br /&gt;
&lt;br /&gt;
Sie können jetzt nach bestimmten BLE-Geräten suchen, indem Sie unabhängige, angepasste Suchfilter verwenden. Dazu können Sie:&lt;br /&gt;
&lt;br /&gt;
*Ihren Filter als einen [[lib_de:System.Bluetooth.TBluetoothLEScanFilter|TBluetoothLEScanFilter]] erstellen.&lt;br /&gt;
*Die [[lib_de:System.Bluetooth.TBluetoothLEScanFilter Properties|Felder]] angeben, nach denen Ihre Geräte gefiltert werden sollen.&lt;br /&gt;
**Optional können Sie für Geräte, die [[lib_de:System.Bluetooth.TBluetoothLEAdvertiseData.ManufacturerSpecificData|ManufacturerSpecificData (herstellerspezifische Daten)]] wie z. B. [[Verwenden von Beacons#Beacon-Typen|AltBeacons und iBeacons]] nutzen, mit der Hilfsklasse [[lib_de:System.Beacon.TBeaconManufacturerDataHelper|TBeaconManufacturerDataHelper]] nach diesen Daten filtern. Übergeben Sie dann den [[lib_de:System.Beacon.TBeaconManufacturerDataHelper|TBeaconManufacturerDataHelper]]-Inhalt an den Filter.&lt;br /&gt;
&lt;br /&gt;
*Zum Schluss fügen Sie den Filter der [[lib_de:System.Bluetooth.TBluetoothLEScanFilterList|Filterliste]] hinzu und starten mithilfe der neuen Implementierung von [[lib_de:System.Bluetooth.TBluetoothLEManager.StartDiscovery|StartDiscovery]] die Ermittlung von Geräten.&lt;br /&gt;
&lt;br /&gt;
===Bluetooth LE enthält neue Ereignisse zum Behandeln von Abonnements für Merkmale===&lt;br /&gt;
&lt;br /&gt;
Die Komponente [[lib_de:System.Bluetooth.Components.TBluetoothLE|TBluetoothLE]] stellt zwei neue Ereignisse zum Behandeln von Abonnements für GATT-Server-Merkmale bereit: &lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Bluetooth.Components.TBluetoothLE.OnCharacteristicSubscribed|OnCharacteristicSubscribed]] wird ausgelöst, wenn ein Remote-Gerät ein GATT-Server-Merkmal [[lib_de:System.Bluetooth.Components.TBluetoothLE.SubscribeToCharacteristic|abonniert]].&lt;br /&gt;
* [[lib_de:System.Bluetooth.Components.TBluetoothLE.OnCharacteristicUnSubscribed|OnCharacteristicUnSubscribed]] wird ausgelöst, wenn ein Remote-Gerät das Abonnement eines GATT-Server-Merkmals [[lib_de:System.Bluetooth.Components.TBluetoothLE.UnSubscribeToCharacteristic|aufhebt]].&lt;br /&gt;
&lt;br /&gt;
Die bereits vorhandenen Ereignisse [[lib_de:System.Bluetooth.Components.TBluetoothLE.OnConnect|OnConnect]] und [[lib_de:System.Bluetooth.Components.TBluetoothLE.OnDisconnect|OnDisconnect]] wurden jetzt in die Komponente [[lib_de:System.Bluetooth.Components.TBluetoothLE|TBluetoothLE]] aufgenommen:&lt;br /&gt;
&lt;br /&gt;
* Das Ereignis [[lib_de:System.Bluetooth.Components.TBluetoothLE.OnConnect|OnConnect]] wird ausgelöst, wenn Sie eine Verbindung zu einem Remote-Gerät des GATT-Servers herstellen. &lt;br /&gt;
* Das Ereignis [[lib_de:System.Bluetooth.Components.TBluetoothLE.OnDisconnect|OnDisconnect]] wird ausgelöst, wenn Sie die Verbindung zu einem Remote-Gerät des GATT-Servers trennen.&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für das Eddystone Beacon-Format===&lt;br /&gt;
&lt;br /&gt;
Die RTL fügt Unterstützung für die Verwendung von [[Verwenden von Beacons|Beacons]] mit dem [https://github.com/google/eddystone/blob/master/protocol-specification.md Eddystone (EN)]-Format hinzu. Es gibt drei mögliche [[Verwenden von Beacons#Beacon-Typen|Typen]]:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Beacon.TEddystoneUID|EddystoneUID]]: Der Beacon sendet einen Bezeichner, der aus einem [[lib_de:System.Beacon.TEddystoneUID.Namespace|Namespace]] und einer Instanz ([[lib_de:System.Beacon.TEddystoneUID.Instance|Instance]]) besteht. &lt;br /&gt;
* [[lib_de:System.Beacon.TEddystoneURL|EddystoneURL]]: Der Beacon sendet einen [[lib_de:System.Beacon.TEddystoneURL.URL|URL]] in einem komprimierten Format.&lt;br /&gt;
* [[lib_de:System.Beacon.TEddystoneTLM|EddystoneTLM]]: Der Beacon sendet [[lib_de:System.Beacon.TEddystoneTLM Fields|Telemetrieninformationen]] im Zusammenhang mit dem Status des Beacons.&lt;br /&gt;
&lt;br /&gt;
===Verbesserte Beacon-Suchleistung===&lt;br /&gt;
&lt;br /&gt;
Durch Hinzufügen [[#Verbesserte Bluetooth LE-Ermittlungsleistung|neuer BLE-Suchfilter]] wurde das Beacon-Framework verbessert und bietet folgende Aktionen:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Beacon.TBeaconManager.StartScan|Suche]] nach beliebigen [[lib_de:System.Beacon.TKindofBeacon|Beacontypen]] zur gleichen Zeit.&lt;br /&gt;
* Suche nach nicht registrierten Beacons. &lt;br /&gt;
&lt;br /&gt;
Sie müssen jetzt einen zu überwachenden Beacon nicht registrieren. Stattdessen können Sie:&lt;br /&gt;
&lt;br /&gt;
* Auf Ihrem [[lib_de:System.Beacon.Components.TBeacon|TBeacon]]-Gerät den [[lib_de:System.Beacon.TBeaconScanMode|Extended]]-Modus festlegen.&lt;br /&gt;
* Die zu überwachenden nicht registrierten Beacons in der Eigenschaft [[lib_de:System.Beacon.Components.TCustomBeacon.ModeExtended|ModeExtended]] angeben.&lt;br /&gt;
* Die neue Methode [[lib_de:System.Beacon.TBeaconManager.StartScan|StartScan]] zum Suchen der angegebenen Beacons verwenden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Der letzte Punkt ermöglicht die simultane Suche nach Beacons verschiedener [[lib_de:System.Beacon.TKindofBeacon|Arten]].&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Verwenden von Beacons#Registrieren der zu überwachenden Bereiche|Registrieren von Beacons]] und [[Verwenden von Beacons#Starten und Beenden der Überwachung von Beacons|Suchen nach Beacons]].&lt;br /&gt;
&lt;br /&gt;
===Die Komponente TBeaconDevice unterstützt das Format Eddystone-Beacon===&lt;br /&gt;
&lt;br /&gt;
Durch Hinzufügen der [[#Unterstützung für das Eddystone Beacon-Format|Eddystone-Beacons]] wurde die Unterstützung für dieses Format in der Komponente [[lib_de:System.Beacon.Components.TBeaconDevice|TBeaconDevice]] ermöglicht.&lt;br /&gt;
&lt;br /&gt;
Mit [[lib_de:System.Beacon.Components.TBeaconDevice|TBeaconDevice]] können Sie jetzt Anwendungen auf Ihrem BLE-Gerät ausführen, die Näherungsdaten mit den [https://github.com/google/eddystone/blob/master/protocol-specification.md Spezifikationen (EN)] eines Eddystone-Beacons bekanntgeben. &lt;br /&gt;
&lt;br /&gt;
Sie können die Formate [[lib_de:System.Beacon.TEddystoneUID|EddystoneUID]] und [[lib_de:System.Beacon.TEddystoneURL|EddystoneURL]] über die Eigenschaft [[lib_de:System.Beacon.Components.TCustomBeaconDevice.BeaconType|BeaconType]] auswählen.&lt;br /&gt;
&lt;br /&gt;
Plattformunterstützung:&lt;br /&gt;
&lt;br /&gt;
* Auf &#039;&#039;&#039;Android&#039;&#039;&#039;-Geräten können Sie das Eddystone-Format mit Version 5.0 oder höher bekanntgeben.&lt;br /&gt;
* Auf &#039;&#039;&#039;iOS&#039;&#039;&#039;-Geräten können nur iBeacon-Frames bekanntgegeben werden.&lt;br /&gt;
* &#039;&#039;&#039;Windows&#039;&#039;&#039;-Geräte lassen das Eddystone-Format nicht zu, da mit der WinRT-API für BLE die bekanntgegebenen [[lib_de:System.Bluetooth.TBluetoothLEAdvertiseData.ServiceData|ServiceData]] nicht angepasst werden können.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen bei App-Tethering===&lt;br /&gt;
&lt;br /&gt;
Zu [[Verwenden von App-Tethering|App-Tethering]] wurden die folgenden Features hinzugefügt:&lt;br /&gt;
&lt;br /&gt;
* Zwei neue [[lib_de:System.Tether.NetworkAdapter.TTetheringNetworkAdapterCommon|Netzwerk-Adapter]], die die Unterstützung von [[Wikipedia:IP multicast|Multicast (EN)]] für [[Wikipedia:IPv4|IPv4]] und [[Wikipedia:IPv6|IPv6]] bereitstellen. Sie können [[Verbinden zu Remote-Anwendungen mithilfe von App-Tethering#Konfigurieren Ihrer Adapter|Ihren Manager für deren Verwendung konfigurieren]].&lt;br /&gt;
* Sie können einen Bereich von IPv4-Adressen als Ziel der [[lib_de:System.Tether.Manager.TTetheringManager.DiscoverManagers|Ermittlung von Remote-Managern]] festlegen.&lt;br /&gt;
* Unterstützung für [[lib_de:System.Tether.Manager.TTetheringAdapter|Protokollfilterung]]. Sie können die Protokollierung für bestimmte Elemente der App-Tethering-Architektur [[lib_de:System.Tether.Manager.TTetheringAdapter.AddLogItem|aktivieren]] oder [[lib_de:System.Tether.Manager.TTetheringAdapter.RemoveLogItem|deaktivieren]].&lt;br /&gt;
*[[lib_de:System.Tether.Manager.TTetheringProfile|Profile]] können jetzt steuern, ob Verbindungsanforderungen von Remote-Profilen zulässig sind oder nicht. Daher wurde:&lt;br /&gt;
** Das Ereignis {{Code|TTetheringProfile.OnConnectProfile}} in [[lib_de:System.Tether.Manager.TTetheringProfile.OnBeforeConnectProfile|OnBeforeConnectProfile]] und [[lib_de:System.Tether.Manager.TTetheringProfile.OnAfterConnectProfile|OnAfterConnectProfile]] unterteilt.&lt;br /&gt;
** Der Ereignistyp {{Code|TTetheringDisconnectEvent}} in [[lib_de:System.Tether.Manager.TTetheringProfileEvent|TTetheringProfileEvent]] umbenannt.&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für asynchrone HTTP-Anforderungen===&lt;br /&gt;
&lt;br /&gt;
Sie können jetzt HTTP-Anforderungen asynchron senden, sodass die Ausführung Ihrer Anwendung während eines Downloads nicht angehalten wird.&lt;br /&gt;
&lt;br /&gt;
Informationen zur Verwendung der HTTP-Client-Komponenten finden Sie unter [[Verwenden eines HTTP-Clients#Asynchrones Ausführen von Anforderungen|Asynchrones Ausführen von Anforderungen]]. Informationen zur Verwendung der HTTP-Client-API finden Sie unter [[lib_de:System.Net.HttpClient.THTTPClient|THTTPClient]].&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für verschlüsselte ZIP-Dateien===&lt;br /&gt;
&lt;br /&gt;
[[lib_de:System.Zip.TZipFile|TZipFile]] stellt ein [[lib_de:System.Zip.TZipFile.OnCreateDecompressStream|Ereignis]] (oder eine [[lib_de:System.Zip.TZipFile.CreateDecompressStreamCallBack|Callback-Funktion]]) zur Verfügung, die Sie beim [[lib_de:System.Zip.TZipFile.Extract|Extrahieren von verschlüsselten ZIP-Dateien]], wie z. B. passwortgeschützten ZIP-Dateien, zum Dekomprimieren nutzen können.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen von String-Listen===&lt;br /&gt;
&lt;br /&gt;
[[lib_de:System.Classes.TStrings|TStrings]] und Unterklassen wie [[lib_de:System.Classes.TStringList|TStringList]] enthalten nun folgende Features:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.AddPair|AddPair]] zum Hinzufügen von Schlüssel/Wertepaaren zu der String-Liste mit dem [[Wikipedia:Fluent interface|sprechenden Programmierstil]].&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.KeyNames|KeyNames]] zum Abrufen einer Liste mit Schlüsseln aus einer String-Liste, die Schlüssel/Wertepaare enthält.&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.Options|Options]] zum einfachen Steuern vieler boolescher Eigenschaften in der String-Liste.&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.SetStrings|SetStrings]], um die Strings aus einem anderen [[lib_de:System.Classes.TStrings|TStrings]]-Objekt zu kopieren. Die Prozedur entspricht [[lib_de:System.Classes.TStrings.Assign|Assign]], jedoch ohne mehrere Eigenschaften zu kopieren wie [[lib_de:System.Classes.TStrings.Assign|Assign]].&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.TrailingLineBreak|TrailingLineBreak]]; die Eigenschaft bestimmt, ob die Eigenschaft [[lib_de:System.Classes.TStrings.Text|Text]] nach der letzten Zeile einen Zeilenumbruch enthalten muss oder nicht.&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.Updating|Updating]]; die Eigenschaft gibt an, ob sich die String-Liste mitten in einer [[lib_de:System.Classes.TStrings.BeginUpdate|Aktualisierung]] befindet oder nicht.&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.UseLocale|UseLocale]]; die Eigenschaft legt die Implementierung fest, die die String-Liste zum Vergleichen der Strings verwenden muss.&lt;br /&gt;
* [[lib_de:System.Classes.TStrings.ExtractName|ExtractName]] erhielt ein neues Feld ({{code|AllNames}}), das die Rückgabe von [[lib_de:System.Classes.TStrings.ExtractName|ExtractName]] festlegt, wenn der zu analysierende String kein Schlüssel/Wertepaar ist.&lt;br /&gt;
&lt;br /&gt;
{{Code|TStringList}} erhält zudem neue [[lib_de:System.Classes.TStringList.Create|überladene Konstruktoren]] zum Vereinfachen der Erstellung von initialisierten Instanzen von {{Code|TStringList}}.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen von TMemIniFile===&lt;br /&gt;
&lt;br /&gt;
[[lib_de:System.IniFiles.TMemIniFile|TMemIniFile]] hat folgende Features erhalten:&lt;br /&gt;
&lt;br /&gt;
* Sie können den Wert der Eigenschaft [[lib_de:System.IniFiles.TMemIniFile.CaseSensitive|CaseSensitive]] jetzt im Aufruf an den [[lib_de:System.IniFiles.TMemIniFile.Create|Konstruktor]] angeben.&lt;br /&gt;
* Die neue Eigenschaft [[lib_de:System.IniFiles.TMemIniFile.Modified|Modified]] gibt an, ob die INI-Datei geändert wurde, nachdem sie [[lib_de:System.IniFiles.TMemIniFile.Create|von der Festplatte geladen wurde]].&lt;br /&gt;
* Die neue Eigenschaft [[lib_de:System.IniFiles.TMemIniFile.AutoSave|AutoSave]] bestimmt, ob die Instanz von {{Code|TMemIniFile}} Änderungen auf der Festplatte [[lib_de:System.IniFiles.TMemIniFile.UpdateFile|speichern]] soll, wenn sie [[lib_de:System.IniFiles.TMemIniFile.Destroy|freigegeben]] wird.&lt;br /&gt;
&lt;br /&gt;
===Pufferunterstützung für TFileStream===&lt;br /&gt;
&lt;br /&gt;
{{Code|TFDFileStream}} wurde aus [[lib_de:FireDAC.Stan.Util|FireDAC.Stan.Util]] nach [[lib_de:System.Classes|System.Classes]] verschoben und in [[lib_de:System.Classes.TBufferedFileStream|TBufferedFileStream]] umbenannt.&lt;br /&gt;
&lt;br /&gt;
[[lib_de:System.Classes.TBufferedFileStream|TBufferedFileStream]] ist ein Nachkomme von [[lib_de:System.Classes.TFileStream|TFileStream]], der mehrfache, aufeinander folgende kleine Schreib- und Lesevorgänge optimiert. Mit anderen Worten: [[lib_de:System.Classes.TBufferedFileStream|TBufferedFileStream]] fügt [[lib_de:System.Classes.TFileStream|TFileStream]] Pufferunterstützung hinzu.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: [[lib_de:System.Classes.TBufferedFileStream|TBufferedFileStream]] stellt keine Leistungssteigerung für lange oder sich an zufälliger Position befindenden Lese- oder Schreibvorgänge bereit.&lt;br /&gt;
&lt;br /&gt;
===Geänderte Syntax für JSON-Pfade für den Zugriff auf Objekteigenschaften===&lt;br /&gt;
&lt;br /&gt;
Die unterstützte [[lib_de:System.JSON.TJSONPathParser|JSON-Pfadsyntax]] für den Zugriff auf Objekteigenschaften, die in ihren Namen Punkte enthalten, wurde in {{Version|Berlin}} geändert:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Syntaxbeispiel&lt;br /&gt;
! {{Version|Seattle}}&lt;br /&gt;
! {{Version|Berlin}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{Code|root.&amp;quot;child.name&amp;quot;}}&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{Code|root[&amp;quot;child.name&amp;quot;]}}&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
{{Code|root[&#039;child.name&#039;]}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
{{V}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Optimierung von regulären Ausdrücken und String-Ersetzung===&lt;br /&gt;
&lt;br /&gt;
Die Verwendung von [[rad_de:Reguläre Ausdrücke|regulären Ausdrücken]] wird jetzt durch Verkürzung der Ausführungszeit und Verbesserung der Arbeitsspeichernutzung optimiert.&lt;br /&gt;
&lt;br /&gt;
Die folgende Tabelle enthält ein Beispiel für die beschleunigte Ausführungszeit bei Verwendung der optimierten regulären Ausdrücke auf Windows- und Android-Plattformen. Diese Beispiele wurden für eine einfache Analyse der regulären Ausdrücke (170 KB-Datei) berechnet.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Plattform&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Ausführungszeit (ms)&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Beschleunigung&lt;br /&gt;
|-&lt;br /&gt;
! Vorher&lt;br /&gt;
! Optimiert&lt;br /&gt;
|-&lt;br /&gt;
| Windows (Intel i7, Windows 7)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 5900&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 29&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; |  ~310x&lt;br /&gt;
|-&lt;br /&gt;
| Android (Motorola E(2nd gen), Android 5.0.2)&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 47075&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | 420&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot; | ~111x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Die Beschleunigungswerte in dieser Tabelle sind für dieses Beispiel spezifisch. Die Werte könnten je nach regulärem Ausdruck und Arbeitscomputer variieren.&lt;br /&gt;
&lt;br /&gt;
Eine sehr große Anzahl von Übereinstimmungen beeinflusst jetzt aufgrund der Optimierung die Auslastung des Arbeitsspeichers nicht wesentlich.&lt;br /&gt;
&lt;br /&gt;
Die Leistung der Funktion [[lib_de:System.SysUtils.StringReplace|StringReplace]] wurde auch verbessert.&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen für HTTP-Verbindungen===&lt;br /&gt;
&lt;br /&gt;
* Zwei neue Timeouts: {{code|ConnectionTimeout}} und {{code|ResponseTimeout}} für das HTTP-[[lib_de:System.Net.URLClient|Framework]] und die HTTP-[[lib_de:System.Net.HttpClientComponent|Komponente]].&lt;br /&gt;
&lt;br /&gt;
===Funktionen URLEncode / URLDecode===&lt;br /&gt;
&lt;br /&gt;
Die Funktionen zur URL-Codierung und -Decodierung wurden nach [[lib_de:System.NetEncoding|System.NetEncoding]] verschoben.&lt;br /&gt;
&lt;br /&gt;
Die Funktionen [[lib_de:System.Net.URLClient.TURI.URLEncode|System.Net.URLClient.TURI.URLEncode]] und [[lib_de:System.Net.URLClient.TURI.URLDecode|System.Net.URLClient.TURI.URLDecode]] sind jetzt veraltet. Verwenden Sie stattdessen [[lib_de:System.NetEncoding.TURLEncoding.URLDecode|System.NetEncoding.TURLEncoding.URLDecode]] und [[lib_de:System.NetEncoding.TURLEncoding.Encode|System.NetEncoding.TURLEncoding.Encode]].&lt;br /&gt;
&lt;br /&gt;
Die folgenden neuen Funktionen wurden [[lib_de:System.NetEncoding|System.NetEncoding]] hinzugefügt: &lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.NetEncoding.TURLEncoding.EncodePath|EncodePath]]&lt;br /&gt;
* [[lib_de:System.NetEncoding.TURLEncoding.EncodeAuth|EncodeAuth]]&lt;br /&gt;
* [[lib_de:System.NetEncoding.TURLEncoding.EncodeQuery|EncodeQuery]]&lt;br /&gt;
* [[lib_de:System.NetEncoding.TURLEncoding.EncodeForm|EncodeForm]]&lt;br /&gt;
&lt;br /&gt;
===Verwenden von [[lib_de:System.Messaging.TMessageBase|TMessageBase]] anstatt von [[lib_de:System.Messaging.TMessage|TMessage]] für C++-Projekte===&lt;br /&gt;
&lt;br /&gt;
Die Klasse [[lib_de:System.Messaging.TMessage|TMessage]] aus [[lib_de:System.Messaging|System.Messaging]] wurde in [[lib_de:System.Messaging.TMessageBase|TMessageBase]] umbenannt, um Mehrdeutigkeiten in C++-Projekten zu vermeiden, die andere Units mit eigener Meldungsbehandlung, wie [[lib_de:Winapi.Messages|Winapi.Messages]], einbeziehen.&lt;br /&gt;
&lt;br /&gt;
[[lib_de:System.Messaging.TMessage|TMessage]] verbleibt als Alias für [[lib_de:System.Messaging.TMessageBase|TMessageBase]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Zu den Typen TRect, TRectF, TPoint und TPointF hinzugefügte C++-Funktionen===&lt;br /&gt;
&lt;br /&gt;
Neue C++-Funktionen wurden [[lib_de:|System.Types]] hinzugefügt:&lt;br /&gt;
&lt;br /&gt;
* [[lib_de:System.Types.TRect|TRect]]&lt;br /&gt;
* [[lib_de:System.Types.TRectF|TRectF]]&lt;br /&gt;
* [[lib_de:System.Types.TPointF|TPointF]]&lt;br /&gt;
* [[lib_de:System.Types.TPoint|TPoint]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Weitere RTL-Änderungen===&lt;br /&gt;
&lt;br /&gt;
* Die Ereignisse [[lib_de:System.Bluetooth.TBluetoothGattServer.OnConnectedDevice|OnConnectedDevice]] und [[lib_de:System.Bluetooth.TBluetoothGattServer.OnDisconnectDevice|OnDisconnectDevice]] von [[lib_de:System.Bluetooth.TBluetoothGattServer|TBluetoothGattServer]] werden nun von Android unterstützt.&lt;br /&gt;
* Die Stringtypen [[lib_de:System.UTF8String|UTF8String]] und [[lib_de:System.RawByteString|RawByteString]] werden jetzt auf iOS und Android unterstützt.&lt;br /&gt;
* Die [[Verwenden der Parallel Programming Library|Parallel Programming Library]] enthält jetzt einen neuen Record, [[lib_de:System.Threading.TThreadPoolStats|TThreadPoolStats]], den Sie für Diagnosezwecke zum Erfassen einer Momentaufnahme des internen Zustands eines [[lib_de:System.Threading.TThreadPool|Thread-Pools]] verwenden können.&lt;br /&gt;
* Die [[lib_de:System.Net.HttpClient.THTTPResponse Methods|Getter-Methoden von THTTPResponse]] sind jetzt als public deklariert, daher müssen Sie die Interfaces [[lib_de:System.Net.URLClient.IURLResponse|IURLResponse]] oder [[lib_de:System.Net.HttpClient.IHTTPResponse|IHTTPResponse]] dafür nicht mehr verwenden.&lt;br /&gt;
* Die Klasse {{Code|EOperationCanceled}} aus der Unit [[lib_de:System.Threading|System.Threading]] wurde in [[lib_de:System.SysUtils.EOperationCancelled|EOperationCancelled]] umbenannt und in die Unit [[lib_de:System.SysUtils|System.SysUtils]] verschoben.&lt;br /&gt;
* In der RTL wurde die Unit-Abhängigkeit {{Path|Winapi.ActiveX}} von der Unit {{Path|Winapi.Winrt}} entfernt.&lt;br /&gt;
* Die Prozedur [[lib_de:FMX.Dialogs.ShowMessage|ShowMessage]] ist jetzt unter iOS asynchron.&lt;br /&gt;
* Die Funktion [[lib_de:System.TimeSpan.TTimeSpan.ToString|ToString]] des Typs [[lib_de:System.TimeSpan.TTimeSpan|TTimeSpan]] ist jetzt public.&lt;br /&gt;
* [[lib_de:System.Net.HttpClient|HTTP Client]]-Unterstützung zur automatischen Dekomprimierung einer Antwort in der [[lib_de:System.Net.HttpClient.IHTTPResponse.ContentEncoding|Inhaltscodierung]] [[Wikipedia:gzip|gzip (EN)]].&lt;br /&gt;
* Der [[lib_de:System.ZLib.TZDecompressionStream.Create|TZDecompressionStream-Konstruktor]] hat den neuen Parameter {{code|OwnsStream}}. Damit wird angegeben, ob diese Klasse Eigentümer des Komprimierungs-Streams ist oder nicht.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Frameworks und Bibliotheken#Native APIs von Plattformen|Native APIs]]==&lt;br /&gt;
&lt;br /&gt;
* Die in der Unit {{Path|Androidapi.JNI.Bluetooth}} enthaltene [http://developer.android.com/intl/es/reference/android/bluetooth/le/package-summary.html Android Bluetooth LE-API] wurde mit neuen Klassen und Methoden entsprechend den Änderungen aktualisiert, die [http://developer.android.com/intl/es/sdk/api_diff/21/changes.html in API-Level 21 (EN)] für die Android-Plattform 5.0 oder höher eingeführt wurden.&lt;br /&gt;
* {{Product|Berlin}} enthält neue Units für [[Wikipedia:DirectX#DirectX 12|DirectX 12 (EN)]].&lt;br /&gt;
* Units für [[Wikipedia:Windows Runtime|WinRT]] sind jetzt einfacher zu verwenden.&lt;br /&gt;
&lt;br /&gt;
==[[Delphi-Toolkette|{{Delphi|Berlin}}-Compiler]]==&lt;br /&gt;
&lt;br /&gt;
===Verbesserte Leistung bei der Compilierung von Generics===&lt;br /&gt;
&lt;br /&gt;
An {{Delphi|Berlin}}-Compilern wurde eine Reihe von Änderungen für Generics vorgenommen, wodurch die folgenden Verbesserungen erzielt wurden:&lt;br /&gt;
&lt;br /&gt;
* Die Analyse von Generics erfolgt jetzt bis zu dreimal schneller.&lt;br /&gt;
* Die Leistung von [[DCC32|DCC32]], [[DCC64|DCC64]] und [[DCCOSX|DCCOSX]] beim Linken von Projekten, die Generics ausgiebig verwenden, wurde verbessert.&lt;br /&gt;
&lt;br /&gt;
===Attribute werden von allen Compilern unterstützt===&lt;br /&gt;
&lt;br /&gt;
Alle {{Delphi|Berlin}}-Compiler unterstützen jetzt die folgenden Attribute:&lt;br /&gt;
&lt;br /&gt;
* {{code|[[Compiler-Attribute#Unsafe|unsafe]]}}&lt;br /&gt;
* {{code|[[Compiler-Attribute#Volatile|volatile]]}}&lt;br /&gt;
* {{code|[[Compiler-Attribute#Weak|weak]]}}&lt;br /&gt;
&lt;br /&gt;
===Weitere Verbesserungen der {{Delphi|Berlin}}-Compiler===&lt;br /&gt;
&lt;br /&gt;
* Der für [[E2163 Zu viele bedingte Symbole (Delphi)|bedingte Symbole]] zugewiesene Speicherplatz wurde von 256 Byte auf 4096 Byte erweitert.&lt;br /&gt;
* Die Größe von [[lib_de:System.Extended|Extended]] beträgt nun aus Gründen der Kompatibilität mit [[BCCOSX|BCCOSX]] 16 Byte.&lt;br /&gt;
* Zur Durchsetzung der Sichtbarkeitssemantik können [[Unterstützende Klassen und Records (Delphi)|unterstützende Klassen und Records]] nicht auf private Member der Klassen oder Records zugreifen, die sie erweitern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;delphi&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Compiler für C++|Compiler für C++]]==&lt;br /&gt;
&lt;br /&gt;
===Aktualisierung von BCCAARM und BCCIOSARM===&lt;br /&gt;
&lt;br /&gt;
[[BCCAARM|BCCAARM]] und [[BCCIOSARM|BCCIOSARM]] wurden für die Verwendung von [http://llvm.org/releases/3.3/tools/clang/docs/ReleaseNotes.html Clang 3.3] und [http://llvm.org/releases/3.3/docs/ReleaseNotes.html LLVM 3.3] aktualisiert.&lt;br /&gt;
&lt;br /&gt;
===Verbesserte C++-Unterstützung für {{Delphi|Berlin}}-Typen===&lt;br /&gt;
&lt;br /&gt;
In [[Durch Clang erweiterte C++-Compiler|C++-Compilern, die durch Clang erweitert wurden]]:&lt;br /&gt;
&lt;br /&gt;
* Sie können für [[lib_de:System.UnicodeString|Strings]] und für die folgenden RTL-Container und abgeleiteten Container [http://en.cppreference.com/w/cpp/language/range-for bereichsbasierte for-Schleifen] und [http://en.cppreference.com/w/cpp/iterator STL-Iteratoren] verwenden: [[lib_de:System.DynamicArray|DynamicArray]], [[lib_de:System.Classes.TCollection|TCollection]] und [[lib_de:System.Generics.Collections.TEnumerable|TEnumerable]].&lt;br /&gt;
* Sie können [[Behandlung der anonymen Methoden von Delphi in C++#Verwenden eines Lambda-Ausdrucks|Lambda-Ausdrücke]] in Aufrufen von [[lib_de:System.Threading.TParallel.For|TParallel::For]], [[lib_de:System.Threading.TTask.Create|TTask::Create]] oder [[lib_de:System.Threading.TTask.Future|TTask::Future]] verwenden.&lt;br /&gt;
&lt;br /&gt;
===Änderungen von C++-Optionen===&lt;br /&gt;
&lt;br /&gt;
In [[Durch Clang erweiterte C++-Compiler|C++-Compilern, die durch Clang erweitert wurden]]:&lt;br /&gt;
&lt;br /&gt;
* Die Befehlszeilenoption {{code|-PC}} zum Aktivieren der parallelen Compilierung in der Befehlszeile ist jetzt veraltet. Verwenden Sie stattdessen &amp;lt;code&amp;gt;--jobs=&amp;amp;lt;N&amp;amp;gt;&amp;lt;/code&amp;gt;. Weitere Informationen finden Sie unter [[Befehlszeilenoberflächen von C++-Compilern, die durch Clang erweitert wurden#Verwenden der parallelen Compilierung|Verwenden der parallelen Compilierung]].&lt;br /&gt;
* Die Befehlszeilenoption {{code|-fmath-errno}}, mit der die Anzeige von Fehlern von mathematischen Funktionen angefordert wird, kann jetzt in der [[Ein erster Blick auf die IDE|IDE]] konfiguriert werden. Sie finden die Option in den [[C++-Compiler Erweitert#Gleitkomma-Optionen|Gleitkomma-Optionen]] unter {{Menu|Projekt &amp;amp;gt; Optionen &amp;amp;gt; C++-Compiler &amp;amp;gt; Erweitert}}. Diese Option ist standardmäßig für die [[Durch Clang erweiterte C++-Compiler|durch Clang erweiterten C++-Compiler]] aktiviert.&lt;br /&gt;
&lt;br /&gt;
===Weitere Änderungen an C++-Compilern===&lt;br /&gt;
&lt;br /&gt;
* Der [[BCC32C|BCC32C]]-Compiler stellt jetzt eine Abhängigkeitsprüfung bereit. Der Befehl [[Alle Projekte compilieren|Make]] compiliert nur die Dateien, die seit dem letzten Erzeugen geändert wurden, und Dateien, deren Abhängigkeiten sich geändert haben.&lt;br /&gt;
* Die Bibliothek [http://compiler-rt.llvm.org/ compiler-rt (EN)] steht jetzt für [[BCC32C|BCC32C]] und [[BCC64|BCC64]] zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
===Entfernung der Legacyheader===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Hinweis&#039;&#039;&#039;: Header der Vorgängerversionen werden nur für Windows und OSX bereitgestellt. In jedem Fall müssen Sie die Legacyheader für iOS oder Android nicht einbeziehen (&amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#include&amp;lt;/source&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Wie in [http://docwiki.embarcadero.com/RADStudio/Berlin/en/What&#039;s_New_in_XE8#C.2B.2B_Changes_for_XE8 C++-Änderungen für XE8] vorgewarnt, wurden die Header der Vorgängerversionen in den folgenden Fällen entfernt:&lt;br /&gt;
&lt;br /&gt;
* In Units, die in {{product|XE2}} {{version|XE2}} oder später eingeführt wurden. Diese Änderung kann zu Fehlern führen, wenn Sie anstelle von voll qualifizierten Headern nicht qualifizierte Header einführen. Geben Sie beispielsweise für die Verwendung der Unit {{code|System.SysUtils}} statt &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#include &amp;lt;SysUtils.hpp&amp;gt;&amp;lt;/source&amp;gt; &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#include &amp;lt;System.SysUtils.hpp&amp;gt;&amp;lt;/source&amp;gt; ein.&lt;br /&gt;
* In einigen Units, die vor {{product|XE2}} {{version|XE2}} eingeführt wurden, wie z. B. {{code|Soap.SOAPMidas}}. In diesem Fall ist {{code|Soap.SOAPMidas}} der Name der Unit und der Name des Package. Deshalb sollten Sie zur Vermeidung von Namenskonflikten &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#include &amp;lt;Soap.SOAPMidas.hpp&amp;gt;&amp;lt;/source&amp;gt; anstatt von &amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;#include &amp;lt;SOAPMidas.hpp&amp;gt; verwenden&amp;lt;/source&amp;gt;.&lt;br /&gt;
* Die DirectX Übersetzungsheader.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[IDE-Referenz und Hilfsprogramme|IDE]]==&lt;br /&gt;
&lt;br /&gt;
===Unverankerter Formular-Designer===&lt;br /&gt;
&lt;br /&gt;
Sie können jetzt den Formular-Designer für die VCL und für FireMonkey frei platzierbar anzeigen. Sie können den eingebetteten Designer in den [[Optionen für den Formular-Designer|Optionen für den Formular-Designer]] aktivieren oder deaktivieren. Um den Formular-Designer frei platzierbar anzeigen, wählen Sie {{Menu|Tools &amp;amp;gt; Optionen &amp;amp;gt; Formular-Designer}}, deaktivieren das Kontrollkästchen &#039;&#039;&#039;Eingebetteter Designer&#039;&#039;&#039; und klicken auf &#039;&#039;&#039;OK&#039;&#039;&#039;. Die Änderungen werden beim nächsten Start der IDE wirksam.&lt;br /&gt;
&lt;br /&gt;
===[[FireUI Live-Vorschau|FireUI Live-Vorschau]]===&lt;br /&gt;
&lt;br /&gt;
[[FireUI Live-Vorschau|FireUI Live-Vorschau]] ist ein neues Tool in {{product}}, das das aktive Formular der entworfenen Anwendung, gleichzeitig an verschiedene Geräte übermittelt, um festzustellen, wie das Anwendungsdesign in Echtzeit aussieht.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;FireUI Live-Vorschau&#039;&#039;&#039; besteht aus zwei Teilen:&lt;br /&gt;
&lt;br /&gt;
* [[FireUI Live-Vorschau (IDE)|FireUI Live-Vorschau (IDE)]]: Die IDE fungiert als Server, der die Verbindungen der Geräte verwaltet.&lt;br /&gt;
* [[FireUI App-Vorschau|FireUI App-Vorschau]]: Die Client-Anwendung, über die die Zielgeräte eine Verbindung zu einer IDE-Instanz herstellen.&lt;br /&gt;
&lt;br /&gt;
[[FireUI Live-Vorschau (IDE)|FireUI Live-Vorschau (IDE)]] benötigt keine weitere Installation und enthält die Standardkonfiguration. Informationen zum Konfigurieren zusätzlicher IDE-Optionen finden Sie unter [[FireUI Live-Vorschau (IDE-Optionen)|FireUI Live-Vorschau (IDE-Optionen)]].&lt;br /&gt;
&lt;br /&gt;
Informationen zum Beziehen des Clients finden Sie unter [[FireUI App-Vorschau#Beziehen der FireUI App-Vorschau|Beziehen der FireUI App-Vorschau]].&lt;br /&gt;
&lt;br /&gt;
===[[GetIt-Abhängigkeiten|GetIt-Abhängigkeiten]]===&lt;br /&gt;
&lt;br /&gt;
Neue [[Projektoptionen (Dialogfeld)|Projektoptionen-Seite]] zur Verwaltung von GetIt-Abhängigkeiten.&lt;br /&gt;
&lt;br /&gt;
In diesem Dialogfeld können Sie die Projektabhängigkeiten in Bezug auf die Packages des [[GetIt-Package-Manager|GetIt-Package-Managers]] festlegen.&lt;br /&gt;
&lt;br /&gt;
Die Optionsseite &#039;&#039;&#039;GetIt-Abhängigkeiten&#039;&#039;&#039; befindet sich unter {{Menu|Projekt &amp;amp;gt; Optionen &amp;amp;gt; [[GetIt-Abhängigkeiten|GetIt-Abhängigkeiten]]}}.&lt;br /&gt;
&lt;br /&gt;
===[[Verwenden des Positionsmarkenstapels|Positionsmarkenstapel]]===&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;&#039;Positionsmarkenstapel&#039;&#039;&#039; stellt eine Methode zur Navigation durch Ihren Quellcode dar, bei der Sie Ihrem Code aufeinandergestapelte Positionsmarken hinzufügen. Anhand der Positionsmarken können Sie dann zurücknavigieren. Dabei wird jeweils zur letzten Positionsmarke des Stapels navigiert, also zur letzten Positionsmarke, die auf dem Stapel abgelegt wurde.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Quelltext-Editor#Stapelpositionsmarken|Stapelpositionsmarken]] und [[Verwenden des Positionsmarkenstapels|Verwenden des Positionsmarkenstapels]].&lt;br /&gt;
&lt;br /&gt;
===[[Quelltext-Editor#Auswahlerweiterung|Auswahlerweiterung]]===&lt;br /&gt;
&lt;br /&gt;
Mit der &#039;&#039;&#039;Auswahlerweiterung&#039;&#039;&#039; können Sie den Bezeichner, auf dem sich der Cursor befindet, auswählen und die Auswahl zu größeren syntaktischen Gruppen erweitern, wie z. B. Anweisung, Zeile, Block, Methode usw. Drücken Sie die Tastenkombination {{Key|STRG+W}}, um die Auswahl zu starten und zu erweitern.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Quelltext-Editor#Auswahlerweiterung|Auswahlerweiterung]].&lt;br /&gt;
&lt;br /&gt;
===Methodentoxizitäts-Metriken===&lt;br /&gt;
&lt;br /&gt;
Die neue Projektseite &#039;&#039;&#039;[[Methodentoxizitäts-Metriken|Methodentoxizitäts-Metriken]]&#039;&#039;&#039; ({{Menu|Projekt &amp;amp;gt; Methodentoxizitäts-Metriken}}) enthält Metriken zu den Funktionen Ihres aktiven Projekts, die Sie zum Suchen von für eine Umgestaltung (Refactoring) geeigneten Methoden verwenden können. Sie können Ihre Metriken im CSV-Format exportieren und die Schwellenwerte für Schlüsselmetriken auf der neuen Optionsseite &#039;&#039;&#039;[[Toxizitätsmetriken|Toxizitätsmetriken]]&#039;&#039;&#039; anpassen.&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen der Strukturansicht für C++===&lt;br /&gt;
&lt;br /&gt;
Die &#039;&#039;&#039;[[Strukturansicht|Strukturansicht]]&#039;&#039;&#039; wurde verschiedenen Verbesserungen für C++ unterzogen, wie:&lt;br /&gt;
&lt;br /&gt;
* Unterstützung für [[C++11|C++11]]-Features, wie [[Von C++-Compilern aus RAD Studio, die durch Clang erweitert wurden, unterstützte C++11-Features#Alias-Vorlagen|Alias-Vorlagen]] oder [[Von C++-Compilern aus RAD Studio, die durch Clang erweitert wurden, unterstützte C++11-Features#Initialisierungslisten|Initialisierungslisten]].&lt;br /&gt;
* Unterstützung für Funktionen, die einen [http://en.cppreference.com/w/cpp/language/pointer#Pointers_to_functions Funktionszeiger (EN)] zurückgeben.&lt;br /&gt;
* Unterstützung für [http://en.cppreference.com/w/cpp/language/bit_field unbenannte Bit-Felder (EN)].&lt;br /&gt;
* Verbesserte Unterstützung für [[Throw|throw]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Verbesserungen des Android-Dienstes===&lt;br /&gt;
&lt;br /&gt;
* Neuer Experte für das automatische Entfernen von [[Android-Dienst|Android-Dienst]]-Projekten aus [[Geräteübergreifende Anwendung|geräteübergreifenden Anwendungen]].&lt;br /&gt;
*[[Projektabhängigkeiten|Projekt-Abhängigkeiten]] sind automatisch aktiviert:&lt;br /&gt;
** Diese Option ermöglicht, dass alle [[Android-Dienst|Android-Dienst]]-Projekte, die einer [[Geräteübergreifende Anwendung|geräteübergreifenden Anwendung]] hinzugefügt wurden, automatisch vor der Hauptanwendung erzeugt werden.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Erstellen von Android-Diensten|Erstellen von Android-Diensten]].&lt;br /&gt;
&lt;br /&gt;
===Unterstützung für die Ausführung von iOS-Ad-hoc-Anwendungen===&lt;br /&gt;
&lt;br /&gt;
Sie können jetzt [[Ausführen von iOS-Anwendungen auf einem iOS-Gerät|iOS-Anwendungen]], die mit der [[Übersicht über Zielplattformen#Verwenden des Konfigurationsknotens|Plattformkonfiguration]] &#039;&#039;&#039;Ad-hoc&#039;&#039;&#039; erstellt werden, aus der IDE ausführen.&lt;br /&gt;
&lt;br /&gt;
===Anpassbare Datei info.plist===&lt;br /&gt;
&lt;br /&gt;
Sie können [[Anpassen der Datei info.plist|Ihre info.plist-Datei]] für OS X- und iOS-Anwendungen anpassen.&lt;br /&gt;
&lt;br /&gt;
===Entwurfszeit-Verbesserungen für Android-Smartwatches===&lt;br /&gt;
&lt;br /&gt;
Der &#039;&#039;&#039;[[Formular-Designer|Formular-Designer]]&#039;&#039;&#039; stellt jetzt Folgendes zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
* Zwei spezielle [[Formular-Designer#Ansichtsauswahl|Ansichten]] für Android-Smartwatches.&lt;br /&gt;
* Eine [[Geräteübergreifende Vorschau|Vorschau]] des Designbereichs für vier verschiedene Android-Smartwatches.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Erstellen einer Android-App#Erstellen von Anwendungen für Android-Smartwatches|Erstellen von Anwendungen für Android-Smartwatches]].&lt;br /&gt;
&lt;br /&gt;
===Neue Optionsseite für Dateizuordnungen===&lt;br /&gt;
&lt;br /&gt;
In früheren Versionen mussten Sie während der Installation auswählen, welche Dateierweiterungen {{Product|Berlin}} zugeordnet werden sollten.&lt;br /&gt;
&lt;br /&gt;
Jetzt können Sie {{Product|Berlin}}-Dateizuordnungen auf der neuen Optionsseite &#039;&#039;&#039;[[Dateizuordnung|Dateizuordnung]]&#039;&#039;&#039; konfigurieren.&lt;br /&gt;
&lt;br /&gt;
===Neue Option zum Anzeigen von Informationsmeldungen vom Delphi-Compiler===&lt;br /&gt;
&lt;br /&gt;
Die IDE ermöglicht jetzt die Anzeige von Informationsmeldungen vom {{delphi}}-Compiler auf der Ausgabe-Registerkarte [[Fenster: Meldungen|Meldungsfenster]].&lt;br /&gt;
&lt;br /&gt;
In {{Menu|Projekt &amp;amp;gt; Optionen &amp;amp;gt; [[Delphi-Compiler|Delphi-Compiler]]}} können Sie die Option &#039;&#039;&#039;Allgemeine Meldungen anzeigen&#039;&#039;&#039; für Ihr Projekt aktivieren.&lt;br /&gt;
&lt;br /&gt;
===Neue Option zum Ein-/Ausblenden der [[Quelltext-Editor#Navigationssymbolleiste|Navigationssymbolleiste]]===&lt;br /&gt;
&lt;br /&gt;
In der IDE können Sie jetzt die [[Quelltext-Editor#Navigationssymbolleiste|Navigationssymbolleiste]] für den [[Quelltext-Editor|Quelltext-Editor]] ausblenden.&lt;br /&gt;
&lt;br /&gt;
Die neue Option &#039;&#039;&#039;Navigationssymbolleiste anzeigen&#039;&#039;&#039; befindet sich in {{menu| Tools &amp;amp;gt; Optionen &amp;amp;gt; Editor-Optionen &amp;amp;gt; Anzeige}}.&lt;br /&gt;
&lt;br /&gt;
Weitere Informationen finden Sie unter [[Verwenden der Navigationssymbolleiste#So blenden Sie die Navigationssymbolleiste aus|So blenden Sie die Navigationssymbolleiste aus]]. &lt;br /&gt;
&lt;br /&gt;
===High-DPI-Unterstützung===&lt;br /&gt;
&lt;br /&gt;
Die IDE bietet jetzt [https://msdn.microsoft.com/en-us/library/windows/desktop/dd371771%28v=vs.85%29.aspx DPI-Unterstützung (EN)]. Damit wird die Benutzerfreundlichkeit auf Systemen erhöht, die einen höheren DPI-Wert als 96 PPI verwenden.&lt;br /&gt;
&lt;br /&gt;
===Weitere IDE-Änderungen===&lt;br /&gt;
&lt;br /&gt;
* Die [[Verwenden der CPU-Ansicht|CPU-Ansicht]] unterstützt das Debuggen von iOS- und Android-Anwendungen.&lt;br /&gt;
&lt;br /&gt;
==[[Anwendungen debuggen - Index|Debugger]]==&lt;br /&gt;
&lt;br /&gt;
===iOS- und Android-Debugger===&lt;br /&gt;
&lt;br /&gt;
* Verbesserte Unterstützung für [[Strukturierte Typen#Dynamische Arrays|Dynamische Arrays]] in {{Delphi}}.&lt;br /&gt;
&lt;br /&gt;
===64-Bit-iOS-Debugger===&lt;br /&gt;
&lt;br /&gt;
Der 64-Bit-iOS-Debugger verfügt nun über die folgenden Features:&lt;br /&gt;
&lt;br /&gt;
* Unicode-Unterstützung.&lt;br /&gt;
* Verbesserte Unterstützung für {{Delphi}}-Arrays, -Strings und -Zeichen.&lt;br /&gt;
* Unterstützung für nicht-nullbasierte Arrays.&lt;br /&gt;
* Unterstützung zum Auswerten von Eigenschaften und Varianten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l s=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Möglichkeit der Definition von Haltepunkten in C++-Headerdateien.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;l e=&amp;quot;cpp&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Hilfsprogramme|Hilfsprogramme]]==&lt;br /&gt;
&lt;br /&gt;
* Das [[Java2OP.exe: Der Generator für native Android-Brückendateien|Java2OP.exe]]-Tool arbeitet jetzt mit JDK 8.&lt;br /&gt;
* Neues Tool &#039;&#039;&#039;SdkTransform.exe&#039;&#039;&#039;. Damit können Objective-C- oder C++-Header in {{Delphi|Berlin}}-Header umgewandelt werden.&lt;br /&gt;
&lt;br /&gt;
==[[samp_en:Main Page|Beispielanwendungen]]==&lt;br /&gt;
&lt;br /&gt;
Neue Beispielanwendungen wurden {{Version|Berlin}} hinzugefügt:&lt;br /&gt;
&lt;br /&gt;
* C++-Version der Beispiele:&lt;br /&gt;
** Das Beispiel [[samp_en:RTL.RegExpressionFMX Sample|RTL.RegExpression FMX]].&lt;br /&gt;
** Das Beispiel [[samp_en:RTL.RegExpressionVCL Sample|RTL.RegExpression VCL]].&lt;br /&gt;
** Das Beispiel [[samp_en:VCL.Windows 10 SharingContract Sample|VCL.Windows 10 SharingContract]].&lt;br /&gt;
* EMS-Beispiele:&lt;br /&gt;
** Das Beispiel [[samp_en:EMS.ThingPoint IoT Sample|EMS.ThingPoint IoT]].&lt;br /&gt;
** Das Beispiel [[samp_en:EMS.APIDocAttributes Sample|EMS.APIDocAttributes]].&lt;br /&gt;
* {{FM|Berlin}}-Beispiele:&lt;br /&gt;
** Das Beispiel [[samp_en:FMX.Remote Service Demo Sample|FMX.Remote Service Demo]].&lt;br /&gt;
** Das Beispiel [[samp_en:FMX.Birthday Reminder Sample|FMX.Birthday Reminder Demo]].&lt;br /&gt;
** Das Beispiel [[samp_en:FMX.SimplePhysics Sample|FMX.SimplePhysics]].&lt;br /&gt;
** Das Beispiel [[samp_en:FMX.StreamingMedia Sample|FMX.StreamingMedia]].&lt;br /&gt;
* FireDAC-Beispiele:&lt;br /&gt;
** Das Beispiel [[samp_en:FireDAC.InterBase Arrays Sample|FireDAC.InterBase Arrays]].&lt;br /&gt;
** Das Beispiel [[samp_en:FireDAC.PostgreSQL Ranges Sample|FireDAC.PostgreSQL Ranges]].&lt;br /&gt;
** Das Beispiel [[samp_en:FireDAC.PostgreSQL Arrays Sample|FireDAC.PostgreSQL Arrays]].&lt;br /&gt;
** Das Beispiel [[samp_en:FireDAC.SQLite Encryption Sample|FireDAC.SQLite Encryption]]. &lt;br /&gt;
** Das Beispiel [[samp_en:FireDAC.Oracle CQN Sample|FireDAC.Oracle CQN]]. &lt;br /&gt;
** Das Beispiel [[samp_en:FireDAC.MongoDB.ListView Sample|FireDAC.MongoDB ListView]].&lt;br /&gt;
* RTL-Beispiele:&lt;br /&gt;
** Das Beispiel [[samp_en:RTL.ExtendedBeaconScanner Sample|RTL.ExtendedBeaconScanner]].&lt;br /&gt;
** Das Beispiel [[samp_en:RTL.HttpAsyncDownload Sample|RTL.HttpAsyncDownload]].&lt;br /&gt;
&lt;br /&gt;
==Hilfe==&lt;br /&gt;
&lt;br /&gt;
* Für [[Hilfe zur Hilfe - CHM|CHM-Dateien]] ist nun die Registerkarte &#039;&#039;&#039;Favoriten&#039;&#039;&#039; verfügbar.&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=%C3%9Cberblick_zu_ThingPoint&amp;diff=208407</id>
		<title>Überblick zu ThingPoint</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=%C3%9Cberblick_zu_ThingPoint&amp;diff=208407"/>
		<updated>2016-06-08T14:56:23Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Internal Review. LOC-22111&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Enterprise Mobility Services (EMS)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ThingPoint™&#039;&#039;&#039; erweitert die Funktionalität von EMS und stellt einen Zugriffspunkt für Unternehmen zwischen Remote-Gadgets und Geräten bereit. Mit &#039;&#039;&#039;ThingPoint&#039;&#039;&#039; können Sie große Mengen von am Rande erfassten IoT-Daten lokal speichern, filtern und berechnen und dabei sicherstellen, dass nur wichtige Daten mit dem zentralen Repository synchronisiert werden.&lt;br /&gt;
&lt;br /&gt;
Ein &#039;&#039;&#039;ThingPoint&#039;&#039;&#039; ist eine Anwendung, die Sie mithilfe von verschiedenen IoT-Features erstellen. Eine ThingPoint-Anwendung kann eine [[Iot:ThingConnect|ThingConnect]]-Komponente, [[EMS-EdgeModules|EMS-EdgeModules]]-Komponenten und deren [[Übersicht über EMS-Ressourcen|Ressourcen]] enthalten. &lt;br /&gt;
&lt;br /&gt;
Eine ThingPoint-Anwendung wird normalerweise in der Nähe von IoT-Geräten ausgeführt. ThingPoints stellen für benutzerdefinierten Code einen einfachen Zugriff zum Aufrufen von EMS bereit. Der benutzerdefinierte Code eines ThingPoint verwendet die [[Iot:ThingConnect|ThingConnect-Komponenten]] zum Koppeln von Geräten.&lt;br /&gt;
&lt;br /&gt;
Eine ThingPoint-Anwendung kann als Antwort auf eine REST-Anforderung von einer [[EMS-Client-Anwendung|EMS-Client-Anwendung]] aus dem [[EMS-Server|EMS-Server]] aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
[[File:ThingPoints.png|500px]]&lt;br /&gt;
&lt;br /&gt;
==Hauptmerkmale==&lt;br /&gt;
&lt;br /&gt;
Ein ThingPoint kann: &lt;br /&gt;
&lt;br /&gt;
* Durch REST-API-Aufrufe bilateral mit dem [[EMS-Server|EMS-Server]] kommunizieren. Eine ThingPoint-Anwendung mit EMS-EdgeModules kann auf Anforderungen eines EMS-Servers antworten.  &lt;br /&gt;
* Edge-Daten in einer SQL-Datenbank zwischenspeichern.&lt;br /&gt;
* Daten von sich in der Nähe befindenden [[Iot:ThingConnect|ThingConnect-Geräten]] sammeln.&lt;br /&gt;
* Die Vor- und Nachverarbeitung von IoT-Daten zulassen, während diese von den [[Iot:ThingConnect|ThingConnect-Geräten]] gesammelt werden.&lt;br /&gt;
* Gesammelte IoT-Daten anhand verschiedener Filterkriterien filtern.&lt;br /&gt;
&lt;br /&gt;
==Themen==&lt;br /&gt;
&lt;br /&gt;
* [[Entwickeln einer ThingPoint-Anwendung mit EMS|Entwickeln einer ThingPoint-Anwendung mit EMS]]&lt;br /&gt;
* [[Registrieren eines ThingPoint beim EMS-Server|Registrieren eines ThingPoint im EMS-Server]]&lt;br /&gt;
* [[Implementieren einer einfachen ThingPoint-Anwendung|Implementieren einer einfachen ThingPoint-Anwendung]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[EMS-EdgeModules|EMS-EdgeModules]]&lt;br /&gt;
* [[EMS-EdgeModules-Ressource|EMS-EdgeModules-Ressourcen]]&lt;br /&gt;
* [[samp_en:EMS.ThingPoint IoT Sample|EMS.ThingPoint IoT (Beispiel)]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=%C3%9Cberblick_zu_ThingPoint&amp;diff=208406</id>
		<title>Überblick zu ThingPoint</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=%C3%9Cberblick_zu_ThingPoint&amp;diff=208406"/>
		<updated>2016-06-08T14:56:20Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Internal Review. LOC-22111&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Enterprise Mobility Services (EMS)}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ThingPoint™&#039;&#039;&#039; erweitert die Funktionalität von EMS und stellt einen Zugriffspunkt für Unternehmen zwischen Remote-Gadgets und Geräten bereit. Mit &#039;&#039;&#039;ThingPoint&#039;&#039;&#039; können Sie große Mengen von am Rande erfassten IoT-Daten lokal speichern, filtern und berechnen und dabei sicherstellen, dass nur wichtige Daten mit dem zentralen Repository synchronisiert werden.&lt;br /&gt;
&lt;br /&gt;
Ein &#039;&#039;&#039;ThingPoint&#039;&#039;&#039; ist eine Anwendung, die Sie mithilfe von verschiedenen IoT-Features erstellen. Eine ThingPoint-Anwendung kann eine [[Iot:ThingConnect|ThingConnect]]-Komponente, [[EMS-EdgeModules|EMS-EdgeModules]]-Komponenten und deren [[Übersicht über EMS-Ressourcen|Ressourcen]] enthalten. &lt;br /&gt;
&lt;br /&gt;
Eine ThingPoint-Anwendung wird normalerweise in der Nähe von IoT-Geräten ausgeführt. ThingPoints stellen für benutzerdefinierten Code einen einfachen Zugriff zum Aufrufen von EMS bereit. Der benutzerdefinierte Code eines ThingPoint verwendet die [[Iot:ThingConnect|ThingConnect-Komponenten]] zum Koppeln von Geräten.&lt;br /&gt;
&lt;br /&gt;
Eine ThingPoint-Anwendung kann als Antwort auf eine REST-Anforderung von einer [[EMS-Client-Anwendung|EMS-Client-Anwendung]] aus dem [[EMS-Server|EMS-Server]] aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
[[File:ThingPoints.png|500px]]&lt;br /&gt;
&lt;br /&gt;
==Hauptmerkmale==&lt;br /&gt;
&lt;br /&gt;
Ein ThingPoint kann: &lt;br /&gt;
&lt;br /&gt;
* Durch REST-API-Aufrufe bilateral mit dem [[EMS-Server|EMS-Server]] kommunizieren. Eine ThingPoint-Anwendung mit EMS-EdgeModules kann auf Anforderungen eines EMS-Servers antworten.  &lt;br /&gt;
* Edge-Daten in einer SQL-Datenbank zwischenspeichern.&lt;br /&gt;
* Daten von sich in der Nähe befindenden [[Iot:ThingConnect|ThingConnect-Geräten]] sammeln.&lt;br /&gt;
* Die Vor- und Nachverarbeitung von IoT-Daten zulassen, während diese von den [[Iot:ThingConnect|ThingConnect-Geräten]] gesammelt werden.&lt;br /&gt;
* Gesammelte IoT-Daten anhand verschiedener Filterkriterien filtern.&lt;br /&gt;
&lt;br /&gt;
==Themen==&lt;br /&gt;
&lt;br /&gt;
* [[Entwickeln einer ThingPoint-Anwendung mit EMS|Entwickeln einer ThingPoint-Anwendung mit EMS]]&lt;br /&gt;
* [[Registrieren eines ThingPoint beim EMS-Server|Registrieren eines ThingPoint im EMS-Server]]&lt;br /&gt;
* [[Implementieren einer einfachen ThingPoint-Anwendung|Implementieren einer einfachen ThingPoint-Anwendung]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[EMS-EdgeModules|EMS-EdgeModules]]&lt;br /&gt;
* [[EMS-EdgeModules-Ressource|EMS-EdgeModules-Ressourcen]]&lt;br /&gt;
* [[samp_en:EMS.ThingPoint IoT Sample|EMS.ThingPoint IoT (Beispiel)]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Entwickeln_einer_ThingPoint-Anwendung_mit_RAD_Server&amp;diff=208405</id>
		<title>Entwickeln einer ThingPoint-Anwendung mit RAD Server</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Entwickeln_einer_ThingPoint-Anwendung_mit_RAD_Server&amp;diff=208405"/>
		<updated>2016-06-08T14:56:06Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Internal Review. LOC-21796_2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Überblick zu ThingPoints}}&lt;br /&gt;
&lt;br /&gt;
Sie können eine neue &#039;&#039;&#039;ThingPoint&#039;&#039;&#039;-Anwendung erstellen, die eine &#039;&#039;&#039;TEMSEdgeService&#039;&#039;&#039;-Komponente verwendet, um Anforderungen des EMS-Servers zu empfangen und mit den benötigten Daten zu beantworten.&lt;br /&gt;
&lt;br /&gt;
In Ihrer ThingPoint-Anwendung benötigen Sie die folgenden Komponenten:&lt;br /&gt;
&lt;br /&gt;
* Mit der Komponente [[lib_de:REST.Backend.EMSProvider.TEMSProvider|TEMSProvider]] wird die [[#Verbinden einer ThingPoint-Anwendung mit dem EMS-Server|Verbindung mit dem EMS-Server]] eingerichtet.&lt;br /&gt;
* Mit der Komponente &#039;&#039;&#039;TEMSEdgeService&#039;&#039;&#039; werden das ThingPoint beim EMS-Server registriert und [[#Empfangen von Anforderungen aus dem EMS-Server|die Anforderungen vom EMS-Server empfangen]]. &lt;br /&gt;
&lt;br /&gt;
==Verbinden einer ThingPoint-Anwendung mit dem EMS-Server==&lt;br /&gt;
&lt;br /&gt;
Mit der Komponente [[lib_de:REST.Backend.EMSProvider.TEMSProvider|TEMSProvider]] richtet die ThingPoint-Anwendung die Verbindung mit dem EMS-Server ein. Ändern Sie die folgenden Eigenschaften, um die Verbindung korrekt einzurichten.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;URLHost&#039;&#039;&#039;. Der URL des EMS-Servers. Verwenden Sie:&lt;br /&gt;
** &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, wenn der EMS-Server auf demselben Computer wie das ThingPoint ausgeführt wird.&lt;br /&gt;
** Die IP-Adresse des Remote-EMS-Servers, wenn er auf einem anderen Computer als das ThingPoint ausgeführt wird.&lt;br /&gt;
*&#039;&#039;&#039;URLPort&#039;&#039;&#039;. Der Verbindungs-Port des EMS-Servers. &lt;br /&gt;
** Vorgabewert: &amp;lt;code&amp;gt;8080&amp;lt;/code&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;URLProtocol&#039;&#039;&#039;. Der URL-Protokollbezeichner für die Anforderung an den EMS-Server. Mögliche Werte sind &amp;lt;code&amp;gt;http&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;https&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Vorgabewert: &amp;lt;code&amp;gt;http&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie müssen eventuell auch die für die Verbindung mit dem [[EMS-Server|EMS-Server]] erforderlichen Einstellungen der [[EMS-Server-Autorisierung|EMS-Server-Autorisierung]] konfigurieren.&lt;br /&gt;
&lt;br /&gt;
==Empfangen von Anforderungen vom EMS-Server==&lt;br /&gt;
&lt;br /&gt;
Mit der Komponente &#039;&#039;&#039;TEMSEdgeService&#039;&#039;&#039; empfängt das ThingPoint Anforderungen vom EMS-Server. Ändern Sie die folgenden Eigenschaften, um den Empfang von Anforderungen korrekt einzurichten.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Provider&#039;&#039;&#039;: Komponente [[lib_de:REST.Backend.EMSProvider.TEMSProvider|TEMSProvider]], die Verbindungsparameter für den EMS-Server identifiziert.&lt;br /&gt;
* &#039;&#039;&#039;ModuleName&#039;&#039;&#039;: Namensbezeichner des ThingPoint für die eindeutige Identifizierung auf dem EMS-Server.&lt;br /&gt;
*&#039;&#039;&#039;ListenerProtocol&#039;&#039;&#039;. Der Protokollbezeichner für die Anforderung vom EMS-Server. Mögliche Werte sind &amp;lt;code&amp;gt;http&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;https&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Vorgabewert: &amp;lt;code&amp;gt;http&amp;lt;/code&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Verbindungsparameter&#039;&#039;&#039; der ThingPoint-Anwendung:&lt;br /&gt;
**&#039;&#039;&#039;ListenerService.Host&#039;&#039;&#039;. Info über den Host, auf dem das ThingPoint ausgeführt wird.&lt;br /&gt;
*** &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, wenn das ThingPoint auf demselben Computer wie der EMS-Server ausgeführt wird.&lt;br /&gt;
*** Die IP-Adresse des Remote-ThingPoint, wenn er auf einem anderen Computer als der EMS-Server ausgeführt wird.&lt;br /&gt;
** &#039;&#039;&#039;ListenerService.Port&#039;&#039;&#039;. Der Verbindungs-Port, an dem die ThingPoint-Anwendung Anforderungen vom EMS-Server empfängt. &lt;br /&gt;
&lt;br /&gt;
==Hinzufügen einer [[Übersicht über EMS-Ressourcen|EMS-Ressource]] zu einem ThingPoint==&lt;br /&gt;
&lt;br /&gt;
Sie können einem vorhandenen ThingPoint neue [[Übersicht über EMS-Ressourcen|EMS-Ressourcen]] hinzufügen, indem Sie weitere &#039;&#039;&#039;EMS-Module&#039;&#039;&#039; hinzufügen. &lt;br /&gt;
&lt;br /&gt;
Informationen zum Hinzufügen einer neuer &#039;&#039;&#039;Ressource&#039;&#039;&#039; zu einem ThingPoint und zum Deklarieren der &#039;&#039;&#039;Endpunkte&#039;&#039;&#039; finden Sie unter [[Erstellen eines EMS-Package|Erstellen eines EMS-Package]].&lt;br /&gt;
&lt;br /&gt;
Ein ThingPoint hat eine integrierte &#039;&#039;&#039;Ressource&#039;&#039;&#039;, die als &amp;lt;code&amp;gt;Version&amp;lt;/code&amp;gt; bezeichnet wird. Um beispielsweise Versionsinformationen für ein ThingPoint von einem Browser abzurufen, verwenden Sie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt; http://&amp;amp;lt;URLHost&amp;amp;gt;:&amp;amp;lt;URLPort&amp;amp;gt;/edgemodules/&amp;amp;lt;ModuleName&amp;amp;gt;/version &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zugreifen auf ThingPoint-Ressourcen aus einer Client-Anwendung==&lt;br /&gt;
&lt;br /&gt;
Sie können auf jede ThingPoint-Ressource aus einer [[EMS-Client-Anwendung|EMS-Client-Anwendung]] zugreifen.&lt;br /&gt;
&lt;br /&gt;
Um auf eine ThingPoint-Ressource zuzugreifen, müssen Sie sie folgendermaßen angeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;edgemodules/&amp;amp;lt;ModuleName&amp;amp;gt;/&amp;amp;lt;ResourceName&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Iot:ThingConnect|ThingConnect]]&lt;br /&gt;
* [[Übersicht über EMS-Ressourcen|Übersicht über EMS-Ressourcen]]&lt;br /&gt;
* [[EMS-Server|EMS-Server]]&lt;br /&gt;
* [[Erstellen eines EMS-Package|Erstellen eines EMS-Package]]&lt;br /&gt;
* [[Implementieren einer einfachen ThingPoint-Anwendung|Implementieren einer einfachen ThingPoint-Anwendung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Entwickeln_einer_ThingPoint-Anwendung_mit_RAD_Server&amp;diff=208404</id>
		<title>Entwickeln einer ThingPoint-Anwendung mit RAD Server</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=Entwickeln_einer_ThingPoint-Anwendung_mit_RAD_Server&amp;diff=208404"/>
		<updated>2016-06-08T14:56:01Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Internal Review. LOC-21796_2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|Überblick zu ThingPoints}}&lt;br /&gt;
&lt;br /&gt;
Sie können eine neue &#039;&#039;&#039;ThingPoint&#039;&#039;&#039;-Anwendung erstellen, die eine &#039;&#039;&#039;TEMSEdgeService&#039;&#039;&#039;-Komponente verwendet, um Anforderungen des EMS-Servers zu empfangen und mit den benötigten Daten zu beantworten.&lt;br /&gt;
&lt;br /&gt;
In Ihrer ThingPoint-Anwendung benötigen Sie die folgenden Komponenten:&lt;br /&gt;
&lt;br /&gt;
* Mit der Komponente [[lib_de:REST.Backend.EMSProvider.TEMSProvider|TEMSProvider]] wird die [[#Verbinden einer ThingPoint-Anwendung mit dem EMS-Server|Verbindung mit dem EMS-Server]] eingerichtet.&lt;br /&gt;
* Mit der Komponente &#039;&#039;&#039;TEMSEdgeService&#039;&#039;&#039; werden das ThingPoint beim EMS-Server registriert und [[#Empfangen von Anforderungen aus dem EMS-Server|die Anforderungen vom EMS-Server empfangen]]. &lt;br /&gt;
&lt;br /&gt;
==Verbinden einer ThingPoint-Anwendung mit dem EMS-Server==&lt;br /&gt;
&lt;br /&gt;
Mit der Komponente [[lib_de:REST.Backend.EMSProvider.TEMSProvider|TEMSProvider]] richtet die ThingPoint-Anwendung die Verbindung mit dem EMS-Server ein. Ändern Sie die folgenden Eigenschaften, um die Verbindung korrekt einzurichten.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;URLHost&#039;&#039;&#039;. Der URL des EMS-Servers. Verwenden Sie:&lt;br /&gt;
** &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, wenn der EMS-Server auf demselben Computer wie das ThingPoint ausgeführt wird.&lt;br /&gt;
** Die IP-Adresse des Remote-EMS-Servers, wenn er auf einem anderen Computer als das ThingPoint ausgeführt wird.&lt;br /&gt;
*&#039;&#039;&#039;URLPort&#039;&#039;&#039;. Der Verbindungs-Port des EMS-Servers. &lt;br /&gt;
** Vorgabewert: &amp;lt;code&amp;gt;8080&amp;lt;/code&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;URLProtocol&#039;&#039;&#039;. Der URL-Protokollbezeichner für die Anforderung an den EMS-Server. Mögliche Werte sind &amp;lt;code&amp;gt;http&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;https&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Vorgabewert: &amp;lt;code&amp;gt;http&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sie müssen eventuell auch die für die Verbindung mit dem [[EMS-Server|EMS-Server]] erforderlichen Einstellungen der [[EMS-Server-Autorisierung|EMS-Server-Autorisierung]] konfigurieren.&lt;br /&gt;
&lt;br /&gt;
==Empfangen von Anforderungen vom EMS-Server==&lt;br /&gt;
&lt;br /&gt;
Mit der Komponente &#039;&#039;&#039;TEMSEdgeService&#039;&#039;&#039; empfängt das ThingPoint Anforderungen vom EMS-Server. Ändern Sie die folgenden Eigenschaften, um den Empfang von Anforderungen korrekt einzurichten.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Provider&#039;&#039;&#039;: Komponente [[lib_de:REST.Backend.EMSProvider.TEMSProvider|TEMSProvider]], die Verbindungsparameter für den EMS-Server identifiziert.&lt;br /&gt;
* &#039;&#039;&#039;ModuleName&#039;&#039;&#039;: Namensbezeichner des ThingPoint für die eindeutige Identifizierung auf dem EMS-Server.&lt;br /&gt;
*&#039;&#039;&#039;ListenerProtocol&#039;&#039;&#039;. Der Protokollbezeichner für die Anforderung vom EMS-Server. Mögliche Werte sind &amp;lt;code&amp;gt;http&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;https&amp;lt;/code&amp;gt;.&lt;br /&gt;
** Vorgabewert: &amp;lt;code&amp;gt;http&amp;lt;/code&amp;gt;&lt;br /&gt;
*&#039;&#039;&#039;Verbindungsparameter&#039;&#039;&#039; der ThingPoint-Anwendung:&lt;br /&gt;
**&#039;&#039;&#039;ListenerService.Host&#039;&#039;&#039;. Info über den Host, auf dem das ThingPoint ausgeführt wird.&lt;br /&gt;
*** &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;, wenn das ThingPoint auf demselben Computer wie der EMS-Server ausgeführt wird.&lt;br /&gt;
*** Die IP-Adresse des Remote-ThingPoint, wenn er auf einem anderen Computer als der EMS-Server ausgeführt wird.&lt;br /&gt;
** &#039;&#039;&#039;ListenerService.Port&#039;&#039;&#039;. Der Verbindungs-Port, an dem die ThingPoint-Anwendung Anforderungen vom EMS-Server empfängt. &lt;br /&gt;
&lt;br /&gt;
==Hinzufügen einer [[Übersicht über EMS-Ressourcen|EMS-Ressource]] zu einem ThingPoint==&lt;br /&gt;
&lt;br /&gt;
Sie können einem vorhandenen ThingPoint neue [[Übersicht über EMS-Ressourcen|EMS-Ressourcen]] hinzufügen, indem Sie weitere &#039;&#039;&#039;EMS-Module&#039;&#039;&#039; hinzufügen. &lt;br /&gt;
&lt;br /&gt;
Informationen zum Hinzufügen einer neuer &#039;&#039;&#039;Ressource&#039;&#039;&#039; zu einem ThingPoint und zum Deklarieren der &#039;&#039;&#039;Endpunkte&#039;&#039;&#039; finden Sie unter [[Erstellen eines EMS-Package|Erstellen eines EMS-Package]].&lt;br /&gt;
&lt;br /&gt;
Ein ThingPoint hat eine integrierte &#039;&#039;&#039;Ressource&#039;&#039;&#039;, die als &amp;lt;code&amp;gt;Version&amp;lt;/code&amp;gt; bezeichnet wird. Um beispielsweise Versionsinformationen für ein ThingPoint von einem Browser abzurufen, verwenden Sie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt; http://&amp;amp;lt;URLHost&amp;amp;gt;:&amp;amp;lt;URLPort&amp;amp;gt;/edgemodules/&amp;amp;lt;ModuleName&amp;amp;gt;/version &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zugreifen auf ThingPoint-Ressourcen aus einer Client-Anwendung==&lt;br /&gt;
&lt;br /&gt;
Sie können auf jede ThingPoint-Ressource aus einer [[EMS-Client-Anwendung|EMS-Client-Anwendung]] zugreifen.&lt;br /&gt;
&lt;br /&gt;
Um auf eine ThingPoint-Ressource zuzugreifen, müssen Sie sie folgendermaßen angeben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;edgemodules/&amp;amp;lt;ModuleName&amp;amp;gt;/&amp;amp;lt;ResourceName&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[Iot:ThingConnect|ThingConnect]]&lt;br /&gt;
* [[Übersicht über EMS-Ressourcen|Übersicht über EMS-Ressourcen]]&lt;br /&gt;
* [[EMS-Server|EMS-Server]]&lt;br /&gt;
* [[Erstellen eines EMS-Package|Erstellen eines EMS-Package]]&lt;br /&gt;
* [[Implementieren einer einfachen ThingPoint-Anwendung|Implementieren einer einfachen ThingPoint-Anwendung]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Berlin]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=C%2B%2B-Compiler_Optimierungen&amp;diff=208338</id>
		<title>C++-Compiler Optimierungen</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=C%2B%2B-Compiler_Optimierungen&amp;diff=208338"/>
		<updated>2016-06-01T08:55:20Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: 1 Version: Updated. LOC-22799&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|C++-Compiler}}&lt;br /&gt;
&lt;br /&gt;
{{Menu|Projekt &amp;amp;gt; Optionen &amp;amp;gt; C++-Compiler &amp;amp;gt; Optimierungen}}&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie dieses Dialogfeld, um Optimierungsoptionen des C++-Compilers festzulegen.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Optionen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Ziel, Übernehmen, Speichern&lt;br /&gt;
|&lt;br /&gt;
Siehe [[Optionen für das Ziel|Optionen für das Ziel]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Gemeinsame Elemente&lt;br /&gt;
|&lt;br /&gt;
Siehe [[Gemeinsame Elemente auf den Projektoptionsseiten|Gemeinsame Elemente auf den Projektoptionsseiten]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;cells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;Optimierungsoptionen&#039;&#039;&#039;&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | {{f|cmd|&#039;&#039;&#039;Compiler-Optionen&#039;&#039;&#039;|&#039;&#039;&#039;Compiler-Unterstützung&#039;&#039;&#039;}}&lt;br /&gt;
|-&lt;br /&gt;
! bcc32&lt;br /&gt;
! bcc32c&lt;br /&gt;
! bcc64&lt;br /&gt;
! bccosx&lt;br /&gt;
! bcciosarm&lt;br /&gt;
! bcciosarm64&lt;br /&gt;
! bccaarm&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Alle Optimierungen deaktivieren&lt;br /&gt;
|&lt;br /&gt;
Deaktiviert alle Optimierungseinstellungen, einschließlich derjenigen, die Sie ausdrücklich eingestellt haben und derjenigen, die normalerweise als Teil des Geschwindigkeits-/Größekompromisses ausgeführt werden. Weil dadurch Kompaktheits- und Querverweisoptimierungen verhindert werden, kann diese Option den Debugger davon abhalten, zu springen oder aus einer Funktion ohne Warnung zurückzukehren. Dadurch wird das schrittweise Abarbeiten des Codes erleichtert. Vorgabe = True &lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-Od|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O0|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O0|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-Od|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O0|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O0|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O0|{{V}}}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Ausgewählte Optimierungen aktivieren&lt;br /&gt;
|&lt;br /&gt;
Aktiviert nur die Optimierungen, die Sie aus der Liste der Optimierungen auswählen. Vorgabe = False&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Entfernung des toten Speichers {{f|cmd|&amp;lt;br /&amp;gt;(-Ob)}}&lt;br /&gt;
|&lt;br /&gt;
Entfernt überflüssige Speicherungen. Klicken Sie auf den nach unten weisenden Pfeil, um einen Wert (True, False) auszuwählen. Vorgabe = False&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Doppelte Ausdrücke in Blöcken und Funktionen entfernen {{f|cmd|&amp;lt;br /&amp;gt;&lt;br /&gt;
(-Oc)}}&lt;br /&gt;
|&lt;br /&gt;
Weist den Compiler an, allgemeine Unterausdrücke in Anweisungsgruppen zu entfernen, die nicht durch Sprünge (Basisblöcke) und Funktionen unterbrochen sind. Diese Option entfernt global doppelte Ausdrücke im Zielgültigkeitsbereich und speichert den berechneten Wert dieser Ausdrücke einmal (anstatt den Ausdruck erneut zu berechnen). Verwenden Sie diese Option, wenn Sie Ausdrücke wiederverwenden möchten, anstatt explizite Stack-Positionen für sie zu erstellen. Vorgabe = False&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Schleifeninduktionsvariable und Stärkereduktion aktivieren {{f|cmd|&amp;lt;br /&amp;gt;&lt;br /&gt;
(-Ov)}}&lt;br /&gt;
|&lt;br /&gt;
Weist den Compiler an, Induktionsvariablen zu erstellen und eine Stärkereduktion durchzuführen, was die Schleifengeschwindigkeit optimiert. Verwenden Sie diese Option, wenn Geschwindigkeit für Sie maßgeblich ist, und Ihr Quelltext Schleifen enthält.&lt;br /&gt;
&lt;br /&gt;
Mittels Induktion werden neue Variablen (Induktionsvariablen) aus in Schleifen verwendeten Ausdrücken erstellt. Die mit diesen neuen Variablen durchgeführten Operationen benötigen weniger Rechenzeit (stärkereduziert) als jene, die von den ursprünglichen Variablen verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Optimierungen werden üblicherweise bei der Indizierung von Arrays in Schleifen verwendet, weil zur Berechnung der Position in dem Array, das durch den Index angegeben ist, eine Multiplikation erforderlich ist. Beispielsweise wird im folgenden Code eine Induktionsvariable aus der Operation &amp;lt;code&amp;gt;v[i]&amp;lt;/code&amp;gt; erstellt, weil für diese Operation eine Multiplikation erforderlich ist.  Durch diese Optimierung muss der Wert von &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; auch nicht gespeichert werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
int v[10];&lt;br /&gt;
void f(int x, int y, int z)&lt;br /&gt;
{ int i;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
    v[i] = x * y * z;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Mit Induktionsvariablen ändert sich der Code folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
int v[10];&lt;br /&gt;
void f(int x, int y, int z)&lt;br /&gt;
{ int i, *p;&lt;br /&gt;
  for (p = v; p &amp;lt; &amp;amp;v[9]; p++)&lt;br /&gt;
  *p = x * y * z;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Vorgabe = False&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Pentium-Befehlsplan aktivieren {{f|cmd|&amp;lt;br /&amp;gt;(-5)}}&lt;br /&gt;
|&lt;br /&gt;
Erzeugt Pentium-Instruktionen. Diese Option erhöht zwar die Ausführungsgeschwindigkeit auf Pentium-Rechnern, kann die Größe des Programms allerdings etwas erhöhen, wenn dieses mit den Optionen 80386 oder i486 compiliert wurde. Ferner ist bei für Pentium compiliertem Code mit einer Performance-Einbuße auf nicht-Pentium-Systemen zu rechnen. Vorgabe = False&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Allgemeine intrinsische Funktionen erweitern {{f|cmd|&amp;lt;br /&amp;gt;&lt;br /&gt;
(-Oi)}}&lt;br /&gt;
|&lt;br /&gt;
Weist den Compiler an, Code für gebräuchliche Speicherfunktionen, wie &amp;lt;code&amp;gt;strcpy()&amp;lt;/code&amp;gt;, im Gültigkeitsbereich Ihrer Funktion zu erzeugen. Dadurch ist ein Funktionsaufruf nicht mehr nötig. Der resultierende Code wird schneller ausgeführt, ist aber größer. Mit dieser Option wird für die folgenden Funktionen ein Inlining durchgeführt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;alloca&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;fabs&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;memchr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;memcmp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;memcpy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;memset&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rotl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rotr&amp;lt;/code&amp;gt;,&lt;br /&gt;
&amp;lt;code&amp;gt;stpcpy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strcat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strchr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strcmp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strcpy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strlen&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strncat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strncmp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strncpy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strnset&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strrchr&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sie können das Inlining dieser Funktionen mit &amp;lt;code&amp;gt;pragma intrinsic&amp;lt;/code&amp;gt; steuern. Beispielsweise veranlasst&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#pragma intrinsic strcpy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
den Compiler, Inline-Code für alle folgenden Aufrufe von &amp;lt;code&amp;gt;strcpy&amp;lt;/code&amp;gt; in Ihrer Funktion zu erzeugen, und&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#pragma intrinsic -strcpy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
verhindert, dass der Compiler für &amp;lt;code&amp;gt;strcpy&amp;lt;/code&amp;gt; ein Inlining durchführt. Durch die Verwendung dieser Pragmata in einer Datei werden alle Compiler-Einstellungen überschrieben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Vorgabe = False&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Sprünge optimieren {{f|cmd|&amp;lt;br /&amp;gt;&lt;br /&gt;
(-O)}}&lt;br /&gt;
|&lt;br /&gt;
Weist den Compiler an, die Größe des Codes zu reduzieren, indem redundante Sprünge entfernt sowie Schleifen und switch-Anweisungen neu organisiert werden. Wenn diese Option aktiviert ist, kann das schrittweise Abarbeiten des Codes im Debugger wegen der Neuanordnung und Eliminierung von Anweisungen verwirrend sein. Wenn Sie auf Assembly-Ebene debuggen, sollten Sie diese Option gegebenenfalls deaktivieren. Vorgabe = False&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Registervariablen verwenden {{f|cmd|&amp;lt;br /&amp;gt;&lt;br /&gt;
(-r)}}&lt;br /&gt;
|&lt;br /&gt;
Weist den Compiler an, automatisch Registervariablen zuzuweisen, wenn möglich, auch wenn Sie das Schlüsselwort &amp;lt;code&amp;gt;register&amp;lt;/code&amp;gt; nicht angeben. Vorgabe = False&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|&#039;&#039;&#039;Entfernung des toten Speichers&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Ob&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Doppelte Ausdrücke in Blöcken und Funktionen entfernen&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Oc&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Schleifeninduktionsvariable und Stärkereduktion aktivieren&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Ov&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Pentium-Befehlsplan aktivieren&#039;&#039;&#039; &amp;lt;br /&amp;gt;-5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Allgemeine intrinsische Funktionen erweitern&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Oi&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Sprünge optimieren&#039;&#039;&#039; &amp;lt;br /&amp;gt;-O&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Registervariablen verwenden&#039;&#039;&#039; &amp;lt;br /&amp;gt;-r|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|&#039;&#039;&#039;Entfernung des toten Speichers&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Ob&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Doppelte Ausdrücke in Blöcken und Funktionen entfernen&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Oc&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Schleifeninduktionsvariable und Stärkereduktion aktivieren&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Ov&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Pentium-Befehlsplan aktivieren&#039;&#039;&#039; &amp;lt;br /&amp;gt;-5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Allgemeine intrinsische Funktionen erweitern&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Oi&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Sprünge optimieren&#039;&#039;&#039; &amp;lt;br /&amp;gt;-O&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Registervariablen verwenden&#039;&#039;&#039; &amp;lt;br /&amp;gt;-r|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Schnellstmöglichen Quelltext erzeugen &lt;br /&gt;
|&lt;br /&gt;
Setzt Optimierungsoptionen, die den Compiler dazu veranlassen, den Code hinsichtlich der Geschwindigkeit zu optimieren. Entweder diese Option oder &#039;&#039;&#039;Kleinstmöglichen Quelltext erzeugen&#039;&#039;&#039; muss True sein. Diese beiden Optionen schließen sich gegenseitig aus. Vorgabe = False&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O2|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O2|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O2|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O2|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O2|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O2|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O2|{{V}}}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Kleinstmöglichen Quelltext erzeugen&lt;br /&gt;
|&lt;br /&gt;
Setzt Optimierungsoptionen, die den Compiler dazu veranlassen, den Code hinsichtlich der Größe zu optimieren. Zum Beispiel durchsucht der Compiler den erzeugten Code nach doppelten Sequenzen. Wenn solche Sequenzen gefunden werden, ersetzt der Optimierungsvorgang eine Codesequenz durch einen Sprung auf die andere Sequenz und löscht den ersten Code-Teil. Dies ist häufig bei &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;-Anweisungen der Fall. Der Compiler führt die Optimierung nach der Größe durch, indem er die kleinstmögliche Codesequenz auswählt. Entweder diese Option oder &#039;&#039;&#039;Schnellstmöglichen Quelltext erzeugen&#039;&#039;&#039; muss True sein. Diese beiden Optionen schließen sich gegenseitig aus. Vorgabe = False&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O1|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-Os|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-Os|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O1|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-Os|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-Os|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-Os|{{V}}}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[C++ (Gemeinsame Optionen)|C++ (Gemeinsame Optionen)]]&lt;br /&gt;
* [[BCC32.EXE: Der C++-32-Bit-Befehlszeilen-Compiler|BCC32.EXE: Der C++-Compiler für 32-Bit-Windows]]&lt;br /&gt;
* [[BCC32C.EXE|BCC32C.EXE]]&lt;br /&gt;
* [[BCC64.EXE: Der C++-Compiler für 64-Bit-Windows|BCC64.EXE: Der C++-Compiler für 64-Bit-Windows]]&lt;br /&gt;
* [[BCCOSX.EXE: Der C++-Compiler für OS X|BCCOSX.EXE: Der C++-Compiler für OS X]]&lt;br /&gt;
* [[BCCIOSARM.EXE: Der C++-Compiler für 32-Bit-iOS-Geräte|BCCIOSARM.EXE: Der C++-Compiler für 32-Bit-iOS-Geräte]]&lt;br /&gt;
* [[BCCIOSARM64.EXE: Der C++-Compiler für 64-Bit-iOS-Geräte|BCCIOSARM64.EXE: Der C++-Compiler für 64-Bit-iOS-Geräte]]&lt;br /&gt;
* [[BCCAARM.EXE: Der C++-Compiler für Android|BCCAARM.EXE: Der C++-Compiler für Android]]&lt;br /&gt;
&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:IDE-Referenz]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
	<entry>
		<id>https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=C%2B%2B-Compiler_Optimierungen&amp;diff=208337</id>
		<title>C++-Compiler Optimierungen</title>
		<link rel="alternate" type="text/html" href="https://docwiki.embarcadero.com/RADStudio/Florence/d/index.php?title=C%2B%2B-Compiler_Optimierungen&amp;diff=208337"/>
		<updated>2016-06-01T08:55:04Z</updated>

		<summary type="html">&lt;p&gt;Roxanac: Updated. LOC-22799&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Parent|C++-Compiler}}&lt;br /&gt;
&lt;br /&gt;
{{Menu|Projekt &amp;amp;gt; Optionen &amp;amp;gt; C++-Compiler &amp;amp;gt; Optimierungen}}&lt;br /&gt;
&lt;br /&gt;
Verwenden Sie dieses Dialogfeld, um Optimierungsoptionen des C++-Compilers festzulegen.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &#039;&#039;&#039;Optionen&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Ziel, Übernehmen, Speichern&lt;br /&gt;
|&lt;br /&gt;
Siehe [[Optionen für das Ziel|Optionen für das Ziel]].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Gemeinsame Elemente&lt;br /&gt;
|&lt;br /&gt;
Siehe [[Gemeinsame Elemente auf den Projektoptionsseiten|Gemeinsame Elemente auf den Projektoptionsseiten]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;cells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;Optimierungsoptionen&#039;&#039;&#039;&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; |&#039;&#039;&#039;Beschreibung&#039;&#039;&#039;&lt;br /&gt;
! colspan=&amp;quot;7&amp;quot; | {{f|cmd|&#039;&#039;&#039;Compiler-Optionen&#039;&#039;&#039;|&#039;&#039;&#039;Compiler-Unterstützung&#039;&#039;&#039;}}&lt;br /&gt;
|-&lt;br /&gt;
! bcc32&lt;br /&gt;
! bcc32c&lt;br /&gt;
! bcc64&lt;br /&gt;
! bccosx&lt;br /&gt;
! bcciosarm&lt;br /&gt;
! bcciosarm64&lt;br /&gt;
! bccaarm&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Alle Optimierungen deaktivieren&lt;br /&gt;
|&lt;br /&gt;
Deaktiviert alle Optimierungseinstellungen, einschließlich derjenigen, die Sie ausdrücklich eingestellt haben und derjenigen, die normalerweise als Teil des Geschwindigkeits-/Größekompromisses ausgeführt werden. Weil dadurch Kompaktheits- und Querverweisoptimierungen verhindert werden, kann diese Option den Debugger davon abhalten, zu springen oder aus einer Funktion ohne Warnung zurückzukehren. Dadurch wird das schrittweise Abarbeiten des Codes erleichtert. Vorgabe = True &lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-Od|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O0|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O0|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-Od|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O0|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O0|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O0|{{V}}}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Ausgewählte Optimierungen aktivieren&lt;br /&gt;
|&lt;br /&gt;
Aktiviert nur die Optimierungen, die Sie aus der Liste der Optimierungen auswählen. Vorgabe = False&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;rows&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Entfernung des toten Speichers {{f|cmd|&amp;lt;br /&amp;gt;(-Ob)}}&lt;br /&gt;
|&lt;br /&gt;
Entfernt überflüssige Speicherungen. Klicken Sie auf den nach unten weisenden Pfeil, um einen Wert (True, False) auszuwählen. Vorgabe = False&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Doppelte Ausdrücke in Blöcken und Funktionen entfernen {{f|cmd|&amp;lt;br /&amp;gt;&lt;br /&gt;
(-Oc)}}&lt;br /&gt;
|&lt;br /&gt;
Weist den Compiler an, allgemeine Unterausdrücke in Anweisungsgruppen zu entfernen, die nicht durch Sprünge (Basisblöcke) und Funktionen unterbrochen sind. Diese Option entfernt global doppelte Ausdrücke im Zielgültigkeitsbereich und speichert den berechneten Wert dieser Ausdrücke einmal (anstatt den Ausdruck erneut zu berechnen). Verwenden Sie diese Option, wenn Sie Ausdrücke wiederverwenden möchten, anstatt explizite Stack-Positionen für sie zu erstellen. Vorgabe = False&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Schleifeninduktionsvariable und Stärkereduktion aktivieren {{f|cmd|&amp;lt;br /&amp;gt;&lt;br /&gt;
(-Ov)}}&lt;br /&gt;
|&lt;br /&gt;
Weist den Compiler an, Induktionsvariablen zu erstellen und eine Stärkereduktion durchzuführen, was die Schleifengeschwindigkeit optimiert. Verwenden Sie diese Option, wenn Geschwindigkeit für Sie maßgeblich ist, und Ihr Quelltext Schleifen enthält.&lt;br /&gt;
&lt;br /&gt;
Mittels Induktion werden neue Variablen (Induktionsvariablen) aus in Schleifen verwendeten Ausdrücken erstellt. Die mit diesen neuen Variablen durchgeführten Operationen benötigen weniger Rechenzeit (stärkereduziert) als jene, die von den ursprünglichen Variablen verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Optimierungen werden üblicherweise bei der Indizierung von Arrays in Schleifen verwendet, weil zur Berechnung der Position in dem Array, das durch den Index angegeben ist, eine Multiplikation erforderlich ist. Beispielsweise wird im folgenden Code eine Induktionsvariable aus der Operation &amp;lt;code&amp;gt;v[i]&amp;lt;/code&amp;gt; erstellt, weil für diese Operation eine Multiplikation erforderlich ist.  Durch diese Optimierung muss der Wert von &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt; auch nicht gespeichert werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
int v[10];&lt;br /&gt;
void f(int x, int y, int z)&lt;br /&gt;
{ int i;&lt;br /&gt;
  for (i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
    v[i] = x * y * z;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Mit Induktionsvariablen ändert sich der Code folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
int v[10];&lt;br /&gt;
void f(int x, int y, int z)&lt;br /&gt;
{ int i, *p;&lt;br /&gt;
  for (p = v; p &amp;lt; &amp;amp;v[9]; p++)&lt;br /&gt;
  *p = x * y * z;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Vorgabe = False&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Pentium-Befehlsplan aktivieren {{f|cmd|&amp;lt;br /&amp;gt;(-5)}}&lt;br /&gt;
|&lt;br /&gt;
Erzeugt Pentium-Instruktionen. Diese Option erhöht zwar die Ausführungsgeschwindigkeit auf Pentium-Rechnern, kann die Größe des Programms allerdings etwas erhöhen, wenn dieses mit den Optionen 80386 oder i486 compiliert wurde. Ferner ist bei für Pentium compiliertem Code mit einer Performance-Einbuße auf nicht-Pentium-Systemen zu rechnen. Vorgabe = False&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Allgemeine intrinsische Funktionen erweitern {{f|cmd|&amp;lt;br /&amp;gt;&lt;br /&gt;
(-Oi)}}&lt;br /&gt;
|&lt;br /&gt;
Weist den Compiler an, Code für gebräuchliche Speicherfunktionen, wie &amp;lt;code&amp;gt;strcpy()&amp;lt;/code&amp;gt;, im Gültigkeitsbereich Ihrer Funktion zu erzeugen. Dadurch ist ein Funktionsaufruf nicht mehr nötig. Der resultierende Code wird schneller ausgeführt, ist aber größer. Mit dieser Option wird für die folgenden Funktionen ein Inlining durchgeführt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;alloca&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;fabs&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;memchr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;memcmp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;memcpy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;memset&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rotl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rotr&amp;lt;/code&amp;gt;,&lt;br /&gt;
&amp;lt;code&amp;gt;stpcpy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strcat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strchr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strcmp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strcpy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strlen&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strncat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strncmp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strncpy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strnset&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;strrchr&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sie können das Inlining dieser Funktionen mit &amp;lt;code&amp;gt;pragma intrinsic&amp;lt;/code&amp;gt; steuern. Beispielsweise veranlasst&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#pragma intrinsic strcpy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
den Compiler, Inline-Code für alle folgenden Aufrufe von &amp;lt;code&amp;gt;strcpy&amp;lt;/code&amp;gt; in Ihrer Funktion zu erzeugen, und&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#pragma intrinsic -strcpy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
verhindert, dass der Compiler für &amp;lt;code&amp;gt;strcpy&amp;lt;/code&amp;gt; ein Inlining durchführt. Durch die Verwendung dieser Pragmata in einer Datei werden alle Compiler-Einstellungen überschrieben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Vorgabe = False&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Sprünge optimieren {{f|cmd|&amp;lt;br /&amp;gt;&lt;br /&gt;
(-O)}}&lt;br /&gt;
|&lt;br /&gt;
Weist den Compiler an, die Größe des Codes zu reduzieren, indem redundante Sprünge entfernt sowie Schleifen und switch-Anweisungen neu organisiert werden. Wenn diese Option aktiviert ist, kann das schrittweise Abarbeiten des Codes im Debugger wegen der Neuanordnung und Eliminierung von Anweisungen verwirrend sein. Wenn Sie auf Assembly-Ebene debuggen, sollten Sie diese Option gegebenenfalls deaktivieren. Vorgabe = False&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Registervariablen verwenden {{f|cmd|&amp;lt;br /&amp;gt;&lt;br /&gt;
(-r)}}&lt;br /&gt;
|&lt;br /&gt;
Weist den Compiler an, automatisch Registervariablen zuzuweisen, wenn möglich, auch wenn Sie das Schlüsselwort &amp;lt;code&amp;gt;register&amp;lt;/code&amp;gt; nicht angeben. Vorgabe = False&lt;br /&gt;
|}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|&#039;&#039;&#039;Entfernung des toten Speichers&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Ob&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Doppelte Ausdrücke in Blöcken und Funktionen entfernen&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Oc&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Schleifeninduktionsvariable und Stärkereduktion aktivieren&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Ov&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Pentium-Befehlsplan aktivieren&#039;&#039;&#039; &amp;lt;br /&amp;gt;-5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Allgemeine intrinsische Funktionen erweitern&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Oi&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Sprünge optimieren&#039;&#039;&#039; &amp;lt;br /&amp;gt;-O&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Registervariablen verwenden&#039;&#039;&#039; &amp;lt;br /&amp;gt;-r|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|&#039;&#039;&#039;Entfernung des toten Speichers&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Ob&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Doppelte Ausdrücke in Blöcken und Funktionen entfernen&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Oc&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Schleifeninduktionsvariable und Stärkereduktion aktivieren&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Ov&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Pentium-Befehlsplan aktivieren&#039;&#039;&#039; &amp;lt;br /&amp;gt;-5&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Allgemeine intrinsische Funktionen erweitern&#039;&#039;&#039; &amp;lt;br /&amp;gt;-Oi&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Sprünge optimieren&#039;&#039;&#039; &amp;lt;br /&amp;gt;-O&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Registervariablen verwenden&#039;&#039;&#039; &amp;lt;br /&amp;gt;-r|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;Plattform nicht unterstützt}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Schnellstmöglichen Quelltext erzeugen &lt;br /&gt;
|&lt;br /&gt;
Setzt Optimierungsoptionen, die den Compiler dazu veranlassen, den Code hinsichtlich der Geschwindigkeit zu optimieren. Entweder diese Option oder &#039;&#039;&#039;Kleinstmöglichen Quelltext erzeugen&#039;&#039;&#039; muss True sein. Diese beiden Optionen schließen sich gegenseitig aus. Vorgabe = False&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O2|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O2|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O2|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O2|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O2|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O2|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O2|{{V}}}}&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
Kleinstmöglichen Quelltext erzeugen&lt;br /&gt;
|&lt;br /&gt;
Setzt Optimierungsoptionen, die den Compiler dazu veranlassen, den Code hinsichtlich der Größe zu optimieren. Zum Beispiel durchsucht der Compiler den erzeugten Code nach doppelten Sequenzen. Wenn solche Sequenzen gefunden werden, ersetzt der Optimierungsvorgang eine Codesequenz durch einen Sprung auf die andere Sequenz und löscht den ersten Code-Teil. Dies ist häufig bei &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;-Anweisungen der Fall. Der Compiler führt die Optimierung nach der Größe durch, indem er die kleinstmögliche Codesequenz auswählt. Entweder diese Option oder &#039;&#039;&#039;Schnellstmöglichen Quelltext erzeugen&#039;&#039;&#039; muss True sein. Diese beiden Optionen schließen sich gegenseitig aus. Vorgabe = False&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O1|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-Os|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-Os|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-O1|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-Os|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-Os|{{V}}}}&lt;br /&gt;
|&lt;br /&gt;
{{f|cmd|-Os|{{V}}}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
&lt;br /&gt;
* [[C++ (Gemeinsame Optionen)|C++ (Gemeinsame Optionen)]]&lt;br /&gt;
* [[BCC32.EXE: Der C++-32-Bit-Befehlszeilen-Compiler|BCC32.EXE: Der C++-Compiler für 32-Bit-Windows]]&lt;br /&gt;
* [[BCC32C.EXE|BCC32C.EXE]]&lt;br /&gt;
* [[BCC64.EXE: Der C++-Compiler für 64-Bit-Windows|BCC64.EXE: Der C++-Compiler für 64-Bit-Windows]]&lt;br /&gt;
* [[BCCOSX.EXE: Der C++-Compiler für OS X|BCCOSX.EXE: Der C++-Compiler für OS X]]&lt;br /&gt;
* [[BCCIOSARM.EXE: Der C++-Compiler für 32-Bit-iOS-Geräte|BCCIOSARM.EXE: Der C++-Compiler für 32-Bit-iOS-Geräte]]&lt;br /&gt;
* [[BCCIOSARM64.EXE: Der C++-Compiler für 64-Bit-iOS-Geräte|BCCIOSARM64.EXE: Der C++-Compiler für 64-Bit-iOS-Geräte]]&lt;br /&gt;
* [[BCCAARM.EXE: Der C++-Compiler für Android|BCCAARM.EXE: Der C++-Compiler für Android]]&lt;br /&gt;
&lt;br /&gt;
[[Category:C++]]&lt;br /&gt;
[[Category:IDE-Referenz]]&lt;br /&gt;
[[Category:AMMigrate]]&lt;/div&gt;</summary>
		<author><name>Roxanac</name></author>
	</entry>
</feed>