http://msdn.microsoft.com/library/default.asp?url=/downloads/list/netdevframework.asp
Aqui esta tudo o que você precisa para .NET
www.thiagomachado.com.br". Hoje, vai saber...
http://msdn.microsoft.com/library/default.asp?url=/downloads/list/netdevframework.asp
Aqui esta tudo o que você precisa para .NET
Marcadores: ASP4Developers
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 =)
Marcadores: ASP4Developers
<!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%"> </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%"> </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%"> </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%"> </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%"> </td>
</tr>
</table>
</BODY>
</HTML>
Marcadores: ASP4Developers
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") &"> </a></td>"& vbCrLf
'Desenha o cabeçalho
Response.Write " <td class=TituloUP ><a href="& Request.ServerVariables("SCRIPT_NAME") &"?order="& order &"&field=1> Campo1</a></td>"& vbCrLf
Response.Write " <td class=TituloUP ><a href="& Request.ServerVariables("SCRIPT_NAME") &"?order="& order &"&field=2> 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> </td>"& vbCrLf
Response.Write " <td class=GridBody> "& RS("nome") &"</td>"& vbCrLf
Response.Write " <td class=GridBody> "& 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.
Marcadores: ASP4Developers
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 =))
Marcadores: ASP4Developers
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
Marcadores: ASP4Developers
' 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.
Marcadores: ASP4Developers
'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
Marcadores: ASP4Developers
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 :)
Marcadores: ASP4Developers
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!
Marcadores: ASP4Developers
Gerador de códigos ASP, ColdFusion, JSP, PHP, Perl and ASP.NET/C# (Beta)
está ai uma coisa que eu pensei nunca ver...
Marcadores: ASP4Developers
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...
Marcadores: ASP4Developers
<%
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
%>
Marcadores: ASP4Developers
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 < 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.
Marcadores: ASP4Developers
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!
Marcadores: ASP4Developers
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 !! :))
Marcadores: ASP4Developers
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>"
Marcadores: ASP4Developers
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
Marcadores: ASP4Developers
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....
Marcadores: ASP4Developers
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.
Marcadores: ASP4Developers