quarta-feira, 12 de janeiro de 2011

Transact-SQL -- Funções Básicas

Transact-SQL -- Funções Básicas 


     A linguagem Transact-SQL tem varias funções que considero muito úteis no dia a dia de quem usa o banco de dados SQL Server da Microsoft. Vou mostrar algumas dessas funções que considero mais úteis..
 
 
1) Função DATEDIFF: Esta função é utilizada para calcular a diferença entre duas datas, seja esta diferença em segundos, minutos, horas, dias ou anos. Observe abaixo a execução da função e os resultados obtidos;

DECLARE @DataAtual DATETIME
SET @DataAtual = GETDATE()

SELECT DATEDIFF(SECOND,'01/01/2006 07:00',@DataAtual) /* Retorna a quantidade de segundos desde 01/01/2006 as 07:00 até o momento */

SELECT DATEDIFF(MINUTE,'01/01/2006 07:00',@DataAtual) /* Retorna a quantidade de minutos desde 01/01/2006 as 07:00 até o momento */

SELECT DATEDIFF(HOUR,'01/01/2006 07:00',@DataAtual) /* Retorna a quantidade de horas desde 01/01/2006 as 07:00 até o momento */

SELECT DATEDIFF(DAY,'01/01/2006 07:00',@DataAtual) /* Retorna a quantidade de dias desde 01/01/2006 as 07:00 até o momento */

SELECT DATEDIFF(MONTH,'01/01/2006 07:00',@DataAtual) /* Retorna a quantidade de meses desde 01/01/2006 as 07:00 até o momento */

SELECT DATEDIFF(YEAR,'01/01/2006 07:00',@DataAtual) /* Retorna a quantidade de anos desde 01/01/2006 as 07:00 até o momento */
  
2) Funções CAST e  CONVERT: Funções utilizadas para conversão de dados, veja  abaixo a execução da função para conversão de alguns dados;

DECLARE @DataAtual DATETIME
SET @DataAtual = GETDATE()
/* Conversão de date em varchar */
SELECT 'A data de hoje é: ' + CAST(@DataAtual AS VARCHAR(11))
SELECT 'A data de hoje é: ' + CONVERT(VARCHAR(11),@DataAtual)

/* conversão de numeric em varchar */
SELECT 'O valor é: ' + CONVERT(VARCHAR(10),2456.67)
SELECT 'O valor é: ' + CAST(2456.67 AS VARCHAR(7))

3) Funções ISDATE e ISNUMERIC: Estas funções são utilizadas para verificar se determinada seqüência de caracteres é uma data valida (ISDATE) ou um dados numérico (ISNUMERIC), estas funções retornam 1 caso o parâmetro seja uma data valida ou um valor numérico ou 0 caso contrario. Veja abaixo os exemplos das duas funções;

SELECT ISDATE('01/34/2006') /* Retorna 0 - não é uma data valida */
SELECT ISDATE('04/07/2006') /* Retorna 1 - data valida */

SELECT ISNUMERIC(1235.785) /* Retorna 1 - é um dado numerico */
SELECT ISNUMERIC('1235.785') /* Retorna 1 pois apesar de se uma string é um dado numerico valido */
SELECT ISNUMERIC('12A') /* Retorna 0 - não é um valor numerico valido */

4) Função ISNULL: Esta função retorna um valor padrão caso o parâmetro recebido seja nulo. Veja o exemplo abaixo;

DECLARE @V INT /* V é NULL */
SELECT ISNULL(@V,0.00) /* O retorno da função será zero ao invés de NULL */
SET @V = 200
SELECT ISNULL(@V,0.00) /* O retorno da função agora será o valor da variável pois @V não é mais NULL */

5) Função LEFT: Retorna N caracteres a esquerda de uma seqüência. Veja o exemplo abaixo;

SELECT LEFT(‘Este é um teste’,3) /* Retorna Est */

6) Função RIGHT: Retorna N caracteres a direita de uma seqüência. Veja o exemplo abaixo;

SELECT LEFT(‘Este é um teste’,3) /* Retorna ste */

7) Função RTRIM: Esta função remove os espaços em branco à direita de uma string;

DECLARE @String VARCHAR(50)
SET @String = '     Esta é um string de teste   '
SELECT RTRIM(@String)

8) Função LTRIM: Esta função remove os espaços em branco à esquerda de uma string;

DECLARE @String VARCHAR(50)
SET @String = '     Esta é um string de teste   '
SELECT LTRIM(@String)

9) Função ROUND: Esta função é utilizada para arredondamento de dados numérico, no exemplo abaixo podemos ver a varias opções para utilização desta função;

