sexta-feira, 31 de agosto de 2001

0

Download do VisualStudio.net e SDK

http://msdn.microsoft.com/library/default.asp?url=/downloads/list/netdevframework.asp


 


Aqui esta tudo o que você precisa para .NET



Esta matéria foi postada originalmente no ASP4Developers por Thiago Machado Souza (site), que na época era "Programador Desbravador, buscando quebrar todas as fronteiras além do horizonte da arte de programar !
www.thiagomachado.com.br". Hoje, vai saber...

quarta-feira, 29 de agosto de 2001

0

Criar e Ler TXT

Abaixo segue um exemplo simples, de como criar e ler arquivos txt, pois em alguns casos é desnecessário gravar dados num banco de dados, seja pelo volume pequeno, ou apenas por não necessitar maiores cuidados.


* GRAVAR DADOS EM UM TXT
<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
caminho = server.MapPath("teste.txt")
Set GRAVAR = FSO.CreateTextFile(caminho,true)
'Foi criado o objeto, e logo apos busca o txt para gravar, se não achar, vai cria-lo (note o TRUE)


gravar.write ("teste de gravação")
gravar.close
response.write "GRAVADO!"
'apos abrir o TXT, gravará a linha com o texto "TESTE DE GRAVAÇÃO" a confirmação no cliente aparecerá como "GRAVADO"
%>


* LER CONTEÚDO DE UM TXT
<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
caminho=server.mappath("teste.txt")
Set TXT = FSO.OpenTextFile(caminho)
'cria o objeto, e busca pelo TXT indicado pela variável caminho como acima.

response.write txt.readALL   
'após abrir o TXT, enviará direto ao cliente todo conteúdo do TXT, neste exemplo, retornará "TESTE DE GRAVAÇÃO" como foi gravado acima.
txt.close

%>


Bom é isso, FSO (FileSystemObject) pode auxiliar em diversas funções já que possibilita criar/alterar/excluir arquivos ou pastas.


Falow para todos =)



Esta matéria foi postada originalmente no ASP4Developers por Oscar Pires (BLADE) (site), que na época era "Desenvolvedor ASP e Visual Basic, desenvolve sites interativos e sistemas para empresas. ". Hoje, vai saber...

segunda-feira, 20 de agosto de 2001

0

Mudando a cor das linhas com "Rollovers"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>TR Color</TITLE>
</HEAD>
<BODY>
<SCRIPT language=javascript>
<!--
        function mOvr(src,clrOver) {
                        src.style.cursor = 'hand';
                        src.bgColor = clrOver;
                     }
        function mOut(src,clrIn) {
                        src.style.cursor = 'default';
                        src.bgColor = clrIn;

        }
        function mClk(src) {
                if(event.srcElement.tagName=='TD'){
                        src.children.tags('A')[0].click();
                }
        }
// -->
</SCRIPT>
<table cellspacing=1 cellpadding=3 width="100%" bgcolor=white border=0>
  <tr onMouseOver="mOvr(this,'#cccccc');" onMouseOut="mOut(this,'#0066cc');"
bgcolor="#0066cc">
    <td  width="51%"  onClick="mClk(this)">
      <a class=menu href="http://www.uol.com.br">Texto1</a></td>
    <td onclick="mClk(this)" width="49%">&nbsp;</td>
  </tr>
  <tr onMouseOver="mOvr(this,'#cccccc');" onMouseOut="mOut(this,'#0066cc');"
bgcolor="#0066cc">
    <td  width="51%"  onClick="mClk(this)">
      <a class=menu href="http://www.uol.com.br">Texto1</a></td>
    <td onclick="mClk(this)" width="49%">&nbsp;</td>
  </tr>
    <tr onMouseOver="mOvr(this,'#cccccc');"
onMouseOut="mOut(this,'#0066cc');" bgcolor="#0066cc">
    <td  width="51%"  onClick="mClk(this)">
      <a class=menu href="http://www.uol.com.br">Texto1</a></td>
    <td onclick="mClk(this)" width="49%">&nbsp;</td>
  </tr>
    <tr onMouseOver="mOvr(this,'#cccccc');"
onMouseOut="mOut(this,'#0066cc');" bgcolor="#0066cc">
    <td  width="51%"  onClick="mClk(this)">
      <a class=menu href="http://www.uol.com.br">Texto1</a></td>
    <td onclick="mClk(this)" width="49%">&nbsp;</td>
  </tr>
    <tr onMouseOver="mOvr(this,'#cccccc');"
onMouseOut="mOut(this,'#0066cc');" bgcolor="#0066cc">
    <td  width="51%"  onClick="mClk(this)">
      <a class=menu href="http://www.uol.com.br">Texto1</a></td>
    <td onclick="mClk(this)" width="49%">&nbsp;</td>
  </tr>
  </table>
</BODY>
</HTML>


 



Esta matéria foi postada originalmente no ASP4Developers por Ismael Nobre (site), que na época era "Analista.
Quer me contratar ?
Cel. 96420687". Hoje, vai saber...

0

Criando um "VBGrid" em ASP

Muito bem, para criar a classe é preciso q vc configure algumas coisinhas bem simples.

Crie um aquivo chamado classe.asp com este conteudo:
====================================
<%
'====================================
'Ao "Voodoo" os respectivos creditos que foi
'quem criou a primeira versão da classe
'qualquer mudança q seja feita por favor, envie-nos
'uma cópia.
'cartman@apenas.com
'====================================


