WRITE

Sommaire


Writepermet de créer un enregistrement dans une table.

 

Syntaxe

   Write[ classe ]

 

Paramètres

Elément

Description

Restrictions

classe

Abréviation d'une table, par défaut la table par défaut.

La table doit avoir été ouverte par un ordre File.

 

Exemple

   # Saisie et écriture d'un enregistrement sur le fichier [TEST]
    File TEST [TEST]    :# déclaration du fichier TEST
    Mask TEST [TEST]    :# déclaration du masque TEST
    Inpbox Mask [TEST] ... As [INP1]  :# déclaration de la boite
    Boxact [INP1]       :# Affichage de la boite de saisie
    Boxinp [INP1]...    :# Saisie dans la boite
    ...   
    [F] = [M]            :# transfert des variables du masque dans celles du fichier
    Trbegin [TEST]      :# début de la transaction
   
Write[TEST]       :# écriture sur fichier
    If [S]fstat         :# en cas de problème quelconque
      Rollback           :# la transaction est annulée
    Else        
      Commit             :# sinon elle est validée
      Read [TEST]CODCLE = [F:TEST]CODCLE :# on se positionne dessus
    Endif

   # Ecriture d'un enregistrement sur le fichier par défaut
   
Write

 

Description et commentaires

Writepermet d'écrire un nouvel enregistrement dans une table.
La mise à jour des index est faite automatiquement.

Writemet à jour la variable fstat pour indiquer comment s'est déroulée l'écriture.

fstat

Code

Ecr.

Explication

0

spacer.gif (822 octets)

Oui

L'écriture a eu lieu correctement.

1

ERLOCK

Non

Table verrouillée.

3

ERDUPCL

Non

Tentative de création d'une clé dupliquée.

Une instruction Write ne modifie pas l'enregistrement courant. C'est à dire qu'en règle générale il faut faire une lecture si on veut se positionner sur le nouvel enregistrement.

 

Remarque

L'écriture d'un nouvel enregistrement doit être fait à l'intérieur d'une transaction.

En attendant la fin de la transaction, les créations ne seront pas visibles par les autres utilisateurs, sous Oracle, alors qu'elles le seront sous Sql-serveur. En effet, Adonix utilise pour Sql-serveur la technique du "dirty read"( ou read uncommited) c'est à dire que les écritures non encore commitées sont vues par les utilisateurs. 
En fait, SQL-serveur offre la possibilité de faire des read "commited", mais dans ce cas, la lecture bloque sur les enregistrements modifiés ( contrairement à Oracle qui va lire dans les rollbacks-segments) ce qui risque d'engendrer des ralentissements tout particulièrement sur les listes gauches. 

Il n'est pas possible d'utiliser une abréviation de lien pour écrire unenregistrement.

Le fait de verrouiller un fichier par Lock [abrv] empêche d'autresutilisateurs de créer de nouveaux enregistrements par Write. Dans ce cas la variable fstat estpositionnée à 1.

 

Erreurs associées

Erreur

Description

ERCLAS( 7)

Laclasse fichier n'existe pas (fichier non ouvert).

ERACCE(27)

Tentatived'écriture sur un fichier avec une 'abréviation de lien'.

ERMDISK(44)

Plusde place sur le disque.

ERULIM(65)

Dépassementde la taille maximum (ulimit).

ERORA(75)

ErreurOracle.

 

Mots-clés associés

FILE - REWRITE- READ- TRBEGIN- COMMIT- ROLLBACK- FSTAT


SOMMAIRE

Adonix X3(r) L4G
Copyright (c) Adonix 1999 - All rights reserved