Hoje vai ai um post sobre SQL, simples mas muito util: concatenacao de resultados em um select.Acredito que quase todos os programadores em algum momento, precisou concatenar varias colunas de uma funcao select, agrupando em uma unica coluna. Para isso, quem nao conhece ou conhecia esse tipo de concatenacao, resolve agrupando no proprio codigo de programacao. Um exemplo que posso escrever e: para programadores .net que trabalha com POO(Programacao Orientadas a Objetos) ou em camadas, resolve esse problema criando uma function que vai retorna em um formato de DateTable, dentro dessa function monta a SQL, depois manda executa a funcao para retornar os dados. Dai depois de passar pelo banco, le cada resultado e manualmente cria-se uma nova coluna onde o valor vai ser a concatenacao entre os duas ou mais colunas do resultado: Ex: Coluna 03 = ColunaSQL1 +'/'+ ColunaSQL2;Bom, ai vai os exemplos de como proceder em diversos bancos de dados:FIREBIRDSELECT (COLUNA1 ||' - '|| COLUNA2) as RESULTADO from TABELASQL SERVERSELECT (CAST(COLUNA1 AS VARCHAR)+' - '+ CAST(COLUNA2 AS VARCHAR)) AS RESULTADO FROM TABELPOSTGREESELECT (COLUNA1 ||' - '|| COLUNA2) AS RESULTADO FROM TABELAMYSQLSELECT CONCAT(COLUNA1,' - ',COLUNA2) AS RESULTADO FROM TABELAEsses sao os exemplos de concatenacao. Pode-se concatena quantas colunas que necessita, sempre seguindo as sintaxe.Caso sua aplicacao esta voltada para conexao independente de banco, tome cuidado ao utilizar essas funcoes, crie uma forma de parametrizacoes que quando trocar de banco chame a sintaxe de acordo com o banco.Obrigado. Abracos. Ola pessoal!Apos muita consulta no Google nao encontrei nenhum exemplo que funcionasse perfeitamente no Delphi para exportar os dados de uma Grid para o Excel, entao adaptei alguns em VB, outros em C# e hoje de manha finalmente o negocio funcionou. Agora estou aqui para compartilhar com voces, segue o codigo fonte da funcao para exportar:procedure Texportarexcel.Button1_Click(sender: TObject; e: System.EventArgs);var sw: System.IO.StringWriter; htw: HtmlTextWriter; sb: StringBuilder; form: HtmlForm; pagina: System.Web.UI.Page;begin sb := stringbuilder.Create; sw := StringWriter.create(sb); htw := HtmlTextWriter.create(sw); pagina := System.Web.UI.Page.Create(); form := HtmlForm.create(); gvDados.EnableViewState := false; pagina.EnableEventValidation := False; pagina.DesignerInitialize(); pagina.Controls.Add(form); form.Controls.Add(gvDados); pagina.RenderControl(htw); Response.Clear(); Response.ClearContent(); Response.Buffer := True; Response.ContentType := 'application/vnd.ms-excel'; Response.AddHeader('Content-Disposition', 'attachment;filename=data.xls'); Response.Charset := 'UTF-8'; Response.ContentEncoding := Encoding.Default; Response.Write(sb.ToString()); Response.&End;end;Nesta pagina que fiz para testar tenho um Button e uma GridView (gvDados), o codigo acima esta no evento OnClick do Button1, antes de exportar a grid e obvio que ela precisa ter dados, mas isto ja nao e o objetivo deste post, espero que o codigo seja util para alguem, abracos!Obs.: Nao esquecam de comentar e visitem o Blog do Bolivar! A 5a serie vem treinando a ortografia por meio do jogo Soletrando. Essa etapa nao teve vencedor. Mas, vem ai a proxima jogada. Preparem-se! Proposta: Seriacao com tres cores.No primeiro momento: As criancas montam a serie com as tres cores.No segundo momento : Fazem a correspondencia das cores, pintando os retangulos no caderno de atividade Nesta semana fomos a biblioteca, para ouvir mais uma historia, e escolher o livro que levaremos para casa, lendo assim com os pais.Obejtivos: Criar habito de leitura.A historia da semana foi: Proposta: Localizar o pais China onde surgiu a pipa. (200 aC.)Para melhor