class MyGrid
 private DB, strSQL
 private strWidth, strAlign
 public sub Connect(strConnection)
  Set DB = Server.CreateObject("ADODB.Connection")
  DB.Open strConnection
 end sub
 
 public sub Disconnect()
  DB.Close
  Set DB = Nothing
 end sub
  
 public property let SQL(stSQL)
  strSQL = stSQL
   Dim Order
   Dim Field
   Dim gOrder
   Dim gField
   Dim Sort
   
   order = request.querystring("order")
   field = request.querystring("field")
   
   'caso a tabela tenha mais q dois campos eles devem se adicionados aqui!!!
   select case field
    case "1"
     gfield = " order by nome"
    case "2"
     gfield = " order by email"
    case else
     gfiel = ""
   end select
   
   select case order
    case "1"
     gOrder = " ASC"
    case "2"
     gOrder = " DESC"
    case else
     gOrder = ""
   end select
   
   if gOrder = "" or gField ="" then
    srtSQL = strSQL
   else
    strSQL = strSQL + gfield + gOrder
   end if
 end property


 public property let TableWidth(stWidth)
  strWidth = stWidth
 end property


 public property let TableAlign(stAlign)
  strAlign = stAlign
 end property
   
 public sub Display()
  if strWidth = "" then strWidth = "100%"
  Response.Write "<style type=text/css>"& vbCrLf & _
      " a:active {text-decoration: none; color: #000000; cursor: default;}"& vbCrLf & _
      " a:link  {text-decoration: none; color: #000000; cursor: default;}"& vbCrLf & _
      " a:visited {text-decoration: none; color: #000000; cursor: default;}"& vbCrLf & _
      " a:hover  {text-decoration: none; color: #000000; cursor: default;}"& vbCrLf & _
      " .TituloUP {"& vbCrLf & _
      "  background-color: #C0C0C0;"& vbCrLf & _
      "  border-bottom: #000000 solid 1px;"& vbCrLf & _
      "  border-right: #000000 solid 1px;"& vbCrLf & _
      "  border-left: #E8E8E8 solid 1px;"& vbCrLf & _
      "  border-top: #E8E8E8 solid 1px;"& vbCrLf & _
      "  height : 11px;"& vbCrLf & _
      "  cursor: default;"& vbCrLf & _
      "  font-family : Verdana, Arial, Helvetica, sans-serif;"& vbCrLf & _
      "  font-size : 11px;"& vbCrLf & _
      " }"& vbCrLf & _
      " .GridBody {"& vbCrLf & _
      "  background-color: #FFFFFF;"& vbCrLf & _
      "  border-bottom: #AAAAAA solid 1px;"& vbCrLf & _
      "  border-right: #AAAAAA solid 1px;"& vbCrLf & _
      "  height : 16px;"& vbCrLf & _
      "  font-family : Verdana, Arial, Helvetica, sans-serif;"& vbCrLf & _
      "  font-size: 11px;"& vbCrLf & _
      "  cursor: text;"& vbCrLf & _
      "  text-decoration: none;"& vbCrLf & _
      " }"& vbCrLf & _
      "</style>"& vbCrLf
  dim RS
  Set RS = Server.CreateObject("ADODB.Recordset")
   '*********************
   response.write strSQL
   '*********************
   RS.CursorLocation = 3
   RS.Open strSQL, DB
   
   order = request.querystring("order")
   
   select case order
    case 2
     order =1
    case 1
     order =2
    case else
     order =1
   end select
   
    Response.Write "<table width="& strWidth &" align="& strAlign &" cellspacing=0 cellpadding=0 align=center>"& vbCrLf
     Response.Write "  <tr>"& vbCrLf & _
         "    <td width=10 class=TituloUP ><a href="& Request.ServerVariables("SCRIPT_NAME") &">&nbsp;</a></td>"& vbCrLf
     'Desenha o cabeçalho
      Response.Write "    <td class=TituloUP ><a href="& Request.ServerVariables("SCRIPT_NAME") &"?order="& order &"&field=1>&nbsp;Campo1</a></td>"& vbCrLf
      Response.Write "    <td class=TituloUP ><a href="& Request.ServerVariables("SCRIPT_NAME") &"?order="& order &"&field=2>&nbsp;Campo2</a></td>"& vbCrLf
     Response.Write "  </tr>"& vbCrLf
     
     'Desenha os registros
     do until RS.EOF
      Response.Write "  <tr>"& vbCrLf
       Response.write "    <td width=10 class=TituloUP>&nbsp;</td>"& vbCrLf
       Response.Write "    <td class=GridBody>&nbsp;"& RS("nome") &"</td>"& vbCrLf
       Response.Write "    <td class=GridBody>&nbsp;"& RS("email") &"</td>"& vbCrLf
      Response.Write "  </tr>"& vbCrLf
      RS.MoveNext
     loop
    Response.Write "</table>"& vbCrLf & _
        "</td></tr></table>"& vbCrLf
   RS.Close
  Set RS = Nothing
 end sub
end class
%>
========================================

