TSTOPACK: Conversione di una colonna data/ora Sybase o MSSQL in decimali compressi

Come:

Questa funzione si applica solo agli adattatori Sybase e Server Microsoft SQL.

Sybase e Server Microsoft SQL presentano un tipo di dati chiamato TIMESTAMP. Piuttosto che contenere l'indicatore data/ora effettivo, le colonne con questo tipo di dati contengono un numero incrementato per ciascun record inserito o aggiornato nell'origine dati. Questa indicatore data/ora deriva da un'area comune, quindi nessuna tabella nel database ha lo stesso valore di colonna indicatore data/ora. Il valore viene memorizzato in formato Binary(8) o Varbinary(8) nella tabella, ma viene restituito come colonna alfanumerica estesa doppia (A16). È possibilie usare la funzione TSTOPACK per convertire il valore indicatore data/ora in decimale compresso.


Inizio pagina

x
Sintassi: Come convertire una colonna data/ora Sybase o MSSQL in decimali compressi
TSTOPACK(tscol, output);

dove:

tscol

A16

La colonna indicatore data/ora da convertire.

emissione

P21

Nome del campo che contiene il risultato o il formato del valore di emissione racchiuso tra virgolette singole (‘).



Esempio: Conversione di una colonna indicatore data/ora del server di Microsoft SQL in decimale compresso

Il seguente comando CREATE TABLE crea un nome di tabella server SQL TSTEST che contiene una colonna contatore intero chiamato I e una colonna indicatore data/ora chiamata TS:

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

Il file principale per l'origine dati TSTEST segue. Il campo TS rappresenta la colonna 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, $

Nota: Quando si genera un sinonimo per una tabella con una colonna TIMESTAMP, la colonna TIMESTAMP viene creata come solo lettura (FIELDTYPE=R).

TSTOPACK converte la colonna indicatore data/ora TS in decimale compresso:

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

L'emissione è:


WebFOCUS