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!