Agora crie outro aquivo qualquer com este conteudo ( no mesmo diretorio onde esta o classe.asp

========================================
<!--#include file="classe.asp"-->
<!--este include é obrigatprio pq é a classe q monta a tabela-->


<%
dim grid
set grid = new MyGrid
 grid.Connect "DBQ=c:\inetpub\wwwroot\webtal\database\webtal.mdb;Driver={Microsoft Access Driver (*.mdb)};"
'Aqui vc coloca sua string de conexão

 grid.SQL = "select codigo,nome,email from mural"
'Aqui vc coloca a sua query

 grid.TableWidth = "98%"
'Aqui vc coloca o tamanho da tabela

 grid.TableAlign = "center"
'Aqui vc coloca o alinhamento da tabela

 grid.Display
 grid.Disconnect
set grid = nothing

%>


=======================================

Caso vc preciso mudar alguma coisa na classe fique a vontade.
Não se esqueçe a ela esta configurada para mostrar, inicialmente um recordset com o nome "nome" e outro com o nome "email".
Mude se necessário.



Esta matéria foi postada originalmente no ASP4Developers por Ismael Nobre (site), que na época era "Analista.
Quer me contratar ?
Cel. 96420687". Hoje, vai saber...

sábado, 18 de agosto de 2001

0

Registro Aleatório

Muitos desenvolvedores buscam exibir registros de um bd aleatoriamente.
Abaixo segue um código simples, que mostra um campo chamado field aleatório numa tabela tbl e outra função gerara numeros aleatórios pra pegar o registro pelos campos auto numeração autoid


1- Set conn = server.CreateObject("ADODB.Connection")
2- Conn.open "dsn"

'criada a conexao (conn), e abre um dsn

3- SQL = "SELECT * FROM tbl"
4- Set RS = Server.CreateObject("ADODB.Recordset")
5- RS.open SQL,Conexao, 3, 3

'o recordset devera conter os parametros acima(os dois 3)

6- Randomize
7- Numero = INT(RND * RS.RecordCount)
8- Randomize

'aqui gerara um numero aleatório inteiro

9- SQL = "SELECT * FROM tbl WHERE autoid=" & numero
10- Set RS2 = Conn.execute(SQL)
11- if rs2.eof then
12- response.write "Numero sorteado não existe"
13- else
14- response.write "Sorteado: " & RS2("field")
15- End if

'agora ele pega o nº aleatorio e manda exibir o registro desse numero e exibe ao cliente

16- conn.close
17- Set conn=nothing
18- set rs=nothing
19- set rs2=nothing

'liberar recursos =)


NOTA: Se no campo autoid houver falhas na sequência e o "numero" sortear isso, não haverá registro a exibir.
Ex: Seu autoid correr de 1 a 30, e apos 25 for direto pra 28, se "numero" for igual a 26 o autoid é invalido, consequentemente não haverá registro a exibir.
MAS NÃO SE PREOCUPE, as linhas 11 e 12 trabalham essa hipótese de erro. =)


Bom é isso, é bem simples e util trabalhar com dados aleatoriamente. Espero ter ajudado! valeu =))



Esta matéria foi postada originalmente no ASP4Developers por Oscar Pires (BLADE) (site), que na época era "Desenvolvedor ASP e Visual Basic, desenvolve sites interativos e sistemas para empresas. ". Hoje, vai saber...

sexta-feira, 3 de agosto de 2001

0

Rotina para capturar a cotação do US$ do dia anterior no BC

A rotina captura a pagina do BC onde fica a cotação do dólar do dia anterior ao corrente e filtra somente os dados que interessam.


Podem ser feitas outras customizações onde os valores capturados são colocados num BD, etc ...


Aproveitem da rotina, mas por favor, mantenham os créditos.


http://asp4developers.cjb.net/uploads/busca_dolar.txt



Esta matéria foi postada originalmente no ASP4Developers por Adriano Dias (site), que na época era "Gerente de Informática que odeia terno e gravata e que gosta mesmo é de análise e programação. Linuxeiro sem ser radical e ASPeiro por prazer.". Hoje, vai saber...

quarta-feira, 1 de agosto de 2001

3

Retirando tags HTML de uma string

'  Função que retorna uma string sem as TAGS HTML passada como parametro


Function LimpaHTML(matriz)
Do While True
   ini     = InStr(1,matriz,"<")
   If ini  = 0 Then Exit Do
   fim     = InStr(ini,matriz,">")
   parcial = Mid(matriz,ini,fim-ini+1)
   matriz  = Replace(matriz,parcial,"")
Loop
LimpaHTML  = matriz
End Function


' Ex. Response.Write LimpaHTML("<B>Exemplo</B>") Retornará somente Exemplo. Teste com HTMLEncode.



Esta matéria foi postada originalmente no ASP4Developers por Adriano Dias (site), que na época era "Gerente de Informática que odeia terno e gravata e que gosta mesmo é de análise e programação. Linuxeiro sem ser radical e ASPeiro por prazer.". Hoje, vai saber...

quinta-feira, 26 de julho de 2001

0

Funções de formatação

'Verifica se duas datas pertencem a mesma semana do ano
function IsWeek(data1,data2)
 if DatePart("ww",data1) = DatePart("ww",data2) then
  IsWeek = true
 else
  IsWeek = false
 end if
end function

'-----------------------------------------------
'Preenche com zeros a esquerda do numero

