{"id":122,"date":"2009-08-06T22:55:45","date_gmt":"2009-08-06T14:55:45","guid":{"rendered":"http:\/\/www.andreanolanusse.com\/pt\/?p=122"},"modified":"2011-03-08T12:21:21","modified_gmt":"2011-03-08T04:21:21","slug":"como-criar-tabelas-utilizando-o-dbexpress-framework","status":"publish","type":"post","link":"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/","title":{"rendered":"Como criar tabelas utilizando o dbExpress Framework"},"content":{"rendered":"<p>No Delphi 2007 o dbExpress passou por uma grande reformula\u00e7\u00e3o que trouxe in\u00fameras melhoria, uma desta foi a capacidade de interagir com o metadata do banco de dados atrav\u00e9s do dbExpress Framework, ou seja, atrav\u00e9s de classes em Delphi.<\/p>\n<p>In\u00fameras s\u00e3o as funcionalidades e benef\u00edcios de se utilizar o dbExpress Framework para este fim, para come\u00e7ar vamos ver como criar tabelas utilizando utilizando o framework.<\/p>\n<p>Para come\u00e7ar voc\u00ea precisamos definir a conex\u00e3o com o banco de dados, geralmente utilizamos o SQLConnection ou o DBXConnection, \u00e9 a partir da conex\u00e3o que o dbExpress sabe com que banco de dados est\u00e1 conectado e assim saber\u00e1 como gerar os scripts de cria\u00e7\u00e3o da tabela. Definida a conex\u00e3o instanciamos a classe TDBXDataExpressMetaDataProvider, que ser\u00e1 o interlocutor entre as classes de metadata e a conex\u00e3o.<\/p>\n<pre class=\"brush: delphi\">function DBXGetMetaProvider(const AConnection: TDBXConnection):  TDBXDataExpressMetaDataProvider;\r\nvar\r\n   Provider: TDBXDataExpressMetaDataProvider;\r\nbegin\r\n  Provider := TDBXDataExpressMetaDataProvider.Create;\r\n  try\r\n    Provider.Connection := AConnection;\r\n    Provider.Open;\r\n  except\r\n    FreeAndNil(Provider);\r\n    raise;\r\n  end;\r\n\r\n  Result := Provider;\r\nend;<\/pre>\n<p>Esta fun\u00e7\u00e3o ir\u00e1 receber a conex\u00e3o, neste caso estamos passando a inst\u00e2ncia do DBXConnection, no caso de voc\u00ea estar utilizando SQLConnection n\u00e3o tem problema, pois o SQLConnection fornece a sua inst\u00e2ncia DBXConnection.<\/p>\n<p>Agora basta criamos a tabela utilizando a classe TDBXMetaDataTable e as colunas atrav\u00e9s da classe TBX&lt;XXX&gt;Column, onde XXX \u00e9 o tipo da coluna, para cada tipo de coluna no banco de dados o dbExpress Framework ter\u00e1 uma representa\u00e7\u00e3o. A seguir a cria\u00e7\u00e3o da tabela PAIS e seus respectivos campos.<\/p>\n<pre class=\"brush: delphi\">var\r\n  Provider: TDBXDataExpressMetaDataProvider;\r\n  Pais     : TDBXMetaDataTable;\r\n  PaisID   : TDBXInt32Column;\r\n  StrField : TDBXUnicodeVarCharColumn;\r\nbegin\r\n  Provider := DBXGetMetaProvider(conn.DBXConnection);\r\n\r\n  \/\/ Pais\r\n  Pais := TDBXMetaDataTable.Create;\r\n  Pais.TableName := 'PAIS';\r\n\r\n  \/\/ Campo ID do Pa\u00eds\r\n  PaisIdField := TDBXInt32Column.Create('PAISID');\r\n  PaisIdField.Nullable := false;\r\n  PaisIdField.AutoIncrement := true;\r\n  Pais.AddColumn(JobIdField);\r\n\r\n  \/\/ Campo nome do Pa\u00eds\r\n  StrField := TDBXUnicodeVarCharColumn.Create('NOME_PAIS', 50);\r\n  StrField.Nullable := False;\r\n  Pais.AddColumn(StrField);\r\n\r\n  \/\/ Campo sigla do Pa\u00eds\r\n  StrField := TDBXUnicodeVarCharColumn.Create('SIGLA', 2);\r\n  StrField.Nullable := False;\r\n  Pais.AddColumn(StrField);\r\n\r\n  \/\/ Cria a tabela\r\n  Provider.CreateTable(Pais);<\/pre>\n<p>Com a tabela e campos definido o provider executa o m\u00e9todo CreateTable para a efetuar a cria\u00e7\u00e3o da mesma no banco, a partir do momento que mudamos a conex\u00e3o para outro banco de dados n\u00e3o ser\u00e1 necess\u00e1rio atualizar este c\u00f3digo, pois o dbExpress \u00e9 respons\u00e1vel por definir o script de acordo com o banco.<\/p>\n<p>Para criar primary key, foreign key, indices, etc.. disponibilizei um exemplo completo no Embarcadero Code Central, para fazer o download <strong><a href=\"http:\/\/cc.embarcadero.com\/Item\/26210\" target=\"_blank\">clique aqui<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>No Delphi 2007 o dbExpress passou por uma grande reformula\u00e7\u00e3o que trouxe in\u00fameras melhoria, uma desta foi a capacidade de interagir com o metadata do banco de dados atrav\u00e9s do dbExpress Framework, ou seja, atrav\u00e9s de classes em Delphi. In\u00fameras s\u00e3o as funcionalidades e benef\u00edcios de se utilizar o dbExpress Framework para este fim, para [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":781,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_s2mail":"","footnotes":""},"categories":[102],"tags":[33,181],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Como criar tabelas utilizando o dbExpress Framework | Andreano Lanusse | Tecnologia e Desenvolvimento de Software<\/title>\n<meta name=\"description\" content=\"No Delphi 2007 o dbExpress passou por uma grande reformula\u00e7\u00e3o que trouxe in\u00fameras melhoria, uma desta foi a capacidade de interagir com o metadata do\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como criar tabelas utilizando o dbExpress Framework | Andreano Lanusse | Tecnologia e Desenvolvimento de Software\" \/>\n<meta property=\"og:description\" content=\"No Delphi 2007 o dbExpress passou por uma grande reformula\u00e7\u00e3o que trouxe in\u00fameras melhoria, uma desta foi a capacidade de interagir com o metadata do\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/\" \/>\n<meta property=\"og:site_name\" content=\"Andreano Lanusse | Tecnologia e Desenvolvimento de Software\" \/>\n<meta property=\"article:published_time\" content=\"2009-08-06T14:55:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2011-03-08T04:21:21+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2010\/03\/Icon_Delphi.png\" \/>\n\t<meta property=\"og:image:width\" content=\"175\" \/>\n\t<meta property=\"og:image:height\" content=\"175\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@andreanolanusse\" \/>\n<meta name=\"twitter:site\" content=\"@andreanolanusse\" \/>\n<meta name=\"twitter:label1\" content=\"Est. tempo de leitura\">\n\t<meta name=\"twitter:data1\" content=\"2 minutos\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#website\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/\",\"name\":\"Andreano Lanusse | Tecnologia e Desenvolvimento de Software\",\"description\":\"Andreano Lanusse blog - artigos, tutoriais e v&iacute;deos sobre tecnologia, desenvolvimento de software (Delphi XE4, C#, PHP, .NET) e t&eacute;cnicas de programa&ccedil;&atilde;o\",\"publisher\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"http:\/\/www.andreanolanusse.com\/pt\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/#primaryimage\",\"inLanguage\":\"pt-BR\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2010\/03\/Icon_Delphi.png\",\"contentUrl\":\"http:\/\/www.andreanolanusse.com\/pt\/wp-content\/uploads\/2010\/03\/Icon_Delphi.png\",\"width\":175,\"height\":175},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/#webpage\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/\",\"name\":\"Como criar tabelas utilizando o dbExpress Framework | Andreano Lanusse | Tecnologia e Desenvolvimento de Software\",\"isPartOf\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/#primaryimage\"},\"datePublished\":\"2009-08-06T14:55:45+00:00\",\"dateModified\":\"2011-03-08T04:21:21+00:00\",\"description\":\"No Delphi 2007 o dbExpress passou por uma grande reformula\\u00e7\\u00e3o que trouxe in\\u00fameras melhoria, uma desta foi a capacidade de interagir com o metadata do\",\"breadcrumb\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/\",\"url\":\"http:\/\/www.andreanolanusse.com\/pt\/\",\"name\":\"In\\u00edcio\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/#webpage\"}}]},{\"@type\":\"Article\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/#webpage\"},\"author\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\"},\"headline\":\"Como criar tabelas utilizando o dbExpress Framework\",\"datePublished\":\"2009-08-06T14:55:45+00:00\",\"dateModified\":\"2011-03-08T04:21:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/#webpage\"},\"commentCount\":1,\"publisher\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\"},\"image\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/#primaryimage\"},\"keywords\":[\"dbExpress\",\"Delphi\"],\"articleSection\":[\"Delphi\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/www.andreanolanusse.com\/pt\/como-criar-tabelas-utilizando-o-dbexpress-framework\/#respond\"]}]},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#\/schema\/person\/620bd05e81598c3aba4781796cbe8903\",\"name\":\"Andreano Lanusse\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#personlogo\",\"inLanguage\":\"pt-BR\",\"url\":\"http:\/\/0.gravatar.com\/avatar\/6a9c6f73c7c480fb826c7303288abfd3?s=96&d=mm&r=g\",\"contentUrl\":\"http:\/\/0.gravatar.com\/avatar\/6a9c6f73c7c480fb826c7303288abfd3?s=96&d=mm&r=g\",\"caption\":\"Andreano Lanusse\"},\"logo\":{\"@id\":\"http:\/\/www.andreanolanusse.com\/pt\/#personlogo\"},\"sameAs\":[\"https:\/\/twitter.com\/andreanolanusse\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/posts\/122"}],"collection":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/comments?post=122"}],"version-history":[{"count":0,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/posts\/122\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/media\/781"}],"wp:attachment":[{"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/media?parent=122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/categories?post=122"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.andreanolanusse.com\/pt\/wp-json\/wp\/v2\/tags?post=122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}