Artigo
· Nov. 28, 2023 2min de leitura

Utilize uma classe datatype personalizada para a criação de tabelas DDL definidas pelo usuário

Neste artigo, demonstro como criar uma coluna de tabela (antes chamada de "propriedades") com suas classes datatype personalizadas ao usar a DDL definida pelo usuário. As propriedades são um membro fundamental da definição de classe persistente. Datatypes são essenciais para definir os tipos de valores armazenados em uma coluna da tabela. Em geral, os nomes de datatype do SQL diferem dos datatypes da InterSystems, como VARCHAR = %String. Você tem a capacidade de criar ou modificar uma tabela ao usar esses datatypes. De fato, você está criando tabelas pela DDL e já tem suas próprias classes de datatype definidas. Esses datatypes devem ser usados ao executar create/alter na sua definição de classe, em vez dos datatypes padrão da InterSystems. Eles são bastante fáceis de usar ao seguir os passos abaixo

Faça login no portal de gerenciamento. Acesse Sistema > Configuração > Mapeamentos de DDL definidos pelo usuário. Crie um novo mapeamento de DDL definido pelo usuário. Adicione o nome do datatype padrão do SQL que será usado nas consultas SQL. Incorpore sua própria classe datatype no Datatype. Pressione o botão Salvar. Tudo pronto para usar na DDL!

Crie/use sua classe datatype

Class Samples.DT.BoolYN [ ClassType = datatype ]
{
/// A implementação está pronta
}

Execute a consulta SQL. - O datatype de DDL definido pelo usuário está no campo IsActive

   CREATE TABLE Employees (
        FirstName VARCHAR(30),
        LastName VARCHAR(30),
        StartDate TIMESTAMP,
        IsActive BIT(%1)
    )

Depois que a consulta é executada. A definição da classe é criada com sua própria classe de datatype

/// 
Class Sample.Person Extends %Persistent [ ClassType = persistent, DdlAllowed, Final, Owner = {_SYSTEM}, ProcedureBlock, SqlRowIdPrivate, SqlTableName = Person ]
{

Property FirstName As %String(MAXLEN = 50) [ SqlColumnNumber = 2 ];
Property LastName As %String(MAXLEN = 50) [ SqlColumnNumber = 3 ];
Property StartDate As %Library.TimeStamp [ SqlColumnNumber = 4 ];
Property IsActive As Samples.DT.BoolYN [ SqlColumnNumber = 5 ];
Parameter USEEXTENTSET = 1;
/// O Bitmap Extent Index é gerado automaticamente pela declaração CREATE TABLE da DDL.  Não edite o SqlName desse índice.
Index DDLBEIndex [ Extent, SqlName = "%%DDLBEIndex", Type = bitmap ];
}

 Você pode usar esses mesmos nomes da DDL definidos pelo usuário na execução da DDL de Datatype no InterSystems IRIS

CREATE TABLE Sample.Person (
            FirstName %String(MAXLEN=50),
            LastName %String(MAXLEN=50),
            StartDate %TimeStamp,
            IsActive BIT(%1)
        ) 
Discussão (0)1
Entre ou crie uma conta para continuar