function formata_numero(numero,qtd_zero)
dim tam
 tam = qtd_zero - len(numero)
 if tam < 0 then tam = 0
 formata_numero = string(tam,"0") & numero
end function

'-----------------------------------------------
'Retira acentos de palavras
function tirar_acentos(strTexto)
 dim com_acentos, sem_acentos, strResultado
 
 com_acentos = "ÁÍÓÚÉÄÏÖÜËÀÌÒÙÈÃÕÂÎÔÛÊáíóúéäïöüëàìòùèãõâîôûêÇç"
 sem_acentos = "AIOUEAIOUEAIOUEAOAIOUEaioueaioueaioueaoaioueCc"


 i = 0
 strResultado = strTexto
 while i < Len(com_acentos)
  i = i + 1
  strResultado = Replace(strResultado,Mid(com_acentos, i, 1), Mid(sem_acentos, i, 1))
 wend


 tirar_acentos = strResultado
end function



Esta matéria foi postada originalmente no ASP4Developers por Eduardo Ferrari (site), que na época era "Programo nas linguagens ASP, VBScript, JavaScript, Visual Basic, Delphi.

Bases de Dados Access, SQL Server, Paradox 7.". Hoje, vai saber...

domingo, 22 de julho de 2001

0

Formas de passar e requisitar informações

Aqui mostrarei como passar informações à uma pagina ASP, existem duas formas:

- Formulario (vai embutido nos headers)
- QueryString (vai na URL)


Por FORM:
form.html
<FORM ACTION="form.asp" METHOD="POST">
<INPUT TYPE="text" NAME="nome" VALUE="Seu Nome"><INPUT TYPE=SUBMIT VALUE=Enviar></FORM>


form.asp
<%
dim nome
nome = request("nome") 'ñ especifiquei se .form ou .querystring, ele pegara ambos
%>
OLÁ SEU NOME É <%=nome%>
<a href="form.asp?nome=<%=nome%>">click aqui para repassar</a>


Importante; o valor da variavel ficara disponivel ate o final do processamento do script, ou seja, ate o final deste arquivo, caso queira pegar este valor e passar pra frente, use:


<% Session("MeuNome") = Request("NOME") %>
e pra pegar <%=session("Meunome")%>


é isso, aki testei com um texto de nome normal, mas esses valores podem ser cores, numeros, qualquer coisa.


falo pessoal :)



Esta matéria foi postada originalmente no ASP4Developers por Oscar Pires (BLADE) (site), que na época era "Desenvolvedor ASP e Visual Basic, desenvolve sites interativos e sistemas para empresas. ". Hoje, vai saber...

0

Recordsets desconectados

Se você desenvolve aplicações que requerem constantes acessos a um banco de dados, deve-se codifica-los de forma a otimizar os acessos e obter notáveis ganhos de desempenho na aplicação. Um recurso que resulta numa incrível melhora na aplicação (dependendo do código) é o uso de recordsets desconectados. Segue o código comentado:


<!--#INCLUDE FILE="Adovbs.INC"-->
'Inclusao obrigatoria para se alterar os cursores
<%
Dim Conexao, RS, SQL
'declaro as variaveis
Set conexao=Server.CreateObject("ADODB.Connection")
'crio objeto p/ conexão
Conexao.open "dsn"  'com dsn
Conexao.open "PROVIDER=Microsoft.jet.OLEDB.4.0; Data Source=" & Server.MapPath("banco.mdb") 'sem dsn
Set RS=Server.CreateObject("ADODB.RecordSet") 'Crio o recordset


RS.CursorLocation = adUseClient
'isso permite fecha a conexão e deixa ativa no cliente
RS.CursorType = adOpenStatic
RS.LockType = adLockReadOnly


SQL = "SELECT * FROM suatabela"
RS.Open SQL,Conexao, , ,adCmdText  

Set RS.ActiveConnection = nothing 
'fecha a conexao
conexao.close 
'fecha o objeto e o destrói
set conexao=nothing
%>


Pronto, agora você pode usar os recordsets normalmente, ex: <%=RS("Seu Campo")%>
no fim feche o objeto recordset:


<% RS.Close
Set RS=nothing %>


Espero que esta seja util, caso nao tenha o arquivo pra inclusao, o mesmo esta nesta mensagem incluido.


Falow galera!



Esta matéria foi postada originalmente no ASP4Developers por Oscar Pires (BLADE) (site), que na época era "Desenvolvedor ASP e Visual Basic, desenvolve sites interativos e sistemas para empresas. ". Hoje, vai saber...

terça-feira, 17 de julho de 2001

0

CODECHARGE - Gerador de códigos ASP, ColdFusion, JSP, PHP, Perl and ASP.NET/C# (Beta)

Gerador de códigos ASP, ColdFusion, JSP, PHP, Perl and ASP.NET/C# (Beta)
está ai uma coisa que eu pensei nunca ver...


http://www.codecharge.com



Esta matéria foi postada originalmente no ASP4Developers por Thiago Machado Souza (site), que na época era "Programador Desbravador, buscando quebrar todas as fronteiras além do horizonte da arte de programar !
www.thiagomachado.com.br". Hoje, vai saber...

segunda-feira, 16 de julho de 2001

1

Como usar corretamente Condições de Repetição(For...Next, While...Wend e Do...loop)

