Clause FOR UPDATE
La clause FOR UPDATE
verrouille les enregistrements pour des mises à jour positionnées ou des suppressions positionnées via les curseurs SQL. La syntaxe de cette clause est la suivante :
FOR UPDATE [OF expressions_colonne]
expressions_colonne
est une liste de noms de rubriques de la table de base de données que vous souhaitez mettre à jour, séparés par une virgule. Il s'agit d'un argument facultatif et ignoré.
Renvoyer tous les enregistrements de la base de données d'employés dont la valeur de la rubrique SALAIRE
est supérieure à 20 000 euros.
SELECT * FROM emp WHERE salaire > 20000 FOR UPDATE OF nom_famille, prénom, salaire
Lorsque chaque enregistrement est récupéré, il est verrouillé. Si vous mettez à jour l'enregistrement ou que vous le supprimez, le verrou est maintenu jusqu'à ce que vous validiez la modification. Sinon, le verrou disparaît lorsque vous passez à l'enregistrement suivant.
Utilisation de |
Exemple de code SQL |
Constante de type texte |
Copier
|
Constante de type numérique |
Copier
|
Constante de type date |
Copier
|
Constante de type heure |
Copier
|
Constante de type horodatage |
Copier
|
Colonne de texte |
Copier
|
colonne de type numérique |
Copier
|
Colonne de type date |
Copier
|
Colonne de type heure |
Copier
|
Colonne de type horodatage |
Copier
|
Colonne Conteneur |
Copier
Remarque Un conteneur de fichier de base de données est une rubrique qui contient un fichier de base de données FileMaker Pro. |
Caractère joker * |
Copier
|
Notes à propos des exemples
Une colonne
est une référence à une rubrique dans un fichier de base de données FileMaker Pro. (Cette rubrique peut contenir plusieurs valeurs distinctes).
Le caractère joker (*) est une manière plus courte de dire « tout ». L'exemple SELECT * FROM Vendeurs
fait apparaître toutes les colonnes de la table Vendeurs
. L'exemple SELECT DISTINCT * FROM Vendeurs
fait apparaître toutes les rangées uniques de la table Vendeurs
(sans doublons).
-
Le logiciel FileMaker ne stocke pas de données pour les chaînes vides. Les requêtes suivantes ne renvoient donc jamais d'enregistrement :
CopierSELECT * FROM test WHERE c =''
SELECT * FROM test WHERE c <>'' -
Si vous utilisez
SELECT
avec des données binaires, vous devez utiliser la fonctionGetAs()
pour indiquer le flux à renvoyer. Consultez la section « Récupération du contenu d'une rubrique Conteneur : fonctions CAST() et GetAs() » pour plus d'informations.
Récupération du contenu d'une rubrique Conteneur : fonctions CAST() et GetAs()
Depuis une rubrique Conteneur, vous pouvez récupérer des informations de référence de fichier, des données binaires ou des données appartenant à un type de fichier particulier.
-
Pour récupérer des informations de référence de fichier depuis une rubrique Conteneur, comme le chemin d'accès à un fichier, à une image ou à une séquence QuickTime, utilisez la fonction
CAST()
avec une instructionSELECT
. -
S'il existe des données de fichier ou des données binaires JPEG, l'instruction
SELECT
avec la fonctionGetAS(nom rubrique, 'JPEG')
récupère des données au format binaire ; sinon, l'instructionSELECT
avec un nom de rubrique renvoie la valeurNULL
.
Pour récupérer des informations de référence de fichier, utilisez la fonction C
AST()
avec une instruction SELECT
.
SELECT CAST(Brochures_Société AS VARCHAR) FROM Informations_Ventes
Dans cet exemple :
-
Si vous avez inséré un fichier dans la rubrique Conteneur en utilisant FileMaker Pro, mais que vous avez enregistré uniquement une référence dans le fichier, l'instruction
SELECT
récupère les informations de référence du fichier comme étant du typeSQL_VARCHAR
. -
Si vous avez inséré le contenu d'un fichier dans la rubrique Conteneur en utilisant FileMaker Pro, l'instruction
SELECT
récupère le nom de ce fichier. -
Si vous avez importé un fichier dans la rubrique Conteneur depuis une autre application, l'instruction
SELECT
affiche « ? » (le fichier apparaît sous la forme Untitled.dat dans FileMaker Pro)
Pour récupérer des données binaires, vous pouvez utiliser l'instruction SELECT
avec la fonction GetAs()
de l'une des façons suivantes :
-
Lorsque vous utilisez la fonction
GetAs()
avec l'optionDEFAULT
, vous récupérez le flux maître du conteneur sans devoir définir explicitement le type de flux.CopierSELECT GetAs(Brochures_Société, DEFAULT) FROM Informations_Ventes
-
Pour récupérer un type de flux individuel depuis un conteneur, utilisez la fonction
GetAs()
et indiquez le type du fichier en fonction du mode d'insertion des données dans la rubrique Conteneur dans FileMaker Pro.Si les données ont été insérées à l'aide de la commande Insérer > Fichier, indiquez
'FILE'
dans la fonctionGetAs()
.CopierSELECT GetAs(Brochures_Société, 'FILE') FROM Informations_Ventes
Si les données ont été insérées à l'aide de la commande Insérer > Image, faites glisser et déposez le fichier ou copiez-le depuis le Presse-papiers et indiquez l'un des types de fichiers répertoriés dans le tableau ci-dessous, par exemple,
'JPEG'
.CopierSELECT GetAs(Logo_Société, 'JPEG') FROM Icônes_Société
Type de fichier
Description
'GIFf'
Graphics Interchange Format
'JPEG'
Photos
'TIFF'
Format de fichier trame pour images numériques
'PDF '
Portable Document Format
'PNGf'
Format d'image Bitmap