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é.
Exemple
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.
Exemples
|
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
SELECTavec 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
SELECTavec la fonctionGetAS(nom rubrique, 'JPEG')récupère des données au format binaire ; sinon, l'instructionSELECTavec un nom de rubrique renvoie la valeurNULL.
Exemple
Pour récupérer des informations de référence de fichier, utilisez la fonction CAST() 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
SELECTré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
SELECTrécupère le nom de ce fichier. -
Si vous avez importé un fichier dans la rubrique Conteneur depuis une autre application, l'instruction
SELECTaffiche « ? » (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.Exemple
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.Exemples
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_VentesSi 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