Para as pessoas que estão iniciando ! este é um passo muito imporante... pois a má utilização das condições de repetição sempre gera error e lentidão nos scripts pre-desenvolvidos vejamos então quando e como utilizar cada uma dessas condições.


For... Next
A Codição For... Next executa uma rotina a um certo numero de vezes, de acordo com um contador, sendo assim ela é terminada quando o numero do contador chega ao seu limite desejado

<%
For n=1 to 10
response.write n & "<br>"
next
%>


O Código acima vai imprimir na página numerais de 1 à 10, a variavel definida em um FOR não precisa ser incrementada pois a estrutura se encarrega totalmente disso. Se necessária a saida brusca de um FOR, utilize o comando EXIT


WHILE WEND
Este executa uma rotina até que a sua condição se torne verdadeira
<%
ConnString = "Provider=SQLOLEDB.1;Password=gozaimasu;User ID=mrkoga;Initial Catalog=selecao;Data Source=255.255.255.255
Set RS = Server.CreateObject("ADODB.Connection")
set RS = conn.execute("SELECT * from mulheres where nacionalidade='Japonesa'")
While not RS.EOF
response.write RS("nome") & "<br>"
rs.movenext
wend
%>


DO UNTIL
O Estrutura, Do Until, executa uma rotina até que a condição imposta se torne verdadeira.


<% 
n = 0
Do Until n=10
n = n + 1
Loop
response.write n
%>
Esse LOOP, que o DO UNTIL provoca pode ser interrompido através do comando EXIT DO 


Existem os operadores lógicos que seria tambem muito interessante de se usar em conjunto com as estruturas de repetição, pesquise sobre...



Esta matéria foi postada originalmente no ASP4Developers por Thiago Machado Souza (site), que na época era "Programador Desbravador, buscando quebrar todas as fronteiras além do horizonte da arte de programar !
www.thiagomachado.com.br". Hoje, vai saber...

0

Exibindo o conteúdo de um txt.

<%


Set fso = Server.CreateObject("Scripting.FileSystemObject")


Set listar = fso.OpenTextFile("c:\InetPub\wwwroot\teste.txt",1,0)


Do while listar.AtEndOfStream <> true
conteudo = listar.readline
response.write conteudo & "<br><br>"
Loop


Set fso = Nothing
Set listar = Nothing


%>



Esta matéria foi postada originalmente no ASP4Developers por Francisco Hárley Diniz (site), que na época era "Programador ASP, frequenta o canal #asp da Brasnet (rede de irc).". Hoje, vai saber...

quinta-feira, 12 de julho de 2001

0

O uso prático de Server.HTMLEncode

Server.HTMLEncode é uma função que serve para codificar uma string em HTML. Ah tá, 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.



Esta matéria foi postada originalmente no ASP4Developers por Adriano Nântua, que na época era "Engenheiro de software e analista de sistemas; Desenvolvedor ASP, Delphi, C/C++ e Java/JSP/Servlets; InterBase fan; Linux fan; Alvirrubro inveterado.". Hoje, vai saber...

quarta-feira, 11 de julho de 2001

0

Equivalente a LIKE

bom, essa duvida eu tive quando queria exibir certo texto de acordo com o nome de um registro, logo veio na cabeça o LIKE, mas como seriam vários usos tentei algo melhor, e no news surgiu a ajuda.


Usando a função inStr


teste = Request.QueryString("Teste")
'o 1 é pq ta procurando desde o 1º caracter
If InStr(1,teste,"COMBO") <> 0 then
    Response.Write "Existe a substring COMBO dentro da variavel teste"
else
    Response.Write "Não existe a substring COMBO dentro da variavel teste"
end if

É isso :)
Espero que lhes seja util essa!



Esta matéria foi postada originalmente no ASP4Developers por Oscar Pires (BLADE) (site), que na época era "Desenvolvedor ASP e Visual Basic, desenvolve sites interativos e sistemas para empresas. ". Hoje, vai saber...

domingo, 8 de julho de 2001

0

Bloquear acesso externo

Quando desenvolvia uma aplicacao que pegava valores de um form, e os processava e gravava num banco de dados, notei uma possibilidade importante; q se fosse enviado tais informacoes de outro site c/ o mesmo input ele ia processar como se fosse do meu site.. ai o bixo pega né


A solucao é, bloquear totalmente o acesso externo, inclusive acesso nulo (por exemplo o cara entra arquivo.asp direto no browser)


Segue o código comentado:


<%
'Se ñ vier do meu dominio ou vim em branco vai bloquear
IF Request.ServerVariables("HTTP_REFERER") <> Request.ServerVariables("SERVER_NAME") and Request.ServerVariables("HTTP_REFERER") = "" THEN
response.write "ACESSO BLOQUEADO"
ELSE%>Aqui ficará sua página normal<%End IF%>


Até mais! espero q seja util !! :))



Esta matéria foi postada originalmente no ASP4Developers por Oscar Pires (BLADE) (site), que na época era "Desenvolvedor ASP e Visual Basic, desenvolve sites interativos e sistemas para empresas. ". Hoje, vai saber...

sábado, 7 de julho de 2001

0

Index Server , esse desconhecido