DECLARE @Valor NUMERIC(9,3)
SET @Valor = 4638.896
SELECT ROUND(@Valor,2) /* Retorna 4638.900 */
SELECT ROUND(@Valor,1) /* Retorna 4638.900 */
SELECT ROUND(@Valor,0) /* Retorna 4639.000 */
SELECT ROUND(@Valor,-1) /* Retorna 4640.000 */
SELECT ROUND(@Valor,-2) /* Retorna 4600.000 */


10)  Função DATEADD: Esta função é utilizada para somar datas, podemos somar uma determinada data com segundos, minutos horas,dias ou anos;

/* O primeiro parametro é a unidade que vamos somar a data: segundo, minuto, etc...
   O segundo parametro é a quantidade a ser somada
   O terceiro parametro é a data que recebera o incremento */
SELECT DATEADD(SECOND,1,GETDATE()) /* Soma 1 segundo à hora atual */
SELECT DATEADD(MINUTE,1,GETDATE()) /* Soma 1 minuto à hora atual */
SELECT DATEADD(HOUR,1,GETDATE()) /* Soma 1 hora à hora atual */
SELECT DATEADD(DAY,1,GETDATE()) /* Soma 1 dia à hora atual */
SELECT DATEADD(MONTH,1,GETDATE()) /* Soma 1 mes à hora atual */



Abaixo Segue Mais Tipos de funções e Alguns Repetidos similares aos Dados Acima!

Funções de agrupamento:
AVG()
 = Retorna o valor médio de uma coluna específica
BINARY_CHECKSUM() = O valor do BINARY_CHECKSUM computado sobre uma linha ou uma tabela ou sobre uma lista de expressões. BINARY CHECKSUM é usada para detectar alterações em uma linha ou uma tabela.
CHECKSUM() = O valor de CHECKSUM computado sobre uma linha ou uma tabela, ou sobre uma lista de expressões. CHECKSUM é usada para construir índices de hash.
CHECKSUM_AGG() = O valor de CHECKSUM de um grupo. Valores nulos são ignorados.
COUNT() = Retorna o número de linhas
COUNT_BIG() = igual ao COUNT mas o COUNT_BIG sempre retorna um tipo de dados bigint.
MAX() = Retorna o valor máximo de uma coluna específica
MIN() = Retorna o valor mínimo de uma coluna específica
SUM() = Retorna a soma de uma coluna específica
STDEV() = Desvio padrão de todos os valores
STDEVP() = Desvio padrão da população
VAR() = Variância estatistica de todos os valores
VARP() = Variância estatística de todos os valores da população

Funções de manipulação de strings:

ASCII(string) = pega o valor em ASCII da string
CHAR(integer) = troca inteiro do ASCII em um caracter
LEN(string) = Identifica o comprimento de uma expressão em caracteres
LOWER(string) = converte uma string uppercase para lowercase.
LTRIM(string) = remove os espaços em branco
PATINDEX(posicao, expressao) = devolve a posicão de uma string dentro de um texto. Se não encontrar, retorna zero.
REPLICATE(string, integer) = Repete N vezes um caractere especificado
REVERSE(string) = retorna o inverso de uma expressao
RTRIM (string) = remove os espaços em branco à direita de uma string
SPACE(integer) = que retorna o número de espaços em branco informados no parâmetro
STUFF(string texto, X, Y, string texto_a_inserir) = apaga da string "texto" os y caracteres a partir da posição x e os substitui por "texto_a_inserir"
SUBSTRING(string texto, posicao_inicial, tamanho) = retorna uma string com o comprimento definido em "tamanho" extraida da string "texto", a partir da "posicao_inicial"
UPPER(string) = retorna string em maiusculas

Funções de manipulação de data/hora:

nomes das partes de data:

Year = yy, yyyy
Quarter = qualquer, que
Month = mm, m
Dayofyear = dy, y
Day = dd, d
Week = wk, ww
Hour = hh
Minute = mi, n
Second = ss, s
Millisecond = ms


DATEADD (parte, numero, data) = adiciona um valor a parte de uma data
DATEDIFF (parte, data inicial, data final) = subtrai a data inicial da data final, indicando o resultado na unidade definida em "parte"
GETDATE() = retorna a data atual do sistema
DATENAME (parte, data) = retorna o nome da parte de uma data
DATEPART(parte, data) = retorna a parte de uma data

Funções de Sistema:

