Pesquisa personalizada

quarta-feira, 8 de março de 2017

Firebird 3.0 já está disponível!

       O projeto Firebird tem o prazer de anunciar o lançamento da versão 3 do Firebird, seu SGBDR de código aberto.

       Este ajuste é o mais extenso arquitetura do Firebird desde seu lançamento inicial, há mais de 14 anos. Sua nova engine de processamento multitarefa e cache de página compartilhada permitem a melhor utilização de hardware com múltiplos núcleos e grande quantidade de memória. Com estas mudanças, esta versão apresenta um aumento drástico de desempenho, mantendo a compatibilidade com as bibliotecas cliente antiga.

       Além disso, o Firebird 3.0 inclui uma longa lista de melhorias de SQL (incluindo Window functions e de estatísticas),características de segurança aprimorada, tais como criptografia de trafego de dados e de arquivo e múltiplos bancos de dados de segurança -- mais de 100 melhorias significativas.

Mesmo com as novas funcionalidades de nível corporativo, ele continua leve, pequeno e simples de instalar e gerenciar, características que sempre o destacaram como “a ferramenta certa para o trabalho" para inúmeras aplicações.

Novo no Firebird 3.0

       Os objetivos principais para o Firebird 3 eram unificar a arquitetura do servidor e melhorar o suporte a plataformas de hardware SMP e de núcleo múltiplo. Os objetivos paralelos eram melhorar o threading dos processos do mecanismo e as opções para compartilhar o cache de página entre os limites de thread e de conexão.

       Paralelamente a estes objetivos surgiram novas estratégias para melhorar o desempenho, optimização de consultas, monitorização e escalabilidade e para responder à procura de mais opções de segurança. Uma série de recursos populares foi introduzida na linguagem SQL, incluindo o suporte há muito aguardado para o tipo de dados booleano e as predicações lógicas associadas.


Para conferir o novo Firebird 3 e seus recursos clique aqui.

Fonte: http://www.firebirdsql.org/en/firebird-3-0-1/

quarta-feira, 2 de setembro de 2015

Region

Disponível apartir da versão 2005, region é uma maneira de deixar seu fonte mais organizado facilitando a sua depuração e tornando o processo de programação mais eficiente e menos sucessivo a erros, utilizando blocos de códigos organizados em regiões específicas.

Função Callback

Um callback é um modo de enviar uma função como um parâmetro dentro de uma outra função. Quando a função de callback completa, o controle é passado de volta à função original. Nós nunca chamamos uma função de callback diretamente; a função da biblioteca chama ela por nós.


unit ExemploUnit;


interface


uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;


type

TMeuForm = class(TForm)

OKBtn: TButton;

NomeEdit: TEdit;

procedure OKBtnClick(Sender: TObject); private procedure MinhaFuncaoLocal; end;

var

MeuForm: TMeuForm;


implementation


{$R *.dfm}

// primeiro passo é DENTRO DA BIBLIOTECA, precisamos declarar um tipo para passar ele

// como parâmetro para nossa função. Neste exemplo criamos um tipo chamado

// RotinaCallback: type TRotinaCallBack = procedure of object;
// note que o ultimo parâmetro (opcional) é do tipo TRotinaCallBack


procedure InformaAbort(const Condicao: Boolean; const Texto: string; Foco: TWinControl = nil; Rotina: TRotinaCallBack = nil);

begin

// se a condição for falsa já cai fora if not Condicao then Exit;
// mostra um alerta ShowMessage(Texto);
// chama nossa rotina de callback (se estiver associada) if Assigned(Rotina) then Rotina;
// manda o foco para o componente TWinControl(Foco).SetFocus;
// manda um abort SysUtils.Abort;end;
// para usar esta 8ª maravilha da programação, é bem simples, basta no seu projeto declarar

// uma função igual a do tipo TRotinaCallBack (neste exemplo a nossa NÃO POSSUI parametros):
procedure TMeuForm.MinhaFuncaoLocal;

begin

// passa a cor do form para vermelho Color := clRed;end;
// aqui no clique do botão, chamamos a função da mLib InformaAbort, sendo que passamos nossa função local

// como parâmetro para ela, a InformaAbort irá de dentro da lib chamar nossa função que se encontra

// no form. Entendeu?
procedure TMeuForm.OKBtnClick(Sender: TObject);begin InformaAbort(True, 'Deu erro', NomeEdit, MinhaFuncaoLocal);end;
end.

  © Blogger template 'Perfection' by Ourblogtemplates.com 2008

Back to TOP