Quando um site começa a crescer , torna-se necessário um sistema de procura . Você pode instalar vários daqueles produtos de terceiros , os chamados "search engines" , ou criar um desnecessário banco de dados e perder horas com rotinas para fazer isso , ou pode utilizar o Index Server que vem juntamente com o IIS , que pode realizar esse serviço para você , e até mesmo para outros tipo de procura de documentos .
Mas o que é Index Server ? Na documentação on-line da Microsoft , é definido de maneira direta :


Indexing Service is a Microsoft® Windows® 2000 service that indexes files on your disks and their properties as well as your Internet Information Services (IIS) Web files and properties. Indexing Service stores the resulting information in catalogs that you can efficiently search using a variety of queries.


Isto é :


O Indexing Service é um serviço do Microsoft® Windows® 2000 que organiza arquivos nos seus discos , assim como seus aquivos Web do Internet Information Services (IIS) e propriedades . O Indexing Service guarda o resultado da informação em catálogos para que você possa procurar de forma eficiente usando uma variedade de solicitações .


O Index Server permite que você execute "Queries" (Solicitações) para o servidor utilizando ADO e OLE DB . Isso permite o uso e a flexibilidade de maneira a facilitar a procura de algum arquivo .


O Objeto Index Server


O Index Server é criado como qualquer outro objeto COM do seu servidor :


dim ixQuery   ' O Obejto query do Index Server .
set ixQuery = Server.CreateObject("ixsso.Query")


Esse objeto tem um número de propriedades que podem ser definidas antes de rodar a query. As mais utilizadas são :


Columns


-Permite você especificar quais os campos que serão retornados para a sua query . Para uma lista completa de tudo que pode ser definido aqui , aconselho procurara no help , mas para o nosso exemplo vamos retornar o seguinte :


doctitle - O título da página (especificado pela tag <TITLE>...</TITLE> ) ;
vpath - O caminho virtual da página ;
characterization - A descrição da página ;
rank - O valor especificado como padrão para bater com o critério da procura ;


ixQuery.Columns = "doctitle, vpath, size, characterization, rank"


Sortby


-Especifica como os resultados encontrados serão ordenados . Lista os campos em uma ordem relevante , e usa "[d]" para especificar que o campo deve ser ordenado de forma descendente .


ixQuery.SortBy = "rank[d], doctitle"


MaxRecords


- Você deve limitar o número máximo de resultados que a query pode retornar .


ixQuery.MaxRecords = 300


Catalog


Um Catalogo representa o resultado da indexação para um diretório específico (ou diretórios ) . Se você não especificar um catálogo então o Index Servcer usará o catalogo do Default Web Site ( cuja indexação começa em /inetpub/wwwroot ). Algumas vezes você pode querer especificar um catálogo . Se seu site estiver em um diretório diferente você poderá criar catálogos multiplos para diferentes páginas de procura .


Para definir um Catálogo , vá até o Index Server , que se encontra na opção "Services and Applications" , dentro do item do "Administrative Tools"  , Computer Managment (Start -> Programs -> Admin. Tools ) . Clique com o botão direito em "Indexing Services" e selecione New -> Catalog . Entre o nome do novo catálogo e a localização do diretório que você quer indexar . Você também pode especificar diretórios dentro da árvore de diretórios que não devem ser indexados , mantendo o controle e a privacidade de determinados diretórios .


Especifique o catalogo que você irá utilizar com o seguinte código ( No meu exemplo , indexaria o diretório Lula_Pro ) :


ixQuery.Catalog = "Lula_Pro"


Abra o Internet Service Manager ( também conhecido como IIS ) , abra a caixa de propriedades do seu site , selecione o tab "Home Directory" e verifique que a opção "Index this resource" esteja selecionada .


Query


A Query atual . É ela quem faz toda a operação de indexação . O index Server suporta 3 linguagens para a construção da query : Dialect 1 (Index Server 1.0), Dialect 2 (Index Server 3.0) and SQL (Index Server 2.0 and above). Dê uma olhada no MSDN sobre "Query Languages for Indexing Service^ para uma explicação completa das diferentes linguagens .


Em nosso caso , vamos trabalhar com o mais simples , que é o dialect 1 , mas se sinta a vontade para utilizar sintaxes SQL , se preferir .
A grosso modo , você pode simplesmente definir a propriedade Query do seu Objeto Index Server como o alvo da sua procura . Por exemplo , se você estivesse procurando por todas as páginas que contenham a palavra "Lula" , você usaria :


ixQuery.Query = "Apples"


Pode pode refinar essa procura especificando quais arquivos devem e quais arquivos não devem ser procurados , O modo como a target do query deve ser interpretada ( como uma frase, um texto livre ou uma procura exata ) e também o tipo de páginas que será procuradas (por exemplo , páginas escritas em uma certa data , ou menores que um determinado tamanho) .


Um exemplo de uma procura livre por um texto , na frase 'ASP 4 Developers' , nós usuariamos :


$contents ASP 4 Developers


Para defnir restrições utilizamos o prefixo arroba "@" em um campo pré-definido e uma expressão . Por exemplo :


@size < 1000000     ' O tamanho do arquivo deve ser menor que  1,000,000 bytes
@contents Lula   ' O conteúdo precisa conter a palavra "Lula"
@write > 74/09/30   ' A página deve ter sido escrita no dia 30 de setembro de 1974 (aa/mm/dd , usando default )


Restrições do nome do arquivo devem conter o prefixo "#" para especificar a procura regular da expressão :


