segunda-feira, julho 24, 2006

T-SQL - último dia do mês.

Como obter o último dia do mês com T-SQL? O problema é simples, e a solução também. Basta passar para o primeiro dia do mês seguinte, e a esta data subtrair um dia. Segue o script:

declare @month int, @year int, @date datetime
select @month = 2, @year = 2000
select @date = convert(varchar, @year) + right('0' + convert(varchar, @month), 2) + '01'
select datediff(d, @date, dateadd(m, 1, @date)) as "último dia"

terça-feira, julho 18, 2006

.net - serializar objectos

Existem várias formas de passar informação entre duas páginas ASPX. Tendo em conta a forma como o redireccionamento é feito, porque se utilizarmos o Server.Transfer, ganhamos mais uma forma de passar informação; as mais utilizadas são a Sessão, o ViewState e a QueryString. Existem outras, que pelas suas características não são tão utilizadas, como a cache e os cookies.

A questão coloca-se qdo não queremos apenas passar valores, mas sim objectos. Como passar objectos de uma página para outra? Utilizar o Server.Transfer pode ser uma solução, mas existem outras, como por exemplo através da serialização de deserialiazação do objecto em causa.

Neste caso, o processo seria o seguinte:

- Serializar o objecto que queremos passar (página origem);
- Colocar no ViewState o objecto serializado;
- Na página de destino, obter do ViewState a stream que representa o objecto;
- Deserializar a stream para reconstruir o objecto, desta vez já na página destino.

Segue o código para a serialização:

string strObjectToSave = String.Empty;
MemoryStream ms = new MemoryStream();

IFormatter Iformatter = new BinaryFormatter();
Iformatter.Serialize(ms, objMyObject);

byte[] bMyObject = ms.GetBuffer();

UnicodeEncoding encoding = new UnicodeEncoding();
strObjectToSave = encoding.GetString(bMyObject);

serStr.Append(strObjectToSave);
serStr.Append(";");

Nestes casos é necessário ter em atenção o tamanho da stream gerada na serialização nativa do .net, pois ela pode ser de um tamanho exagerado face ás necessidades. Se for o caso podem e devem ser imprementados os métodos de serialização e deserialização por forma a que a stream diminua de tamanho e se evite de sobrecarregar o ViewState.

terça-feira, julho 11, 2006

Foguete

Pois é, este é o foguete !!! Capaz de acelerar do 0 aos 100 km/h em cerca de 2 segundos, isso, melhor que um F1 :))). Tem tracção integral, com diferencial para a distribuição, suspensão a óleo e molas e mais de 1 cv por kg.


Apesar dos travões traseiros com discos ventilados, não é nada fácil parar o foguete. A escala é 1/8, é controlado por rádio-control, gasta metanol, e aviso já que faz um barulho ensurdecedor.

Neste momento tenho dois, um Picco e um Serpent. Ora isto de ter o dobro dos carros e metade do tempo não é lá grande coisa. Assim, dispenso um aos interessados!!!

domingo, julho 09, 2006

Portinho da Arrábida

Portinho da Arrábida, a cerca de uma hora de Lisboa. Em plena Serra da Arrábida, trata-se de uma das melhores praias por aqui perto. Embora a temperatura da água não seja a mesma que encontramos nas águas do Algarve, continua a ser possível mergulhar sem grande sacrifício.

Prima sobretudo pela envolvente (Serra da Arrabida), pelo ambiente e qualidade da própria praia. Por tudo isto, e por ser ainda um tudo ou nada mais longe do que as habituais praias da capital, é fácil encontrar a sensação de férias em apenas um fim-de-semana.

Ficam aqui as fotos possíveis de mais um dia de praia, ou um dia de
férias...

quinta-feira, julho 06, 2006

Moto Expo

Moto Expo, Lisboa 2005. Qual RR, qual que!!! Isto é que são motas de "guerra" ...

domingo, julho 02, 2006

HttpWatch

É mais um add-in pata o IE muito útil para que trabalha no desenvolvimento de aplicações web. Ajuda muitas vezes no controlo e no troubleshooting de aplicações, uma vez que monitoriza os pedidos efectuados pelo browser via http. Permite obter por exemplo tempos de resposta de cada pedido http, tornando-se em mais uma ferramenta de acesso rápido para o programador ou utilizador verificarem a performance da aplicação.

Existe uma versão free cujo download pode ser feito em: http://www.httpwatch.com/download/.