CAST(expressao as datatype) = converte uma expressao no datatype informado
COL_LENGTH(nome_da_tabela, nome_da_coluna) = retorna o tamanho da coluna
COL_NAME(id_da_tabela, id_da_coluna) = retorna o nome da coluna
DATALENGTH(expressao) = retorna o numero de bytes usados para armazenar a expressao
DB_ID(nome_do_banco) = retorna o ID do banco informado
DB_NAME(id_do_banco) = retorna o nome do banco
HOST_ID() = retorna a ID da estação que está acessando o SQL Server
HOST_NAME() = retorna o nome da estação que está acessando o SQL Server
IDENT_INCR(nome_da_tabela_ou_view) = retorna o valor incrementado
IDENT_SEED(tabela_ou_view) = retorna o valor inicial da coluna
INDEX_COL(nome_da_tabela, indice_id, chave_id) = retorna o nome da coluna que participa do índice
ISNULL(expressao, valor) = se a expressao for null, troca pelo valor especificado
ISNUMERIC(expressao) = retorna 1 se a expressao for numerica e 0 se não for
NEWID() = retorna um novo valor do tipo uniqueidentifier
NULLIF(expressao_1, expressao_2) = retorna nulo se as duas expressoes forem equivalentes. Se não forem, retorna a primeira expressao.
OBJECT_ID(nome_do_objeto) = retorna o ID de um objeto, a partir do nome fornecido
OBJECT_NAME(ID_do_objeto) = retorna o nome do objeto, a partir do ID fornecido
PARSENAME(objeto, parte) = retorna a parte do nome de um objeto, desde que tenha sido qualificado
STATS_DATE(tabela_id, indice_id) = retorna a data em que as estatísticas do índice foram atualizadas
SUSER_SID(nome_do_usuario) = retorna o ID do usuario informado
SUSER_NAME(usuario_id) = retorna o id do usuário no servidor. O argumento é opcional.
SUSER_SNAME(id_do_usuario) = retorna o nome do usuario informado. Se nenhum ID de usuario for passado para a função, retorna o nome do usuario logado
USER_ID(nome_do_usuario) = retorna o ID do usuario informado para o BD em uso
USER_NAME(id_do_usuario) = retorna o usuario conectado ao BD

Funções Matematicas:

ABS(numero) = retorna o valor absoluto do numero
ACOS(float) = retorna o arco-coseno do numero informado
ASIN(float) = retorna o arco-seno do numero informado
ATAN(float) = retorna o arco-tangente do numero informado
ATN2(Float expressao_1, float expressao_2) = Arco-tangente do valor definido pela divisão da primeira expressão pela segunda
CEILING(numero) = retorna o menor inteiro que seja maior ou igual ao numero informado
COS(float) = retorna o coseno do numero informado
COT(float) = retorna o cotangente do numero informado
DEGREES(numero) = converte radianos para graus
EXP(float) = retorna o exponencial de um numero especificado
FLOOR(numero) = retorna o maior inteiro que seja menor ou igual ao numero informado
LOG(float) = retorna o logaritmo natural do numero informado
LOG10(float) = retorna o logaritmo base 10 do numero informado
PI() = retorna o valor de PI 3.1415926535897931.
POWER(numero, potencia) = retorna o valor elevado à potencia informada
RADIANS(numero) = converte graus para radianos
RAND(expressao) = um número aleatório entre 0 e 1. Expressão é opcional e será usada como semente da cadeia pseudo-aleatória
ROUND(numero, precisao, arredonda_ou_trancar) = arredonda ou tranca o numero fornecido de acordo com a precisao informada. Se o terceiro parametro não for passado para a funçao, o numero é arredondado. Se quiser que o numero seja truncado, deve-se fornecer o valor 1
SIGN(numero) = retorna sinal positivo, negativo ou zero do numero
SIN(float) = retorna o seno do angulo especificado
SQRT(float) = retorna a raiz quadrada de um numero
TAN(float) = retorna a tangente de um numero informado
SQUARE(float) = retorna o quadrado de um numero

Função de conversão:

CONVERT(tipo(tamanho), expressão, estilo) = converte a expressão para o tipo de dado. O tamanho e o estilo são opcionais

------




Leo***



domingo, 9 de janeiro de 2011

Criar Usuário no Windows Server 2003

Criando um Usuário no Windows Server 2003


1) clique no botão <computer management>
no painel esquerdo janela,clique no sinal + ao lado de "usuários e grupos locais" para expandir esse item do menu
novamente na janela esquerda painel clique em <usuarios>

2) clique com o botão direito do mouse uma vez na janela direita painel para abrir um menu

