terça-feira, junho 19, 2007
domingo, fevereiro 18, 2007
quinta-feira, agosto 24, 2006
terça-feira, agosto 22, 2006
domingo, agosto 13, 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.






