Seja bem vindo a mais esse artigo, e boa leitura. Desenvolvedores, vive seu dia dia escrevendo codigo, mas claro o foco sempre na logica e na melhor forma de fazer, e na maioria das vezes tem que recorrer a uma ajudinha, seja ela no help da linguagem ou no Google, para lembrar da sintaxe correta de um comando, procedure ou funcao.O sabio nao e aquele que sabe e faz tudo, mas aquele que lembra que existe, e tem a coragem de procurar, e se nao existe, a coragem de estudar para conseguir aprender e fazer. Existem situacoes das quais ao escrever um codigo, nos deparamos com a duvida e o esquecimento de ate mesmo o que nos criamos, exemplo o nome de uma coluna no banco de dados, e e nessa situacao que vou passar uma dica de um possivel recurso para ajudar no seu dia dia.Em um ponto do codigo, precisa escrever um comando SQL, do qual vai selecionar varias colunas de uma determinada tabela do banco de dados, entao faz:'SELECT TableName.Codigo, TableName.Nome, TableName.Endereco FROM TableName'Simples, mas nem toda vez ira lembrar de todos os nomes e de todas as tabelas do banco de dados, dai tende a parar, e ir olhar no banco qual o nome correto para a determinada coluna, e quando esse banco for dados manutencao por mais de uma pessoa, so tende piorando. Voce ja pensou em uma tecnica para te ajudar no dia dia nesse caso? Nao, entao vou te dar uma dica, segue abaixo:...Type TMyTable = class private class function GetTableName: string; class function GetCodigo: string; class function GetNome: string; class function GetEndereco: string; public class property TableName: string read GetTableName; class property Codigo: string read GetCodigo; class property Nome: string read GetNome; class property Endereco: string read GetEndereco; end;implementationclass function TMyTable.GetTableName: string;begin Result := 'TableName';end; class function TMyTable.GetCodigo: string;begin Result := 'TableName.Codigo';end; class function TMyTable.GetNome: string;begin Result := 'TableName.Nome';end; class function TMyTable.GetEndereco: string;begin Result := 'TableName.Endereco';end; end.Usando a class: 'SELECT ' + TMyTable.Codigo + ',' + TMyTable.Nome + ',' + TMyTable.Endereco + ' FROM ' + TMyTable.TableName;Qual a vantagem? como criamos a class, nela estara todas as propriedades com os nomes dos campos da tabela, entao ao precisarmos podemos pedir a ajuda do Delphi ao recurso "Code Completion" e ele mostrara todos os possiveis nomes existentes na class, facilitando assim nossa busca. Mais uma dica do ORMBr.Vamos hoje demonstrar como criar um mestre-detalhe de forma simples e eficaz, usando o ORMBr.1o Passo: Criar a conexao com ja mostrado no post ORMBr - Como criar uma conexao ? 2o Passo: Adiciona em seu form dois TClientDataSet (podemos usar o TFDMemTable), vou usar o TClientDataSet nessa dica, adicione tambem dois TDataSource, em seguida configure suas propriedades ligando cada um ao seu TClientDataSet.3o Passo: Adicione na clausula USES, as units:ormbr.dependency.injection.clientdataset,ormbr.dependecny.interfaces,ormbr.factory.dbexpress; // <= Aqui a fabrica de conexao escolhida por voce.4o Passo: Crie os modelos do mestre e do detalhe, veja o demo que segue junto aos fontes caso tenha duvida nesse passo. 5o Passo: Defina duas variaveis do tipo IContainerDataSet<T>, onde <T> devem ser os tipos dos