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



Trackbacks & Pingbacks
[…] 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!