Como: |
Esta função se aplica apenas aos adaptadores Microsoft SQL Server e Sybase.
O Servidor Microsoft SQL e o Sybase possuem um tipo de dados chamado TIMESTAMP. Em vez de conter uma marca temporal, colunas com este tipo de dados contêm um número que é aumentado para cada registro inserido ou atualizado na fonte de dados. Esta marca temporal vem de uma área comum, portanto, nenhuma tabela no banco de dados possuirá o mesmo valor de coluna da marca temporal. O valor é armazenado no formato Binário(8) ou Varbinário(8) na tabela, mas é exibido como uma coluna alfanumérica de largura dupla (A16). Você pode utilizar a função TSTOPACK para converter a marca temporal em decimal compactado.
TSTOPACK(tscol, output);
onde:
A16
É a coluna de marca temporal a ser convertido.
P21
É o nome do campo que contém o resultado ou o formato do valor de saída posto entre aspas simples (‘).
O comando CREATE TABLE a seguir cria um nome de tabela SQL Server TSTEST que contém uma coluna de contador inteiro com o nome I e uma coluna de marca temporal com o nome TS:
SQL SQLMSS CREATE TABLE TSTEST (I INT, TS timestamp) ; END
O Arquivo Master para a fonte de dados TSTEST se encontra a seguir. O campo TS representa a coluna 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, $
Observação: Quando você gera um sinônimo para uma tabela com uma coluna TIMESTAMP, a coluna TIMESTAMP é criada como apenas de leitura (FILETYPE=R).
TSTOPACK converte a coluna da marca temporal em decimal compactado:
DEFINE FILE TSTEST TSNUM/P21=TSTOPACK(TS,'P21'); END TABLE FILE TEST64 PRINT I TS TSNUM END
A saída é:
Information Builders |