TSTOPACK : Convertir une colonne tampon date/heure MSSQL ou Sybase en décimal condensé

Comment :

Cette fonction s'applique aux adaptateurs Microsoft SQL Server et Sybase uniquement.

Microsoft SQL Server et Sybase ont un type de données appelé TIMESTAMP. Plutôt que de contenir un horodatage réel, les colonnes de ce type de données contiennent un certain nombre qui est incrémenté pour chaque enregistrement inséré ou mis à jour dans la source de données. Cet horodatage provient d'un espace commun, il n'existe donc pas deux tables dans la base de données ayant la même valeur que la colonne d'horodatage. La valeur est stockée au format Binaire(8) ou Varbinary(8) dans la table, mais est retournée comme une colonne épaisse alphanumérique double (A16). Vous pouvez utiliser la fonction TSTOPACK pour convertir la valeur de l'horodatage en décimal condensé.


Haut de page

x
Syntaxe : Convertir une colonne tampon date/heure MSSQL ou Sybase en décimal condensé
TSTOPACK(tscol, output);

où :

tscol

A16

est la colonne tampon heure à convertir.

output

P21

est le champ qui contient le résultat, ou le format de la valeur de sortie entre guillemets simples (‘).



Exemple : Convertir une colonne tampon date/heure Microsoft SQL en décimal condensé

La commande CREATE TABLE suivante crée un nom de table SQL Server TSTEST qui contient une colonne de compteurs entière nommée I et une colonne d'horodatage nommée TS :

SQL SQLMSS
  CREATE TABLE TSTEST (I INT, TS timestamp) ;
END

Le fichier maître de la source de données TSTEST suit. Le champ TS représente la colonne TIMESTAMP :

FILENAME=TSTEST, SUFFIX=SQLMSS  , $
  SEGMENT=TSTEST, SEGTYPE=S0, $
    FIELDNAME=I, ALIAS=I, USAGE=I11, ACTUAL=I4,
      MISSING=ON, $
    FIELDNAME=TS, ALIAS=TS, USAGE=A16, ACTUAL=A16, FIELDTYPE=R, $

Remarque : lorsque vous générez un synonyme pour une table avec une colonne TIMESTAMP, la colonne TIMESTAMP est créée pour un accès en lecture seule (FIELDTYPE=R).

TSTOPACK convertit la colonne d'horodatage TS en décimal condensé :

DEFINE FILE TSTEST 
TSNUM/P21=TSTOPACK(TS,'P21');
END
TABLE FILE TEST64
PRINT I TS TSNUM
END

La sortie est :


Information Builders