Um die Ansichtsschemainformationen für eine Datenbank zu erhalten, laden Sie die Schemainformationen mithilfe der Methode
Im Allgemeinen werden „SQLViewSchema“-Instanzen nicht direkt aufgrund von Entwicklercode erstellt.
Um die Spaltenschemainformationen für eine oder mehrere Tabellen einer Datenbank zu erhalten, laden Sie die Schemainformationen mithilfe der Methode
Im Allgemeinen werden SQLColumnSchema-Instanzen nicht direkt aufgrund von Entwicklercode erstellt.
Enthält der Ergebnissatz mehrere Spalten mit demselben Namen, so wird dem Ergebnisobjekt nur eine Eigenschaft mit diesem Namen hinzugefügt. Der dieser Eigenschaft zugewiesene Wert stammt aus der letzten Spalte dieses Namens in der Ergebniszeile. Betrachten Sie als Beispiel die folgende
SELECT customers.customerId, addresses.customerId FROM customers INNER JOIN addresses ON customers.customerId = addresses.customerId
Bei der Ausführung dieser Anweisung für eine SQLConnection mit kurzen Spaltennamen weist jedes Ergebnisobjekt eine Eigenschaft namens
Um Schemainformationen für eine Datenbank erhalten, laden Sie Schemainformationen mithilfe der Methode
Im Allgemeinen werden „SQLSchema“-Instanzen nicht direkt aufgrund von Entwicklercode erstellt.
Wenn beispielsweise ein Datenbankindex mithilfe der folgenden SQL-Anweisung erstellt wird, lautet der Wert der Eigenschaft
Wenn beispielsweise ein Datenbankindex mithilfe der folgenden SQL-Anweisung erstellt wird:
handelt es sich bei der Eigenschaft
Diese Werte repräsentieren verschiedene Vergleichsreihenfolgen, die für eine Spalte in einer Datenbanktabelle angegeben werden können. Mithilfe einer Vergleichsreihenfolge können Daten sortiert und verglichen werden, z. B. ob in der Datenbank zwischen Groß- und Kleinschreibung unterschieden wird.
Weitere Informationen zum Definieren und Verwenden von Sortierfolgen finden Sie im Abschnitt „COLLATE“ im Anhang „
Wenn ein binärer Vergleich auf Werte der
Um die „SQLSchemaResult“-Instanz für einen Aufruf von
Die Funktionen der SQLConnection-Klasse werden in mehrere Kategorien unterteilt:
Eine lokale SQL-Datenbankdatei wird erstellt oder geöffnet, indem die
Außerdem bietet die SQLConnection-Klasse Möglichkeiten für SQL-Anweisungen, einschließlich einer Funktionalität zum Ausführen mehrerer Anweisungen in einer Transaktion. Transaktionen werden mithilfe der Methoden
Die SQLConnection-Klasse bietet Zugriff auf Datenbankschemainformationen zu den verbundenen Datenbanken. Im Schema einer Datenbank werden die Definitionen ihrer Tabellen, Spalten, Indizes und Auslöser beschrieben. Weitere Informationen finden Sie im Abschnitt zur
Mithilfe der SQLConnection-Klasse können Datenbanken unter Verwendung von AES-CCM verschlüsselt werden. Dadurch können Daten sowohl identifiziert als auch geschützt werden. Zum Verschlüsseln einer Datenbank muss bei deren Erstellung ein 16-Byte-Schlüssel festgelegt werden (durch ein ByteArray). Dieser Schlüssel kann später mithilfe der
Mithilfe einer SQLConnection-Instanz können Ereignisbenachrichtigungen auf Datenbankebene empfangen und Konfigurationssteuerungen aller Aspekte einer Datenbank, einschließlich Seitengröße im Cache, Verfahrensstornierung und Optionen zur Anweisungsausführung, vorgenommen werden.
Eine
Im asynchronen Modus wird mithilfe von Ereignis-Listenern oder einer Responder-Instanz bestimmt, wann ein Vorgang erfolgreich abgeschlossen wird oder fehlschlägt. Die Vorgänge werden im Hintergrund ausgeführt und nicht im Hauptanwendungs-Thread, d. h. die Anwendung wird weiterhin ausgeführt und reagiert auch während der Ausführung der Datenbankvorgänge auf Benutzereingriffe. Jede asynchrone SQLConnection-Instanz führt SQL-Anweisungen in ihrem eigenen Thread aus.
Im asynchronen Modus starten Sie einen bestimmten Vorgang durch ein Aufrufen der entsprechenden Methode. Um den Abschluss (oder das Fehlschlagen) des Vorgangs festzustellen, registrieren Sie einen Listener für das entsprechende Ereignis. Zu jedem Vorgang gibt es ein zugeordnetes Ereignis, das beim erfolgreichen Abschluss des Vorgangs ausgelöst wird. Wenn beispielsweise der Aufruf einer
Im synchronen Modus brauchen Sie keine Ereignis-Listener zu registrieren, um den Abschluss oder das Fehlschlagen eines Vorgangs zu bestimmen. Zur Identifizierung der Fehler schließen Sie die Anweisungen, die Fehler auslösen, in einen
Der Name der Funktion ist beliebig.
Funktionen von Mitgliedern auf Klassenebene werden nicht vom Garbagekollektor entfernt. Daher können Sie
Nachdem Sie einen Ereignis-Listener erfolgreich registriert haben, können Sie seine Priorität nicht durch weitere Aufrufe von
Nach der Registrierung des Listeners haben nachfolgende Aufrufe von
Sie können einen Ereignis-Listener nicht nur für die Ziel- oder Bubbling-Phase registrieren. Die beiden Phasen hängen während der Registrierung immer zusammen, da Bubbling nur für übergeordnete Elemente des Zielknotens gilt.
Wenn Sie einen Ereignis-Listener nicht mehr brauchen, entfernen sie ihn, indem Sie
Beim Kopieren einer EventDispatcher-Instanz werden zugewiesene Ereignis-Listener nicht kopiert. (Wenn ein neu angelegter Knoten einen Ereignis-Listener benötigt, müssen Sie den Listener nach dem Erstellen des Knotens zuweisen.) Wenn Sie jedoch eine EventDispatcher-Instanz verschieben, werden zugewiesene Ereignis-Listener ebenfalls verschoben.
Wenn der Ereignis-Listener bei einem Knoten registriert wird, während mit diesem Knoten ein Ereignis durchgeführt wird, so wird der Ereignis-Listener während der aktuellen Phase nicht ausgelöst, kann aber während einer späteren Phase im Ereignisablauf ausgelöst werden, etwa während der Bubbling-Phase.
Wird ein Ereignis-Listener von einem Knoten entfernt, während mit dem Knoten ein Ereignis durchgeführt wird, so wird er von den aktuellen Aktionen immer noch ausgelöst. Nachdem er entfernt worden ist, wird der Ereignis-Listener nicht wieder aufgerufen (es sei denn er wird für spätere Verarbeitungsvorgänge erneut aufgerufen).
Wenn für eine Datenbank Indexpositionen definiert wurden, aber die Methode
Ändern sich die Daten einer Tabelle (aufgrund einer
Mit dem
Durch jeden Aufruf dieser Methode werden die zuvor erstellten statistischen Daten gelöscht und für die im Parameter
Sie können die mit der Methode
Weist der Parameter den Wert
Ein gültiger Verschlüsselungsschlüssel hat eine Länge von 16 Byte. Eine im Speicher abgelegte Datenbank kann nicht verschlüsselt werden. Deshalb muss dieser Parameter
Entspricht beim Verknüpfen einer verschlüsselten Datenbank der Verschlüsselungsschlüssel nicht jenem der Datenbank, so tritt ein Ausnahmefehler auf. Im synchronen Ausführungsmodus wird ein SQLError-Ausnahmefehler ausgegeben. Im asynchronen Ausführungsmodus wird ein SQLErrorEvent ausgelöst, wobei die
Der
Wenn bereits eine Datenbank mit dem angegebenen Namen verknüpft wurde, wird durch das Aufrufen von
Jede SQL-Anweisung kann auf einer verknüpften Datenbank ausgeführt werden, und zwar mithilfe von
Eine mithilfe der Methode
Für die verknüpfte Datenbank wird der gleiche Ausführungsmodus (synchron oder asynchron) wie für die Hauptdatenbank verwendet. Ausschlaggebend ist dabei, ob die Hauptdatenbank mithilfe der Methode
Der Standardwert (
Standardmäßig wird jede SQL-Anweisung in einer separaten Transaktion ausgeführt, und die Transaktion ist beendet, wenn die Ausführung der Anweisung erfolgreich beendet wird oder fehlschlägt. Mithilfe der Methode
Beenden Sie eine Transaktion durch Aufrufen der
Verschachtelte Aufrufe von
Wird die Datenbankverbindung geschlossen, während eine Transaktion geöffnet ist, macht AIR die Transaktion automatisch rückgängig. (Hinweis: Bei AIR 1.1 und niedrigeren Versionen werden offene Transaktionen beim Schließen einer Verbindung automatisch festgeschrieben.)
Eine Transaktion ist nicht auf Anweisungsausführungen in einer Datenbank beschränkt; sondern es können auch Anweisungen an verschiedenen verknüpften Datenbanken ausgeführt werden.
Werden beim Aufrufen der
Wenn es beim Aufrufen von
Dazwischenliegende Speicherpunkte, die als eine Art Lesezeichen innerhalb einer Transaktion fungieren, lassen sich durch einen Aufruf der
Für eine Transaktion, die Speicherpunkte verwendet, werden alle Änderungen, die mithilfe der
An einer verknüpften Datenbankdatei kann der Vorgang
Da die durch die Methode
Dieser Vorgang ist in einer aktiven Transaktion nicht eingeschlossen.
Ist die Datenbankverbindung geschlossen, gibt die Methode den Wert
Ist der angegebene Wert ungültig, wird ein
Weist das Argument
Der Zugriff auf das geladene Schema erfolgt mithhilfe der Methode
Im asynchronen Ausführungsmodus wird bei einem erfolgreichen Abschluss des Vorgangs ein
Mit der Kombination aus den Werten der Parameter
Entspricht die Kombination aus
Ist die Datenbank leer (enthält keine Tabellen, Ansichten, Auslöser oder Indizes), tritt beim Aufrufen der
Dieser Parameter wird ignoriert, wenn der Parameter
Ein gültiger Verschlüsselungsschlüssel hat eine Länge von 16 Byte. Eine im Speicher abgelegte Datenbank kann nicht verschlüsselt werden. Deshalb muss dieser Parameter
Entspricht beim Öffnen einer verschlüsselten Datenbank der Verschlüsselungsschlüssel nicht jenem der Datenbank, so wird ein SQLErrorEvent-Ausnahmefehler ausgelöst. Die
Der
Nachdem die Verbindung zu einer Datenbank hergestellt wurde, verwenden Sie eine
Eine Datenbank, zu der die Verbindung mithilfe der Methode
Dieser Parameter wird ignoriert, wenn der Parameter
Ein gültiger Verschlüsselungsschlüssel hat eine Länge von 16 Byte. Eine im Speicher abgelegte Datenbank kann nicht verschlüsselt werden. Deshalb muss dieser Parameter
Entspricht beim Öffnen einer verschlüsselten Datenbank der Verschlüsselungsschlüssel nicht jenem der Datenbank, so wird ein SQLError-Ausnahmefehler ausgegeben. In diesem Fall lautet die
Der
Nachdem die Verbindung zu einer Datenbank hergestellt wurde, verwenden Sie eine
Eine Datenbank, zu der die Verbindung mithilfe der Methode
Der Vorgang der erneuten Verschlüsselung läuft in einer eigenen Transaktion ab. Wenn der Vorgang der erneuten Verschlüsselung unterbrochen wird, macht die Datenbank die Transaktion rückgängig und der Verschlüsselungsschlüssel bleibt unverändert.
Beachten Sie, dass Änderungen erst dann dauerhaft in der Datenbank gespeichert werden, wenn die gesamte Transaktion übernommen wird. Wenn die Transaktion mit der
Wenn der Code die
Wenn diese Methode ohne Parameter (oder mit dem Wert
Wenn für den
Nachdem ein Speicherpunkt übernommen oder zurückgenommen wurde, werden dieser Speicherpunkt und ggf. vorhandene neuere Speicherpunkte entfernt. Wenn der Code nach dem Aufruf von
Beachten Sie, dass bei der Übernahme der gesamten Transaktion durch einen Aufruf der
Wenn diese Methode ohne Parameter (oder mit dem Wert
Wenn für den
Nachdem ein Speicherpunkt übernommen oder zurückgenommen wurde, werden dieser Speicherpunkt und ggf. vorhandene neuere Speicherpunkte entfernt. Wenn der Code nach dem Aufruf von
Innerhalb einer Transaktion können dazwischenliegende Speicherpunkte mit einem Aufruf der
Wenn der angegebene Name ein Duplikat eines bereits zuvor gespeicherten Speicherpunkts ist, werden mit dem nächsten Aufruf von
Der Wert von
Wenn die
Beachten Sie, dass Änderungen erst dann dauerhaft in der Datenbank gespeichert werden, wenn die gesamte Transaktion übernommen wird. Wenn die Transaktion mit der
Sie können einen Namen für einen Speicherpunkt festlegen, indem Sie einen Wert für den
Nachdem ein Speicherpunkt übernommen oder zurückgenommen wurde, werden dieser Speicherpunkt und ggf. vorhandene neuere Speicherpunkte entfernt. Wenn der Code nach dem Aufruf von
Wenn die Eigenschaft
Die in der „SQLColumnNameStyle“-Klasse definierten Konstanten repräsentieren die möglichen Werte dieser Eigenschaft:
Der Wert lautet „zero“, wenn keine Datenbank verbunden ist oder wenn keine
Den Zeilenbezeichner für die Ausführung einer SQL
Weitere Informationen zu Primärschlüsseln und generierten Zeilenbezeichnern finden Sie in den Abschnitten „
Wenn die Eigenschaft
Sie können die Seitengröße einer Datenbank ändern (mithilfe der Methoden
Ist die Datenbankverbindung geschlossen, wird der Wert auf „0“ zurückgesetzt. Wenn die SQLConnection-Instanz mit keiner Datenbank verbunden ist, lautet der Wert „0“.
Um die Auslöserschemainformationen für eine Datenbank zu erhalten, laden Sie die Schemainformationen mithilfe der Methode
Im Allgemeinen werden „SQLTriggerSchema“-Instanzen nicht direkt aufgrund von Entwicklercode erstellt.
Eine SQLStatement-Instanz wird mit einem SQLConnection-Objekt verknüpft, indem Sie die SQLConnection-Instanz als Wert der
Eine umfassende Beschreibung des von der lokalen SQL-Datenbank unterstützten SQL-Dialekts finden Sie im Anhang
Im asynchronen Ausführungsmodus werden die Methoden
Als direkte Reaktion auf den Abschluss des Vorgangs
Wenn es sich bei der SQL-Anweisung um eine
Falls das
Um auf die Ergebnisse einer Anweisung zuzugreifen, zum Beispiel auf die Ergebniszeilen einer
Eine Anweisung kann erst ausgeführt werden, nachdem sie vorbereitet (kompiliert) wurde. Beim ersten Aufrufen der Methode
Wenn bei der Ausführung einer
Wurde das Argument
Beachten Sie, dass „SQLResult“-Objekte in der Warteschlange verbleiben, bis sie durch einen Aufruf von
Falls im asynchronen Ausführungsmodus das
Diese Methode kann nur aufgerufen werden, solange die Anweisung ausgeführt wird. Wenn es sich bei der Anweisung um eine
Diese Eigenschaft hat den Wert „true“, wenn
Standardmäßig wird jede von einer
Durch die Angabe einer Klasse für die Eigenschaft
Eine dieser Eigenschaft zugewiesene Klasse muss über einen Konstruktor verfügen, der keine Parameter erfordert. Außerdem muss die Klasse je eine Eigenschaft für jede von der Anweisung
Im Text einer SQL-Anweisung wird ein Parameter mit einem der folgenden Zeichen gekennzeichnet: „?“, „:“ oder „@“.
Mit den Token „:“ und „@“ wird ein benannter Parameter gekennzeichnet; die darauf folgenden Zeichen geben den Namen des Parameters an.
Beispiel: In der folgenden SQL-Anweisung wird ein Parameter namens
SELECT FROM employees WHERE firstName = :firstName
Das Token „?“ kennzeichnet einen indizierten (nummerierten) Parameter; gemäß der Reihenfolge der Parameter im Anweisungstext erhält jeder Parameter automatisch eine Indexposition. Die Indexpositionswerte der Parameter basieren auf null. d. h. die Indexposition des ersten Parameters lautet 0.
Parameter dienen zur typisierten Ersetzung von Werten, die bei der Konstruktion der SQL-Anweisung unbekannt sind. Nur mithilfe von Parameter kann die Speicherklasse eines an die Datenbank übergebenen Wertes sichergestellt werden. Ohne Parameter werden alle Werte auf der Basis der Typenaffinität der zugewiesenen Spalte von ihrer Textrepräsentation in eine Speicherklasse konvertiert. Weitere Informationen zu Speicherklassen und Spaltenaffinität finden Sie im Abschnitt „Datentypunterstützung“ im Anhang „
Parameter werden auch als Sicherheitsmaßnahmen zur Verhinderung eines böswilligen Verfahrens, das als SQL-Injektionsangriff bekannt ist, eingesetzt. Bei einem SQL-Injektionsangriff gibt ein Benutzer einen SQL-Code an einer für Benutzer zugänglichen Stelle ein (z. B. ein Dateneingabefeld). Wenn der Anwendungscode eine SQL-Anweisung durch die direkte Verkettung einer Benutzereingabe mit dem SQL-Text erstellt, wird der vom Benutzer eingegebene SQL-Code an der Datenbank ausgeführt. Das folgende Beispiel zeigt die Verkettung der Benutzereingabe mit dem SQL-Text. Verwenden Sie dieses Verfahren nicht:
Ein SQL-Injektionsangriff lässt sich verhindern, indem Anweisungsparameter verwendet werden, anstatt durch Benutzer eingegebene Werte mit dem Anweisungstext zu verketten. Die Parameterwerte werden ausdrücklich als ersetzte Werte behandelt und werden nicht Teil des eigentlichen Anweisungstexts. Folgendes ist die empfohlene Alternative zur vorherigen Notierung:
Alle Parameterwerte müssen vor der Ausführung der Anweisung eingestellt sein. Im Array
Sie können alle Parameterwerte aus der Eigenschaft
Beim Text kann es sich um jede unterstützte SQL handeln. Eine umfassende Beschreibung des von der lokalen SQL-Datenbank unterstützten SQL-Dialekts finden Sie im Anhang „
Unterstützung von AIR-Profilen: Diese Funktion wird auf allen Desktopbetriebssystemen unterstützt, jedoch nicht auf mobilen Geräten oder Geräten mit AIR für TV. Mit der
AIR stellt einen verschlüsselten lokalen Speicher (encrypted local store, ELS) für jede auf dem Computer eines Benutzers installierte AIR-Anwendung bereit. Dadurch können Daten auf der lokalen Festplatte des Benutzers in einem verschlüsselten Format gespeichert und abgerufen werden, das von anderen Benutzern nicht leicht entschlüsselt werden kann. Für jede AIR-Anwendung wird jeweils ein separater verschlüsselter lokaler Speicher verwendet, und jede AIR-Anwendung verwendet jeweils einen separaten verschlüsselten lokalen Speicher für jedes Benutzerkonto auf dem Computer.
Verwenden Sie den verschlüsselten lokalen Speicher für die Zwischenspeicherung von Daten, die gesichert werden müssen (z. B. Anmeldeinformationen für Webdienste). Der ELS eignet sich für die Speicherung von Informationen, die für andere Benutzer nicht zugänglich sein sollen. Er schützt die Daten jedoch nicht vor anderen Prozessen, die unter demselben Benutzerkonto ausgeführt werden. ELS eignet sich deshalb nicht für den Schutz geheimer Anwendungsdaten wie DRM oder Verschlüsselungsschlüssel.
AIR verwendet DPAPI unter Windows, KeyChain unter Mac OS und KeyRing oder KWallet unter Linux, um den verschlüsselten lokalen Speicher den einzelnen Anwendungen und Benutzern zuzuordnen. Die Verschlüsselung im lokalen Speicher erfolgt mit AES-CBC 128 Bit-Verschlüsselung.
Die im verschlüsselten lokalen Speicher enthaltenen Informationen stehen nur als AIR-Anwendungsinhalt in der Sicherheits-Sandbox application zur Verfügung.
Wenn Sie eine AIR-Anwendung aktualisieren, behält die aktualisierte Version den Zugriff auf alle vorhandenen Daten im verschlüsselten lokalen Speicher, es sei denn:
Einschränkungen des verschlüsselten lokalen Speichers
Die Daten im verschlüsselten lokalen Speicher sind durch die Authentifizierungsdaten des Betriebssystems des Benutzers geschützt. Andere Entitäten haben keinen Zugriff auf den Speicher, solange sie sich nicht als der betreffende Benutzer anmelden können. Die Daten sind jedoch nicht vor dem Zugriff durch andere Anwendungen, die von einem authentifizierten Benutzer ausgeführt werden, geschützt. Daten, die Ihre Anwendung vor Benutzern geheim halten möchte, zum Beispiel Lizenzschlüssel oder DRM-Schlüssel, sind deshalb nicht sicher. Der verschlüsselte lokale Speicher ist nicht der geeignete Ort für die Speicherung dieser Informationen. Er ist lediglich ein geeigneter Speicherort für die persönlichen Daten eines Benutzers, zum Beispiel Kennwörter.
Daten im ELS können aus verschiedenen Gründen verloren gehen. Der Benutzer könnte die Anwendung zum Beispiel deinstallieren und die verschlüsselte Datei löschen. Oder die Herausgeber-ID wird im Rahmen eines Updates geändert. Deshalb sollte der ELS als privater Cachespeicher, nicht als permanenter Datenspeicher betrachtet werden.
Der
Der verschlüsselte lokale Speicher kann langsamer sein, wenn die gespeicherte Datenmenge 10 MB übersteigt.
Bei der Deinstallation einer AIR-Anwendung werden die Daten im verschlüsselten lokalen Speicher nicht gelöscht.
Zu den bewährten Verfahren bei der Verwendung des verschlüsselten lokalen Speicher gehört Folgendes:
Die Elemente im verschlüsselten lokalen Speicher werden mit einem String gekennzeichnet. Alle Elemente werden als Byte-Array-Daten gespeichert.
Daten im verschlüsselten lokalen Speicher werden in einem Unterverzeichnis des Anwendungsdatenverzeichnisses gespeichert; der Unterverzeichnispfad lautet Adobe/AIR/ELS/ gefolgt von der Anwendungs-ID.
Wenn es kein Element mit dem angegebenen Namen gibt, gibt diese Methode
Um die Indexschemainformationen für eine Datenbank zu erhalten, laden Sie die Schemainformationen mithilfe der Methode
Im Allgemeinen werden „SQLIndexSchema“-Instanzen nicht direkt aufgrund von Entwicklercode erstellt.
Um die Tabellenschemainformationen für eine Datenbank zu erhalten, laden Sie die Schemainformationen mithilfe der Methode
Im Allgemeinen werden „SQLTableSchema“-Instanzen nicht direkt aufgrund von Entwicklercode erstellt.
Der Zugriff auf die SQLResult-Instanz einer SQL-Anweisung erfolgt durch den Aufruf der
Mit einem SQLResult-Objekt können Sie: auf die von einer
Wenn die Anweisung eine oder mehrere Zeilen zurückgibt, gibt diese Eigenschaft an, ob alle Zeilen zurückgegeben wurden. Wird die Methode
Da die Anzahl der Zeilen bei der Ausführung nicht bekannt ist, gilt die Anweisungsausführung erst als abgeschlossen, wenn sich der Datenbankcursor jenseits der letzten Zeile befindet. Wenn die Methode
Wenn eine Anweisung eine oder mehrere Zeilen zurückgibt, ist diese Eigenschaft ein Array mit Objekten, die die Zeilen der Ergebnisdaten repräsentiert. Jedes Objekt in diesem Array verfügt über Eigenschaftennamen, die den Spaltennamen aus den Ergebnisdaten entsprechen.
Angenommen, Sie führen die SQL-
Wenn die
Die Situation ist komplexer, wenn Sie eine
In den Ergebnissen dieser Anweisung hat jedes Objekt im
Im
Die
Nach dem Ausführen der Abfrage enthält die
Falls es in den Ergebnisdaten doppelte Spaltennamen gibt, zum Beispiel, wenn die
Standardmäßig handelt es sich bei den Objekten im
Wenn eine Anweisung keine Daten zurückgibt, hat diese Eigenschaft den Wert
Handelt es sich bei der ausgeführten Anweisung nicht um eine
Ein Zeilenbezeichner dient zur eindeutigen Kennzeichnung einer Zeile in einer Tabelle in der Datenbank. Der Wert wird häufig von der Datenbank erzeugt.
Weitere Informationen zu Primärschlüsseln und generierten Zeilenbezeichnern finden Sie in den Abschnitten „CREATE TABLE“ und „Ausdrücke“ im Anhang „
Zusätzliche Änderungen, die von Auslösern verursacht werden, werden nicht gezählt. Mithilfe der Eigenschaft
Wenn es sich bei der entsprechenden SQL-Methode um eine