terça-feira, junho 19, 2007

Paris, Torre Eiffel


domingo, fevereiro 18, 2007

Mini Z - O tamanho mudou, mas a adernalina continua....


MiniZ AWD com tracção ás 4 rodas, difrencial á frente e atrás, suspensão integral...

quinta-feira, agosto 24, 2006

Intellisense para MS Query Analyzer



Um bom utilitário, intellisense para MS Query Analyzer. Fica o link: http://www.promptsql.com/

terça-feira, agosto 22, 2006

Alfa Romeo GTV


domingo, agosto 13, 2006

Guincho


Praia do Guincho, verão de 2006.

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.