3) clique no botão <novo usuario> opção do menu
4) digite o nome do utilizador para a nova conta
5) digite o nome completo para a nova conta
6digite uma descrição para a nova conta

  • digite uma senha da nova conta
  • introduza a mesma senha para confirmar
  • escolha as opções apropriadas para a nova conta:
  1. - O usuário deve alterar senha no proximo identificação(recomendado)
  2. - O usuário nao pode alterar senha
  3. - Senha próximo expira
  4. - conta esta desativada
7) agora clique no botão <create>8) clique no botão <close>
Segue o passo a passo logo abaixo:


quinta-feira, 6 de janeiro de 2011

Verificar os FrameWorks instalados No IIS - Windows Server 2008

Verificar os FrameWorks instalados No IIS - Windows Server 2008

Obs. Se não sabe oque significam os códigos abaixo procure no google como utilizar o pronpt de comando do windows.

cmd.exe


Digite
  1.  
    cd..
  2. cd c:\windows
  3.  c:\windows\Microsoft.Net\Framework>dir
  4. c:\windows\Microsoft.Net\FrameWork> cd v4.0.30319
  5. c:\windows\Microsoft.net\FrameWork\v4.0.30319>aspnet_regiis -i
    Pronpt de comando do windows.











    Leo***

quarta-feira, 5 de janeiro de 2011

Criando Site FTP - Windows Server 2008

Criando Site FTP

O FTP Não é como o Site no IIS que já está funcionando logo após a instalação, o FTP temos que adicioná-lo e configura-lo

Add FTP Site Para adicionar um Site FTP Clicamos com o Direito sobre o nome do servidor listado no lado esquerdo no IIS Manager e selecionamos “Add FTP Site”
Site Information  Entre com um nome para o FTP e o local aonde será armazenado os arquivos do FTP, recomendado um disco ou partição exclusiva para o FTP visando também o que será armazenado. (Espaço em Disco). A pasta deve estar compartilhada com suas devidas permissões de compartilhamento, permissões NTFS será efetuada pelo próprio assistente do FTP mas à frente. Clique em “Next”
Binding and SSL Settings Agora configuramos onde o FTP deve responder as chamadas e a criptografia SSL.
IP Address: Aqui temos “All Unassigned” e o IP do nosso servidor
All Unassigned O All Unassigned usa endereços IP’s que são atribuídos a um computador, mas não atribuído a um site específico. Possibilita o acesso ao FTP através de todos os IP’s que estiverem disponíveis no servidor desde que estes não estejam sendo usados por outros sites ou sites FTP (caso você tenha mais de um site no seu servidor) eu costumo definir por IP como na imagem.
Enable Virtual Host Names: Deixem desmarcado.
Start FTP Site Automatically: Deixem marcado.
SSL: Aqui também é opcional, mas por segurança eu estou ativando a criptografia SSL para o FTP. Clique em “Next”


 - Authentication and Authorization Information Autenticação e Autorização para o Acesso ao Site FTP. Não recomendo habilitar e permitir acesso anônimo, mas se o seu FTP for um FTP público não tem jeito!
Em Authorization temos uma caixa suspena “Allow access to:” onde podemos definir grupos ou usuários especificos, anônimos ou não definir uma autorização. Eu permiti acesso a todos os usuários e com permissão de Leitura “Read” ou sejá, clientes não enviam arquivo para este FTP só conseguem ler o conteúdo.
Clique em “Finish” e Pica a Mula para o outro passo!
Note que foi criado agora o Site FTP ao lado esquerdo. 
Para acessa-lo abra o Windows Explorer e Digite ftp://ip.do.servidor e automaticamente será exibido a tela para Login e Senha



Agora basta você configurar as permissões NTFS na pasta e recomendo criar Grupos e/ou Usuários no AD DS para acesso ao FTP principalmente se o FTP for acessado por clientes via web. Não entrarei em detalhes de como publicar-lo na internet pois isso envolve configurações de firewall, roteador, links entre outras configurações que variam de acordo com a estrutura da sua rede…
Para configurar as Permissões NTFS através do Console ” IIS Manager”  clique com o botão direito sobre o nome do Site FTP e selecione “Edit Permissions…” Ao abrir as propriedades da pasta, vá até a aba “Security“  e adicione novos usuários e edite suas permissões. (Figura 2.8)  NUNCA dê permissões mais do que “Read & Execute” para usuários de uso Clinete em Site FTP, caso contrário o estrago pode ser grande!



Paradinha FTP Funcionando!
Agora vamos colocar nosso Web Site no “Ar”
No Console do “IIS Manager” Clicando com o direito sobre “Default Web Site” e selecionando “Manage Web Site” e “Advanced Settings” ou pelo painel“Manage Web Site” o lado direito
Agora vamos verificar a configuração da pasta padrão do Web Site, ela pode ser alterada mas não há necessidade. 

