Karuta’s ASP & M$ SQLserver

Dicas, códigos e outras coisinhas de meus estudos para não esquecer…

Archive for setembro \24\UTC 2008

SQL SERVER não traz NULL em um INNER JOIN

Posted by karuta em setembro 24, 2008

Se não está retornando nada, relaxe as restrições. Como vc não tem nenhum WHERE, só lhe resta relaxar os JOINs. O tipo de JOIN que você está fazendo não traz os dados caso a tabela filha não tenha a relação com a pai (tenha um NULL aí no meio). Mude os INNER JOIN para LEFT JOIN e verifique se não aparecem NULLs no resultado.

O fato é que se tem NULL num campo usado para fazer INNER JOIN, esse registro não será trazido. O INNER JOIN é uma operação que combina os registros de duas tabelas, sendo que se ele não existir em uma das tabelas (referência NULL), não constará no resultado. 

A mudança para LEFT modifica o JOIN para um OUTER, que adiciona o registro ao resultado mesmo que ele não conste numa das tabelas relacionadas (no caso, usando o LEFT, vai trazer mesmo que não conste na tabela filha).

Anúncios

Posted in sql server | Leave a Comment »

Gerando senha aleatórias

Posted by karuta em setembro 18, 2008

‘Nesta constante eu determino que letras e números serão utilizados para gerar a senha aleatória.
Const szDefault = “abcdefghijklmnopqrstuvxz0123456789”

‘Aqui eu chamo o comando Randozime do ASP para gerar um valor randômico para a nossa senha 
Randomize

‘Passa para a variavel os caracteres da seguencia szDefault e pego o tamanho da string para a variável nLenght 
sValidChars = szDefault 
nLength = Len( sValidChars ) 

‘Agora é a hora onde o script vai fazer um loop de 1 até 6 para gerar uma senha com 6 dígitos, caso necessite de uma senha com mais dígitos troque o valor 6 
For nCount = 1 To 6

‘Nesta linha o Script pega um número aleatório para buscar a posição dentro da constante trazendo o caracter correspondente a esta posição 
nNumber = Int((nLength * Rnd) + 1)

‘Acrescento a variável sRet o valor dela adicionado com o caracter encontrado dentro da constante
sRet = sRet & Mid( sValidChars, nNumber, 1 )

Passo para o próximo loop 
Next

Posted in asp | Leave a Comment »

Utilize Server.Transfer ao invés de Response.Redirect

Posted by karuta em setembro 18, 2008

Vocês certamente já utilizam a instrução Response.Redirect, que faz o desvio da execução para uma determinada página. Porém o Response.Redirect tem sérios problemas de performance: 

Quando vocês utilizam o Response.Redirect é enviado um pacote HTTP para o browser do usuário. Esse pacote contém uma instrução de redirecionamento. 

O Browser, então, solicita ao servidor o endereço recebido na instrução de redirecionamento, gerando o efeito desejado. 

Toda essa comunicação entre servidor e client pode ser evitada. O ASP 3.0 (Windows 2000) possui um método no objeto Server chamado Transfer. O método Transfer transfere a execução para uma outra página, assim como o Response.Redirect. 

A diferença do Transfer é que ele faz a transferência da execução dentro do servidor, sem transmitir pacotes para o browser do usuário. Isso torna a aplicação bem mais ágil. 

Veja : 

Server.Transfer(“home.asp”) 

Byhttp://www.bufaloinfo.com.br/dicas.asp?cod=106

Posted in asp | Leave a Comment »

Server.HTMLEncode

Posted by karuta em setembro 18, 2008

Server.HTMLEncode é uma função que serve para codificar uma string em HTML. Ah está tudo bem. E pra que raios serve isso? Bem aqui vai um exemplo prático:

Suponha que você tenha um site que permita o usuário cadastrar-se à vontade. Então, um engraçadinho resolve cadastrar o nome dele da seguinte maneira:

<font color=”red” style=”font-size: 30pt”>Adriano Nântua</font>

Pronto. De agora em diante, toda vez que o nome dele for escrito no site estará vermelho e bem grande, diferente das outras pessoas (isso se o palhaço não resolver botar tamanho 800 e esculhambar de vez o seu site).

Para evitar isso, na hora de escrever o nome, ao invés de fazer o usual:

<%=nome%>

faça o funcional:

<%=Server.HtmlEncode(nome)%>

Desta maneira, nome do espertinho, será escrito da mesma maneira que ele informou, pois a função codifica a string em HTML, escrevendo &lt; ao invés de <.

Obviamente, a função não serve somente para se proteger de usuários humoristas. Em geral serve para que os caracteres cadastrados sejam escritos fielmente.
Imagine que você vá jogar a string O filme “A Rocha” ganhou 20 prêmios no value de um input de texto. Só vai dar O Filme, pois o browser vai ler o ” como fim do value, e o resto da string vai ficar fazendo sujeira na Tag. Um desmantelo.
Basta usar, então, o Server.HTMLEncode para consertar as coisas.

Fonte: ASP4DEVELOPERS 

Posted in asp | Leave a Comment »