#filename *.asp        ' pesquisar apenas arquivos .ASP
#vpath *\artigos*     ' procurar apenas no subdiretório artigos


Todas as expressões podem ser combinadas utilizando os operadores booleanod AND , NOT , OR etc . Supondo que você queira procurar a palavra "Lula" apenas em páginas ASP , e você gostaria de ignorar aqueles diretórios criados pelas Front Page Server Extensions , os "_vti"  sei lá o que . A sintaxe ficaria :


ixQuery.Query = "(#filename *.asp) AND (NOT #vpath *\_vti*) AND (Lula)"


O objeto Utility


O Objeto relacionado com o Index Server . Permite você definir até onde irá a sua procura . Pode ser "shallow" ( para a procura apenas no diretório ) ou "deep" (para uma procura recursiva em todos os diretórios e subdiretórios ) .


dim util
set util = Server.CreateObject("ixsso.Util")
util.AddScopeToQuery ixQuery, Server.MapPath("/"), "deep"


O primeiro parâmetro especifica para qual objeto Index Server relacionado a associação deve ser feita . O segundo especifica o caminho físico onde a procura irá iniciar ( no exemplo , no diretório raíz ) . O terceiro por fim especifica onde vai qual é o tipo da procura .


Fazendo a procura


Para rodar a Query atual , basta Query.CreateRecordset


dim queryRS   ' Query recordset.
set queryRS = ixQuery.CreateRecordSet("nonsequential")


Mostrando os resultados :


Para mostrar os resultados da pesquisa , faça um loop pelo recordset


Response.Write "<table width=100>"
do while not queryRS.EOF


 ' Recebe o título do documento . Se estiver em branco é mostrado "Untitled".
 dim docTitle
 docTitle = queryRS("doctitle")


 if docTitle = "" then docTitle = "Untitled"


 ' Mostra o # do registro , o link para o documento , a URL e a caracterização
 Response.Write "<tr>"
 Response.Write "<td valign=top>" & recordNumber & ".</td>"
 Response.Write "<td valign=top>"
 Response.Write "<a href='" & queryRS("vpath") & "'>" & docTitle & "</a><br>"
 Response.Write "<b>URL: </b> http://" & Request.ServerVariables("server_name") & queryRS("vpath") & "<br>"
 Response.Write Server.HTMLEncode(queryRS("characterization"))
 Response.Write "</td>"
 Response.Write "</tr>"


 recordNumber = recordNumber + 1
 queryRS.MoveNext()
 
loop
Response.Write "</table>"



Esta matéria foi postada originalmente no ASP4Developers por Luigi Paolo ( Lula ) (site), que na época era "Professor e Analista de Sistemas .". Hoje, vai saber...

quinta-feira, 5 de julho de 2001

0

Rotina para escrever números (moeda em reais) por extenso

function unidades(num)
 dim vet_unidades, str, aux
 vet_unidades = Array("um", "dois", "três", "quatro", "cinco", "seis", "sete", "oito", "nove", "dez", "onze", "doze", "treze", "quatorze", "quinze", "dezesseis", "dezessete", "dezoito", "dezenove")
 aux = Right(num,2)
 if int(aux) < 20 then
  if int(aux) > 0 then
   str = vet_unidades(int(aux)-1)
  else
   str = ""
  end if
 else
  str = vet_unidades(int(right(num,1)) - 1)
 end if
 unidades = str
end function


function dezenas(num)
 dim vet_dezenas, aux, str
 vet_dezenas = Array(VBNullString, "vinte", "trinta", "quarenta", "cinquenta", "sessenta", "setenta", "oitenta", "noventa")
 aux = Right(num,2)
 aux = Left(aux,1)
 if len(num) >= 2 then
  if int(aux) >= 2 then
   str = vet_dezenas(int(aux)-1)
   if right(num,1) > 0 then
    str = str &" e "&unidades(num)
   end if
  else
   str = unidades(num)
  end if
 else
  str = unidades(num)
 end if
 dezenas = str
end function


function centenas(num, numero)
 dim vet_centenas, aux, str
 vet_centenas = Array("cem", "duzentos", "trezentos", "quatrocentos", "quinhentos", "seiscentos", "setecentos", "oitocentos", "novecentos")
 if int(num) > 99 then
  aux = Right(num, 3)
  aux = Left(aux, 1)
  if int(right(num,2)) > 0 then
   vet_centenas(0) = "cento"
  end if
  str = vet_centenas(aux-1)
  if int(right(num, 2)) > 0 then
   str = str & " e "
  end if
 else
  str = ""
 end if
 centenas = str & dezenas(num)
end function


function milhares(num, numero)
 dim str, aux, auxstr
 aux = right(numero,3)
 aux = left(aux,1)
 if int(aux) > 0 then
  auxstr = ", "
 else
  auxstr = " e "
 end if
 if int(num) <> 0 then
  str = centenas(num, numero)&" mil"&auxstr
 else
  str = ""
 end if
 milhares = str
end function


function milhoes(num, numero)
 dim str, aux, strmilhao
 aux = int(num)
 if aux > 0 then
  if aux = 1 then
   strmilhao = "milhão,"
  else
   strmilhao = "milhões,"
  end if
  str = centenas(num, numero)&" "&strmilhao&" "
 else
  str = ""
 end if
 milhoes = str