Agora que sabemos aonde fica a pasta padrão podemos colocar o conteúdo do nosso site dentro dela ou mudar o caminho padrão até ao local onde esta o conteúdo ( A ordem dos fatores não altera o resultado. rsrs!)
Vamos definir no Web Site a primeira página do site (Index.html ou Default.html, .asp .aspx entre outras)
Clique em “Default Web Site” com o botão esquerdo mesmo e no centro da tela (Features View) temos o “Default Document”  clicando 2x sobre o item veremos as páginas já existentes, podemos adicionar uma nova página clicando em “Add” que se encontra ao lado direito em “Actions” e inserindo o nome da página mais a sua extenção (asp.php.htm.html e outras)


-------------------------------------
Para uma melhor agilidade ao carregar a primeira página, selecione-a e mova com as setas para cima, deixando a sua página inicial em 1º lugar.



Leo***












Configurando o Internet Information Services (IIS) 7.0 - Windows Server 2008

Internet Information Services  (IIS) 7.0
- Novidades Com o IIS 7.0 muitas mudanças foram feitas em sua estrutura permitindo limitar a área de superfície só rodando os pacotes necessários a sua aplicação e abrindo a possibilidade para que você possa ampliar os recursos originais adicionando novas funcionalidades.
Temos a disposição mais de 44 módulos que podem ser adicionados ou removidos a qualquer momento.
Com o IIS 7.0 o ASP.NET trabalha integrado respondendo diretamente pelas chamdas, possibilitando a interceptação das requisições trabalhando de maneira integrada.
O IIS agora conta também com vários caminhos para que possamos efetuar sua configuração, seu novo console e até usando código .net Agora temos:
- IIS Manager
- Scripting
- WMI
- Microsoft.Web.Administration (.NET)
- AppCmd.exe
 Para Iniciarmos a instalação do IIS 7.0 vamos abrir o “Server Manager”
Botão Direito em “Roles” e “Add Role”
Add Role Wizard  esta tela simplismente clique em “Next”


Select Server Roles Vamos Selecionar o Check Box “Web Server (IIS)” e clicar em “Next”


Web Server (IIS)  Tela de introdução do IIS, leia-a e clique em “Next”
Select Roles Services  Vamos selecionar agora quais serviços vamos instalar em nosso IIS, lembrando que após a instalação é possivel repetir os passos efetuados até aqui e adicionar ou remover algum recurso se necessário.
No Fim da página vamos marcar o Check Box “FTP Server” Mais acima na categoria “Management Tools” Marquei também o “Management Service” Para administração remota do IIS através de outro computador usando o “IIS Manager”
Voltando ao início, na categoria “Common HTTP Features” Marquei o “HTTP Redirection” Não é necessário marcar todos, para esse artigo apenas o “FTP Server”é o suficiente, estou marcando para eventuais testes futuros, fique a vontade de marcar o que você achar interessante para testar ou o que você realmente vai utilizar. Clique em “Next” ao finalizar as seleções.
* Ao selecionar qualquer recurso da lista é exibido uma explicação ao lado direito superior da tela.



Confirm Installations Selections Um resumo é exibido. Clique em “Install” para iniciar a instalação.
Installation Progress Aguarde o fim da instalação.
- Installation Results  Resultado da instalação com sucesso. Clique em “Close”
Fácil, Rápido e sem maiores segredos! Agora abriremos o Console do Internet Information Services (IIS) Manager. Também é possivel através do console “Server Manager” expandindo o “Roles”. Neste caso usaremos o console próprio do IIS.

Clique em “Start”, “Administrative Tools” e “Internet Information Services (IIS) Manager” 



- Internet Information Services (IIS) Manager Essa é a cara do IIS 7.0 instalado no Windows Server 2008 R2 e podemos ver também o “Default Web Site” (Web Site Padrão) criado automáticamente pelo IIS.




Leo***








segunda-feira, 3 de janeiro de 2011

C# - Fazer solicitações HTTP Sem um Navegador







using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
namespace WebRequestApp
{
    // Após executar o programa abaixo o HTML da página selecionada é exibido conforme tela ao lado

    class Program
    {
        static void Main(string[] args)
        {

            WebRequest req = WebRequest.Create("http://www.google.com");
            WebResponse resp = req.GetResponse();
            StreamReader reader = new StreamReader(resp.GetResponseStream(), Encoding.ASCII);
            Console.WriteLine(reader.ReadToEnd());
            Console.ReadKey(); // Função ler qualquer tecla do teclado
        }
       
    }   



leo***

C# Delegate - Validadar número, se caso par ou se é divisivel..










leo***