Como criar tabelas utilizando o dbExpress Framework

No Delphi 2007 o dbExpress passou por uma grande reformulação que trouxe inúmeras melhoria, uma desta foi a capacidade de interagir com o metadata do banco de dados através do dbExpress Framework, ou seja, através de classes em Delphi.

Inúmeras são as funcionalidades e benefícios de se utilizar o dbExpress Framework para este fim, para começar vamos ver como criar tabelas utilizando utilizando o framework.

Para começar você precisamos definir a conexão com o banco de dados, geralmente utilizamos o SQLConnection ou o DBXConnection, é a partir da conexão que o dbExpress sabe com que banco de dados está conectado e assim saberá como gerar os scripts de criação da tabela. Definida a conexão instanciamos a classe TDBXDataExpressMetaDataProvider, que será o interlocutor entre as classes de metadata e a conexão.

function DBXGetMetaProvider(const AConnection: TDBXConnection):  TDBXDataExpressMetaDataProvider;
var
   Provider: TDBXDataExpressMetaDataProvider;
begin
  Provider := TDBXDataExpressMetaDataProvider.Create;
  try
    Provider.Connection := AConnection;
    Provider.Open;
  except
    FreeAndNil(Provider);
    raise;
  end;

  Result := Provider;
end;

Esta função irá receber a conexão, neste caso estamos passando a instância do DBXConnection, no caso de você estar utilizando SQLConnection não tem problema, pois o SQLConnection fornece a sua instância DBXConnection.

Agora basta criamos a tabela utilizando a classe TDBXMetaDataTable e as colunas através da classe TBX<XXX>Column, onde XXX é o tipo da coluna, para cada tipo de coluna no banco de dados o dbExpress Framework terá uma representação. A seguir a criação da tabela PAIS e seus respectivos campos.

var
  Provider: TDBXDataExpressMetaDataProvider;
  Pais     : TDBXMetaDataTable;
  PaisID   : TDBXInt32Column;
  StrField : TDBXUnicodeVarCharColumn;
begin
  Provider := DBXGetMetaProvider(conn.DBXConnection);

  // Pais
  Pais := TDBXMetaDataTable.Create;
  Pais.TableName := 'PAIS';

  // Campo ID do País
  PaisIdField := TDBXInt32Column.Create('PAISID');
  PaisIdField.Nullable := false;
  PaisIdField.AutoIncrement := true;
  Pais.AddColumn(JobIdField);

  // Campo nome do País
  StrField := TDBXUnicodeVarCharColumn.Create('NOME_PAIS', 50);
  StrField.Nullable := False;
  Pais.AddColumn(StrField);

  // Campo sigla do País
  StrField := TDBXUnicodeVarCharColumn.Create('SIGLA', 2);
  StrField.Nullable := False;
  Pais.AddColumn(StrField);

  // Cria a tabela
  Provider.CreateTable(Pais);

Com a tabela e campos definido o provider executa o método CreateTable para a efetuar a criação da mesma no banco, a partir do momento que mudamos a conexão para outro banco de dados não será necessário atualizar este código, pois o dbExpress é responsável por definir o script de acordo com o banco.

Para criar primary key, foreign key, indices, etc.. disponibilizei um exemplo completo no Embarcadero Code Central, para fazer o download clique aqui

1 responder

Trackbacks & Pingbacks

  1. […] This post was mentioned on Twitter by Andreano Lanusse, Adriano Santos. Adriano Santos said: RT @andreanolanusse: Como criar tabelas utlizando #Delphi dbxExpress framework http://bit.ly/hSBJgD […]

Deixe uma resposta

Want to join the discussion?
Feel free to contribute!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *


Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.