end function


function bilhoes(num, numero)
 dim str, aux, strbilhao
 aux = int(num)
 if aux > 0 then
  if aux = 1 then
   strbilhao = "bilhão,"
  else
   strbilhao = "bilhões,"
  end if
  str = centenas(num, numero)&" "&strbilhao&" "
 else
  str = ""
 end if
 bilhoes = str
end function


function centavos(num)
 dim str, aux, strcent
 num = "0"&num
 if int(num) > 0 then
  if int(num) = 1 then
   strcent = " centavo"
  else
   strcent = " centavos"
  end if
  str = centenas(num, num)&strcent
 else
  str = ""
 end if
 centavos = str
end function


function extenso(num)
 dim sizenum, strsinal, inteiro, cents, aux_array, aux, bilhar, milhao, milhar, centena, dezena
 dim strreal, strvirgula
 dim strextenso
 
 num = Replace(num, ".", "")
 aux_array = split(num, ",")
 if num = "" then
  extenso = ""
  exit function
 end if
 if UBound(aux_array) > 0 then
  inteiro = aux_array(0)
  cents = left(aux_array(1),2)
 else
  inteiro = aux_array(0)
  cents = "00"
 end if
 if InStr(1, inteiro, "-") > 0 then
  inteiro = right(inteiro, len(inteiro) - 1)
  strsinal = "menos "
 else
  strsinal = ""
 end if
 sizenum = len(inteiro)
 aux = string(12 - sizenum, "0")
 inteiro = aux & inteiro
 bilhar = mid(inteiro, 1, 3)
 milhao = mid(inteiro, 4, 3)
 milhar = mid(inteiro, 7, 3)
 centena = mid(inteiro, 10, 3)
 if int(inteiro) = 1 then
  strreal = " real "
 else
  if int(inteiro) = 0 then
   strreal = ""
  else
   strreal = " reais "
  end if
 end if
 if int(cents) > 0 and int(inteiro) > 0 then
  strvirgula = "e "
 else
  strvirgula = ""
 end if
 strextenso =  bilhoes(bilhar, inteiro)
 strextenso = strextenso & milhoes(milhao, inteiro)
 strextenso = strextenso & milhares(milhar, inteiro)
 strextenso = strextenso & centenas(centena, inteiro)
 strextenso = strsinal & strextenso & strreal & strvirgula & centavos(cents)
 extenso = strextenso
end function


use include file e chame a função:


Response.Write extenso(numero)


[]s


PEST



Esta matéria foi postada originalmente no ASP4Developers por João Márcio Gonçalves Prado, que na época era "Webmaster Santanense Tecidos.
Diversos programas e sistemas ASP feitos para todo o tipo de empresas em MG.
". Hoje, vai saber...

quarta-feira, 4 de julho de 2001

2

Download de DLL,PDF,ASP,PHP,JPG,DOC e qualquer tipo de arquivo sem abrir no navegador

Com este código vc vai poder fazer o download de arquivos que estejam no seu servidor sem que o navegador abra ou interprete qualquer tipo de arquivo que passe por esse script !


Eu aconselharia a usar este arquivo como um link e não como uma página diretamente.

Mudando somente a parte onde está o nome do arquivo tup.jpg para um arquivo qualquer que vc queria baixar sem o navegador interpretar !

OBS: Não dá para fazer isso com arquivos remotos de outros servidores


Clique aqui para exibir o código


Script desenvolvido por Darkness e Creed
www.fatorx.com.br

Mil perdões amigos....



Esta matéria foi postada originalmente no ASP4Developers por Thiago Machado Souza (site), que na época era "Programador Desbravador, buscando quebrar todas as fronteiras além do horizonte da arte de programar !
www.thiagomachado.com.br". Hoje, vai saber...

0

String de Conexão para InterBase utilizando o SIBProvider

Eis a String de Conexão para o InterBase, utilizando o SIBProvider (ver artigo "ASP com Interbase"):


<%
StrConn = "Provider=SIBProvider;Location=localhost:;Data Source=C:\Program Files\Interbase\Examples\Employee.gdb;Character Set=ISO8859_1;Role=Operador;User Id=SYSDBA;Password=marsterkey;"
%>


Parâmetros:


Location: Nome ou IP do servidor InterBase na rede. (localhost quando o InterBase e o IIS estiverem no mesmo servidor);
DataSource: Caminho, no servidor, do arquivo GDB (arquivo de Banco de Dados do InterBase);
CharacterSet: O conjunto de caracteres a ser usado (ISO8859_1 é o padrão para o Português);
Role: Define o Role ("Papel" que indica conjunto de regras no BD) a ser usado por essa conexão;
User Id: Identificador do usuário InterBase (Login);
Password: Senha do usuário InterBase.

Note que você pode ter uma rede interna TCP/IP com NT rodando o IIS e Linux rodando InterBase e para configurar uma conexão, basta indicar o nome (se houver DNS na rede) ou o IP do servidor InterBase (Linux) no parâmetro Location.



Esta matéria foi postada originalmente no ASP4Developers por Adriano Nântua, que na época era "Engenheiro de software e analista de sistemas; Desenvolvedor ASP, Delphi, C/C++ e Java/JSP/Servlets; InterBase fan; Linux fan; Alvirrubro inveterado.". Hoje, vai saber...