terça-feira, 31 de maio de 2011

Clonar Query para ClientDataSet

Rotina para clonar uma query carregada para um clientDataset.

No meu caso, estou usando o Componente SDEngine. Componente nativo para conexões mysql. TSDQuery é a classe da query.

procedure TClsDados.CarregarClientDataSet(aClientDataSet: TClientDataSet; aQuery: TSDQuery; aComitar: boolean = true; aLimparDataSet: boolean = true);
var
i: integer;
begin
if (aLimparDataSet) then
aClientDataSet.EmptyDataSet;

aQuery.First;
while not (aQuery.Eof) do
begin
aClientDataSet.Append;

for i := 0 to aClientDataSet.FieldCount - 1 do
aClientDataSet.Fields[i].Value := aQuery.FieldByName(aClientDataSet.Fields[i].FieldName).Value;

if (aComitar) then
aClientDataSet.Post;

aQuery.Next;
end;
end;

domingo, 29 de maio de 2011

Componente para atualização da aplicação (AutoUpgrader)

Olá pessoal, é meu primeiro post :)

Cenário:
Bom na empresa onde trabalho atualmente estavamos tendo problemas
para atualizar o executavel dos usuários a cada nova versão, alguns usuários tem dificuldades para descompactar arquivos e substituir um pelo outro (tenso).
Então meu amigo e chefe me passou um componente muito bacana 'AutoUpgrader'.
Este componente é muito bacana e fácil de utilizar, segue os passos para utilização:

1º - Ponha um componente TauAutoUpgrader no seu projeto e de um duplo clique no mesmo.



No radio 'Version' é possível definir se o controle será feito por data ou número, é necessário definir a URL de onde deverá ser feito o download (clicando em Add).

2º Passo, gerar o arquivo com informações referentes a versão atual do aplicativo:



- A minha aplicação será controlada por nº (By Numer) e a versão atual está como 1.0.0.
- No botão 'Test' é possível visualizar a mensagem que será exibida para o usuário quando existir uma versão nova.
- E por fim vamos gerar o arquivo inf que será deixado no servidor junto com o aplicativo.

Estrutura do arquivo 'inf' :

#############################################################
# Generated by AutoUpgrader Pro at: 29/05/2011 16:03:18 #
#############################################################

#message={}

#url1=http://www.sistemasxpto.com.br/xpto/xpto.exe

#method=0 (self-upgrade)

#version=1.0.0

3º Informar a propriedade InfoFileUrl então o processo de config. do compoente está finalizado.



Testando:

Basta invocar o método CheckUpdate();

- Sua aplicação está na versão 2.0.0, o arquivo 'inf' está correto no servidor ele foi gerado informando que a verão mais recente é a 2.0.0 .
- O cliente executa sua aplicação que está na versão 1.0.0 , vamos supor que toda vez que o usuário loga é executado o método CheckUpdate, será informado ao usuário que existe uma versão mais recente da aplicação e se ele deseja atualizar neste exato momento.
- Clicou em Sim começa a fazer o download da versão 2.0.0, após concluido
o download irá questionar se o usuário deseja reiniciar o aplicativo com a nova versão.
- Clicou em Não o aplicativo executa com a versão 1.0.0 normalmente.

Este componente tem algumas propriedades para caso exista proxy, é possivel personalizar as mensagens.

Segue link para download do componente:

https://rapidshare.com/files/394868032/autoupgraderpro.zip

Bom, não tenho muita experiência em me expressar, tentei falar da forma mais simples e compreensivel, espero que ajude alguém ;)