sábado, 24 de maio de 2003

0

Abrir Nova Janela (centralizada)

<A HREF="javascript:void(0)" OnClick="janelacentralizada('pagina.htm','nome','500','300');return false;">
Abrir nova janela centralizada
</A>


<SCRIPT LANGUAGE=javascript>


function janelacentralizada(pagina, nomedajanela, w, h) {


 var winl = (screen.width - w) / 2;
 var wint = (screen.height - h) / 2;
 winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',status=no,scrollbars=no,resizable=no,menubar=no'
 
 win = window.open(pagina, nomedajanela, winprops)
     
 if (parseInt(navigator.appVersion) >= 4) {
         win.window.focus();
     }


}


</SCRIPT>


 



Esta matéria foi postada originalmente no ASP4Developers por Daniel Passos (site), que na época era "Consultor de TI com fortes conhecimentos nas linguagens HTML, JavaScript, Perl, ASP e PHP. Conhecimentos básicos de Java (Swing, JSP & Servlets), orientação a objetos e UML, Banco de dados MySQL, SQL Server e Oracle.". Hoje, vai saber...

sexta-feira, 9 de maio de 2003

0

Tutoriais Online

Tutoriais online

Inclusive tutoriais relacionados à programação, banco de dados, engenharia, analise, modelagem.


www.tol.pro.br


Muito bom mesmo



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

Paginar ARQUIVOS usando FSO

<%@LANGUAGE="VBSCRIPT"%>
<% Option Explicit


Response.Expires = 0 
Response.Buffer  = True


'PAGINAÇÃO DE ARQUIVOS USANDO ARRAY x FSO
Dim iLoop, limite, pagina, totalarq, i
Dim vlMaximo, vlMinimo, anterior
Dim ObjFso, ObjArq, ObjPasta, ObjSubPasta


Set ObjFso = Server.CreateObject("Scripting.FileSystemObject")
Set ObjPasta = ObjFso.GetFolder(server.MapPath("avatar"))


limite  = 10       ' limite de registros por página
totalarq = ObjPasta.files.count   ' total de arquivos encontrados


 ReDim arrAvatar((totalarq-1))
 Dim y
 y = 0


 ' guardamos cada arquivo dentro de um array
 For Each ObjArq in ObjPasta.Files  
  arrAvatar(y) = objArq.Name
  y = y + 1 
 Next
  
 Set ObjPasta = Nothing
 Set ObjArq = Nothing
 Set ObjFso = Nothing


 pagina = Request("pag")
 IF pagina = "" Then
  IF limite < UBound(arrAvatar) Then
   vlMinimo = 0
   vlMaximo = (limite-1)
  Else
   vlMinimo = LBound(arrAvatar)
   vlMaximo = UBound(arrAvatar)
  End IF
  pagina = 1
  anterior = ""
 Else
  vlMinimo = (pagina*(limite-1))+(pagina)
  vlMaximo = ((limite-1)*(pagina+1))+((pagina)*1)
  IF vlMaximo > UBound(arrAvatar) Then vlMaximo = UBound(arrAvatar)
  pagina = pagina + 1
  anterior = pagina - 2
  IF anterior = 0 Then anterior = ""
 End IF


 IF vlMinimo = 0 Then
  IF Not (vlMaximo >= (y-1)) Then
   response.write "<a href='paginarArq.asp?pag="& pagina &"'>próxima</a><br>"
  End IF
 Else
  IF Not (vlMaximo >= (y-1)) Then
   response.write "<a href='paginarArq.asp?pag="& pagina &"'>próxima</a><br>"
  End IF
  response.write "<a href='paginarArq.asp?pag="& anterior &"'>anterior</a>"
 End IF


 response.write "<br><br>"
 For i = vlMinimo to vlMaximo
  response.write (i+1) &") "
  response.write arrAvatar(i) &"<br>"
 Next
%>



Esta matéria foi postada originalmente no ASP4Developers por Marcio Lima (Guardião) (site), que na época era "Programador ASP e VBA, apaixonado por Design, futurismo e ficção.
". Hoje, vai saber...

quinta-feira, 8 de maio de 2003

0

Quebra texto após um determinado número de caracteres

<%
'--------------------------------------------------
' Função: Quebra texto após o limite de caracteres
' Autor: Régis Soares
' E-mail: regis_soares@hotmail.com
' Para Usar:
' texto = String
' limite = Num. de caracteres por linha
' Exemplo: QuebraTexto("Active Server Pages",5)
' Última Atualização: 19/07/2003
'--------------------------------------------------
Function QuebraTexto(texto,limite)
 aTexto = Split(texto, " ")
 For i = LBound(aTexto) To UBound(aTexto)
  If Len(aTexto(i)) > 0 Then nTexto = nTexto & " " & aTexto(i)
 Next
 texto = Trim(nTexto)
 pos = 1
 For I = pos To Len(texto) Step limite
  nTexto = Mid(texto,pos,limite) & "<br>" & vbcrlf
  QuebraTexto = QuebraTexto & nTexto
  pos = pos + limite
 Next
End Function
%>
<%= QuebraTexto("Active Server Pages",5)%>



Esta matéria foi postada originalmente no ASP4Developers por Régis da Silva Soares, que na época era "Programador ASP e PHP". Hoje, vai saber...

0

Paginação

<%
'----------------------------------
' Script: Paginação Simples
' Autor: Régis Soares
' E-mail: regis_soares@hotmail.com
' ICQ: 161916543
'----------------------------------


' Definindo o caminho do banco de dados
caminho = "paginacao.mdb"


' Fazendo a conexão com o banco de dados (paginacao.mdb)
set conn = Server.CreateObject("ADODB.Connection")
DSN = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(caminho)
conn.Open DSN


' String SQL para consulta
SQL = "SELECT * FROM nomes ORDER BY nome"


' Abrindo o registro
SET RS = Server.CreateObject("ADODB.Recordset")
RS.Open SQL,conn,3


' Se não encontrar nada escreve a mensagem
' Senão lista os registros
If RS.EOF Then
 Response.Write("Nenhum registro foi encontrado")
Else
 ' Definindo o número de registros por página
 RS.PageSize = 2
 
 ' Recupera o valor da variável pagina
 pagina = Request.QueryString("pagina")
 
 ' Se a variável pagina for vazio, indica que a página sera a primeira
 ' Senão a variável pagina recebe o valor da página corrente, definida acima
 If pagina = "" Then
  RS.AbsolutePage = 1
  pagina = 1
 Else
  RS.AbsolutePage = pagina
 End If
 
 ' Imprime o número de registros, o total de páginas e a página atual
 Response.Write("<p align='center'>Foram encontrados <b>" & RS.RecordCount & "</b> registros" & vbcrlf )
 Response.Write("<br>Mostrando página <b>" & pagina & "</b> de <b>" & RS.PageCount & "</b></p>" & vbcrlf )
 
 While Not RS.EOF AND cont < RS.PageSize
  Response.Write( rs("nome") & "<br>" & vbcrlf )
  cont = cont + 1
  RS.MoveNext
 Wend
 
 ' Criando a barra de navegação
 
 ' Se a variável pagina for maior que 1 então imprime o botão Anterior com link
 ' Senão imprime sem link
 If CInt(pagina) > 1 Then
  Response.Write("<p align='center'><a href='" & Request.ServerVariables("SCRIPT_NAME") & "?pagina=" & pagina-1 & "'>Anterior</a> ")
 Else
  Response.Write("<p align='center'>Anterior")
 End If
 
 ' Lista todas as páginas encontradas
 For i = 1 To rs.PageCount
  response.write("<a href='" & Request.ServerVariables("SCRIPT_NAME") & "?pagina=" & i & "'>" & i & "</a> ")
 Next
 
 ' Se a variável pagina for menor que o total de páginas então imprime o botão Próxima com link
 ' Senão imprime sem link
 If CInt(pagina) < rs.PageCount Then
  Response.Write("<a href='" & Request.ServerVariables("SCRIPT_NAME") & "?pagina=" & pagina+1 & "'>Próxima</a></p>")
 Else
  Response.Write("Próxima</p>")
 End If
End If


' Fecha e destroi os objetos RS e conn
RS.Close : conn.Close
Set RS = Nothing : Set conn = Nothing
%>



Esta matéria foi postada originalmente no ASP4Developers por Régis da Silva Soares, que na época era "Programador ASP e PHP". Hoje, vai saber...

0

Colocar X palavras do texto em negrito

<%
'----------------------------------
' Função: X Palavras Em Destaque
' Autor: Régis Soares
' E-mail: regis_soares@hotmail.com
' Para Usar:
' texto = String
' xPalavras = Num. de palavras
'   em destaque
' Exemplo:
' Destaca("Active Server Pages",1)
' Última Atualização: 19/07/2003
'----------------------------------
Function Destaca(texto,xPalavras)
 aTexto = Split(texto, " ")
 For i = LBound(aTexto) To UBound(aTexto)
  If Len(aTexto(i)) > 0 Then nTexto = nTexto & " " & aTexto(i)
 Next
 texto = Trim(nTexto)
 x = 1
 For i = 1 To xPalavras
  busca = InStr(x,Trim(texto)," ")
  If busca > 0 Then y = y + 1
  x = busca + 1
 Next
 If y < xPalavras Then
  Destaca = "<b>" & texto & "</b>"
 Else
  Destaca = "<b>" & Mid(texto,1,x-1) & "</b>" & Mid(texto, x)
 End If
End Function
%>
<%= Destaca("Active Server Pages",1)%>



Esta matéria foi postada originalmente no ASP4Developers por Régis da Silva Soares, que na época era "Programador ASP e PHP". Hoje, vai saber...

quinta-feira, 17 de abril de 2003

0

Automatizando fechamento de objetos ADO

Automatizando fechamento de objetos ADO


Essa sub fecha objetos automaticamente !


Apenas criar os objetos de forma padrão


(con --> ADODB.Connection)


(rs --> ADODB.Recordset)


'Fecha BD
Sub FechaDB
 if ISObject(con) then
  if con.State = adStateOpen then
   con.Close
  end if
  set con = nothing
 End If


 if IsObject(recset) then
  if recset.State = 1 then
   recset.Close
  end if
  set recset = nothing
 End If


End Sub



Esta matéria foi postada originalmente no ASP4Developers por César M. Conceição (site), que na época era "Analista / Programador Pleno, mais de 4 anos de experiência no desenvolvimento de sistemas online.(HTML/XHTML/ASP/JAVASCRIPT/DHTML/MS SQL/FIREBIRD/INTERBASE/ACCESS)". Hoje, vai saber...

domingo, 6 de abril de 2003

1

Nova funcionalidade

Está disponível uma nova funcionalidade aos visitantes e colaboradores do ASP4D, que os mesmos ajudaram a construir, mesmo que inconscientemente.


Há algum tempo, toda navegação que os usuários faziam dentro do site é registrada de forma anônima, permitindo identificar padrões de navegação e correlacionando os itens visitados.


Trocando em miúdos: se uma pessoa entra no site e faz uma pesquisa sobre cookies, é natural supor que ela visite outros links sobre este assunto. Também podemos supor que, ao ir de um link para outro, geralmente ambos os links possuem algo em comum.


Assim computamos o conteúdo do item "matérias relacionadas", disponível no final das páginas. Desta forma, montamos uma lista no estilo "quem compra este produto também compra...", tão comum nos sites de e-commerce.


Aproveitando que estávamos com a mão no código, removemos o contador do Stats4All, pois o serviço gratuito deixará de ser oferecido em breve. Passamos a fazer a contagem internamente, mesmo que sem grande riqueza de detalhes.


Por enquanto é só, pe-pessoal.



Esta matéria foi postada originalmente no ASP4Developers por Rubens N. Farias (site), que na época era "pós-graduado em análise de sistemas orientados a objetos, MCP, MCSD, MCAD, MCSD.NET e consultor em TI, além de idealizador do projeto ASP4Developers. Desenvolve sistemas sob medida, focados na satisfação do usuário, com qualidade e custo realista.". Hoje, vai saber...

terça-feira, 25 de março de 2003

1

Novidades

Amigos,


gostaria de pedir desculpas pelo grande tempo sem atualizações nesta página principal, bem como de contribuições de código. Estou atualmente com diversas atividades em curso, o que me mantém um tanto quanto distante da web.


Mas é muito importante frisar que o ASP4D não é mantindo apenas por mim, mas pode diversos desenvolvedores pelo Brasil, que oferecem seu conhecimento aos colegas desenvolvedores, sem cobrar nada em troca. E estes desenvolvedores continuam colocando suas dicas, que podem ser acessadas de forma rápida selecionando a aba "+ recentes" ao lado. Assim, como vocês podem ver, o site continua sendo atualizado.


Farei algumas mudanças neste site, mas a prioridade começa a tornar-se outra: desenvolver um site em .NET sobre .NET para os desenvolvedores .NET , que já começam a proliferar-se pela Web. Quem quiser participar da "gestação" inicial desta idéia, mande-me um email.


Por enquanto é isso. Até a próxima!



Esta matéria foi postada originalmente no ASP4Developers por Rubens N. Farias (site), que na época era "pós-graduado em análise de sistemas orientados a objetos, MCP, MCSD, MCAD, MCSD.NET e consultor em TI, além de idealizador do projeto ASP4Developers. Desenvolve sistemas sob medida, focados na satisfação do usuário, com qualidade e custo realista.". Hoje, vai saber...

segunda-feira, 24 de março de 2003

0

Constructor | Boxing | Unboxing

Interessante isso :


Se o Constructor inicializa a string com empty string : ""


Então ocorre um Box/Unboxing automático.
Pelo fato de uma string ser uma variável to tipo Object
(Reference Types) ao contrário das Value Types
(int, boolean, etc).


Então o valor da string é uma empty string, mas sua referência é NULL.


Correto?



Esta matéria foi postada originalmente no ASP4Developers por Ken Awamura (site), que na época era "Desenvolvedor de Aplicativos Desktop e Web.". Hoje, vai saber...

domingo, 16 de março de 2003

0

String de Conexão (FIREBIRD ou INTERBASE)

String de Conexão (FIREBIRD ou INTERBASE) utilizando IBOLEDB (FREEWARE) / EASYSOFT (SHAREWARE - EVAL)



  sConn = "Provider=IbOleDb;"&_
    "Location=<IP_do_servidor>;"&_
    "Data Source=<caminho_do_arquivo_GDB>;"&_
    "User ID=SYSDBA;"&_
    "Password=<senha>;"&_
    "Extended Properties=Character Set=ISO8859_1;SQL Dialect=3;User Role=;"


EASYSOFT IB6 ODBC:


(http://www.easysoft.com/products/9999/download.phtml?product=2201)


sConn = "DRIVER={Easysoft IB6 ODBC};" & _
  "SERVER=<nome_servidor>;" & _
  "DATABASE=<nome_servidor>:<caminho_base_GDB>";" & _
  "UID=SYSDBA;" & _
  "PWD=masterkey;"&_
  "DIALECT=3;"&_
  "CHARSET=ISO8859_1;"&_
  "ROLE="



Esta matéria foi postada originalmente no ASP4Developers por César M. Conceição (site), que na época era "Analista / Programador Pleno, mais de 4 anos de experiência no desenvolvimento de sistemas online.(HTML/XHTML/ASP/JAVASCRIPT/DHTML/MS SQL/FIREBIRD/INTERBASE/ACCESS)". Hoje, vai saber...

0

Função de um recordset desconectado

' Efetuar conexão e executar a query desejada com um recordset desconectado


Ex.: set oUser = GetRecordset("select * from usuarios")


Function GetRecordSet(byval strSQL)
 Set con = Server.CreateObject("ADODB.Connection")
 con.Open <string de conexão>


 Set recset = Server.CreateObject("ADODB.Recordset")
 recset.CursorLocation = 3
 recset.Open strSQL, con, 0, 4


 ' Disconecta recordset.
 Set recset.ActiveConnection = Nothing
 ' -- retorna recordset
 Set GetRecordSet = recset
End Function



Esta matéria foi postada originalmente no ASP4Developers por César M. Conceição (site), que na época era "Analista / Programador Pleno, mais de 4 anos de experiência no desenvolvimento de sistemas online.(HTML/XHTML/ASP/JAVASCRIPT/DHTML/MS SQL/FIREBIRD/INTERBASE/ACCESS)". Hoje, vai saber...

quarta-feira, 29 de janeiro de 2003

0

Alternar cores das linhas de uma tabela

 

Agora vou mostrar um comando que quase todo mundo quer mais não acha, tem que sair por ai procurando tutoriais que tenham para pegar emprestado :P. Bem, vamos ao que interessa.


Muitos programadores gostam de utilizar o FOR para alternar as cores das linhas de uma tabela, mais vou mostrar um modo de alternar as cores com o IF.


Não to afim de mostrar tudo que você deve fazer pois quero fazer um artigo breve e fácil de entender.


'sql para pegar dados do bd.
sql = "select * from tabela where id_tabela=" & dados
set dada = conexao.execute(sql)


'depois disto vem do modo que quiser while, do while eu utilizo muito o do while.


'aqui vem primeiro a tabela, você pode criar ela antes de tudo mais é bem melhor aqui, pelo menos eu aconselho.


response.write "<table width=""100%"" border=""0"">"


'cor atual sempre tem que ser colocada esta linha antes do 'while' ou do 'do while' você é quem sabe

coratual = "red"

do while not dada.EOF


response.write "<tr>"


'aqui vem as linhas, como todos sabem a cor vem sempre na linha. Estarei utilizando a variável "coratual" mais podem colocar o nome que quiser.


response.write "<td bgcolor=" coratual ">" & dada("campo")


'agora colocamos o movenext


dada.movenext


'antes de fechar com o loop temos que colocar o if que vai alternar as cores.


if coratual = "red" then
'se a cor atual for vermelho ele vai trocar ela para azul
coratual = "blue"
else

'caso ela não seja vermelha ele a coloca como vermelha
coratual = "red"
end if


loop



Esta matéria foi postada originalmente no ASP4Developers por Dieggo Phillippe (site), que na época era "Programador de ASP/HTML e visitem também
http://www.avanielmarinho.com.br, http://www.afolhanet.com.br/delivery, http://www.afolhanet.com.br e http://www.feiraodocarro.com.br". Hoje, vai saber...

sexta-feira, 24 de janeiro de 2003

0

XMLHTTP retorna caracteres estranhos: como resolver

Criei um script para atualizar a lista de usuários sem que a tela "piscasse" muito. A aplicação funcionou bem com um pequeno problema: Os nomes de usuários com acentuação ou Ç retornavam códigos estranhos:
















?/td>
?/td>
Aur?o
???
G?d>
Sans?/td>


Após alguns dias de busca consegui solucionar o problema inserindo a instrução  Response.CharSet="iso-8859-1" na fonte dos dados.


 



Esta matéria foi postada originalmente no ASP4Developers por Marco Aurélio Barbiero (site), que na época era "Analista de Sistemas, trabalha na Receita Federal e desenvolve aplicativos em VB, ASP, Javascript, Notes e XML.
Colaborou algumas vezes com sites como o www.actionjackson.com". Hoje, vai saber...

sexta-feira, 27 de dezembro de 2002

0

Função de Checagem de CNPJ


A função checkCNPJ() faz a checagem do CNPJ. Retorna true se estiver ok, ou false, caso contrário.

 

   function getNumber( number , len )
   {
      var result = '';
      var num, i;

 

      for ( i = 0 ; i < number.length ; i++ )
      {
         try
         {
            num = parseInt( number.substring( i, i + 1 ) );
            result += num;
         }
         catch (exception)
         { }
      }
      if ( result.length != len )
      {
         // Complet with zeros
         result = '000000000000000' + result;
         var newLen = result.length;
         result = result.substring ( newLen - len , newLen );
      }
      return result;
   }
  
   function check1( value )
   {
      var count = 1;
      var len = value.length;
      var first;
      if ( len > 1 )
      {
         first = value.charAt( 0 );
      }
      else
      {
         return false;
      }
      for ( var i = 1; i < value.length ; i++ )
      {
         if ( value.charAt( i ) == first )
         {
            count++;
         }
      }

 

      if ( count == len )
      {
         return false;
      }
     
      return true;
   }
  
 
   function checkCNPJ( cnpj )
   {
      var cnpjCalc;
      var cnpjAdd;
      var i;
      var cnpjDigit;
  
      cnpj = getNumber( cnpj , 14 );
     
      check1( cnpj );

 

      // Get only numeric digits
      cnpjCalc = cnpj.substring( 0 , 12 );
     
      // First part of digit verification
      cnpjAdd = 0;
      for( i = 0 ; i < 4 ; i++ )
      {
         cnpjAdd += parseInt( cnpjCalc.substring( i , i + 1 ) ) * (5 - i);
      }

 

      for( i = 0 ; i < 8 ; i++ )
      {
         cnpjAdd += parseInt( cnpjCalc.substring( i + 4 , i + 4 + 1 ) ) * (9 - i);
      }
     
      // Fisrt digit
      cnpjDigit = 11 - (cnpjAdd % 11);
      
      if ( cnpjDigit == 10 || cnpjDigit == 11 )
      {
         cnpjCalc += '0';
      }
      else
      {
         cnpjCalc += cnpjDigit;
      }
     
      // Second part of digit verification
      cnpjAdd = 0;
      for ( i = 0 ; i < 5 ; i++ )
      {
         cnpjAdd += parseInt( cnpjCalc.substring( i , i + 1 ) ) * (6 - i);
      }
      for ( i = 0 ; i < 8 ; i++ )
      {
         cnpjAdd += parseInt( cnpjCalc.substring( i + 5, i + 5 + 1 ) ) * (9 - i);
      }
     
      // Second digit
      cnpjDigit = 11 - (cnpjAdd % 11);
      if ( cnpjDigit == 10 || cnpjDigit == 11 )
      {
         cnpjCalc += '0';
      }
      else
      {
         cnpjCalc += cnpjDigit;
      }
     
      return ( cnpj == cnpjCalc );
   }

 

--
Francisco Pinto Araújo Júnior
Diretor de Tecnologia - Softexport Informática
Msc. Ciência da Computação
SCPJ2
Fone/Fax: +55 85 458 1947
pinto@softexport.com.br
www.softexport.com.br


Esta matéria foi postada originalmente no ASP4Developers por Francisco Pinto Araujo Junior (site), que na época era "Analista de Sistemas". Hoje, vai saber...

0

Checagem de CPF

A função checkCPF() faz a checagem do CPF. Retorna true se estiver ok, ou false, caso contrário.

 


 


function checkCPF(strNumber)
{
   var result = true;
   var digit;
   var calc;

 

   strNumber = getNumber(strNumber);
   if (strNumber.length < 4) {
      result = false;
   }

 

   digit = parseInt(strNumber.substring(strNumber.length-2, strNumber.length));
   number = strNumber.substring(0 , strNumber.length - 2);

 

   calc = parseInt(getCPFDigit(number));

 

   if ( digit != calc )
   {
      result = false;
   }
   return result;
}

function getNumber(strNumber)
{
   var number;
   var strRetNumber="";

 

   for (var i=0 ; i < strNumber.length ; i++)
   {
      number = parseInt(strNumber.charAt(i));
      if ( number )
      {
         strRetNumber += strNumber.charAt(i)
      }
      else
      {
         if ( number == 0 )
         {
            strRetNumber += strNumber.charAt(i)
         }
      }
   }
   return strRetNumber;
}

 

function getCPFDigit(strNumber)
{
   var i;
   var digit1;
   var digit2;
   var total;
   var result;
  
   strNumber = '000000000' + getNumber(strNumber)
   strNumber = strNumber.substring(strNumber.length - 9, strNumber.length)

 

   total=0
   for (i = 1 ; i < 10; i++)
      total = total + strNumber.substring(i - 1 , i) * (11 - i);

 

   digit1 = total * 10 % 11;
   if (digit1 == 10)
   {
      digit1 = 0;
   }

 

   aux = digit1.toString(10);
   strNumber = strNumber + aux.substring(aux.length - 1 , aux.length);

 

   total=0;

 

   for (i = 1 ; i < 11 ; i++)
      total = total + strNumber.substring(i - 1 , i) * (12 - i);

 

   digit2 = total * 10 % 11;
   if (digit2 == 10)
   {
      digit2 = 0;
   }

 

   aux = digit1 * 10 + digit2;
   caux = aux.toString(10);
   result = caux.substring(caux.length - 2 , caux.length);

 

   return result;
}

 


--
Francisco Pinto Araújo Júnior
Diretor de Tecnologia - Softexport Informática
Msc. Ciência da Computação
SCPJ2
Fone/Fax: +55 85 458 1947
pinto@softexport.com.br
www.softexport.com.br


Esta matéria foi postada originalmente no ASP4Developers por Francisco Pinto Araujo Junior (site), que na época era "Analista de Sistemas". Hoje, vai saber...

quinta-feira, 26 de dezembro de 2002

0

Zero a Esquerda (vários modelos e situções)

Abaixo segue algumas situações e modelos onde se aplicar o zero a esquerda, outras podem ser consultadas neste endereço abaixo:
http://www.freecode.com.br/forum/viewtopic.php?t=21

<%
Function ZerosEsquerda(pModo, pFinal)
Dim intCont, intResultado
 If (pFinal - Len(pModo)) < 0 Then
  intResultado = ""
 Else
  intResultado = ""
  For intCont = 1 To (pFinal - Len(pModo))
   intResultado = intResultado + "0"
  Next
  intResultado = intResultado + pModo
 End If
ZerosEsquerda = intResultado
End Function


Response.Write ZerosEsquerda("16", 2)
' por Rafael Trindade
'
rafael@freecode.com.br
%>


'----------------------------------
<%
Function FormatoZeros(num,zeros)
dim aux,i
  aux = 1
 for i = 1 to zeros
  aux = aux * 10
 next
 FormatoZeros = Mid(aux+num,2,zeros+1)
End Function
' por KDU
%>


'----------------------------------
<%
num = 12345


Function Completa(str,n)
 if Len(str) < n then
  For i = 1 to n - Len(str)
   gera = gera & 0
  next
   gera = gera & str
 else
  gera = str
 end if
Completa = gera
End Function
response.write Completa(num,10)
' por RockLoko
'
rock.loco@bol.com.br
%>


'----------------------------------
<%
Dim Num1, Num2
Randomize()
Num1 = Int((999999 * Rnd) + 1)


If Len(Num1) < 6 Then
 Num2 = 6 - Len(Num1)
    For I = 1 to Num2
  Num1 = 0 & Num1
 Next
End If
' por Jonh Petrucci - Clessio
%>


'----------------------------------
<%
Dim myArray, valores
valores = "1,15,216,1548,54872,8787974"
MyArray = Split(valores,",")


Function Zeros(str)
   Dim x, acrZeros
   if isNull(str) Then Exit Function
   For x = 0 To Ubound(str)
      IF Len(str(x)) > Len(maior) Then
         maior = str(x)
      End IF
   Next
   For x = 0 To Ubound(str)
      acrZeros = string(Len(maior) - Len(str(x)), "0") & str(x)
      response.write acrZeros &"<br>"
   Next
End Function


response.write Zeros(MyArray)
' por Márcio Lima (Guardião)
'
guardiao@freecode.com.br
%>


'----------------------------------
<%
Function adZero(sText, sQuant)
 if isNull(sText) Then Exit Function
    adZero = string(sQuant - len(sText), "0") & sText
End Function


'Usando:
Response.Write adZero("5789", 9)
'Resultado:
' 000005789
' por Marcelo Santos (MPSDesign)
'
marcelo@mpsdesign.com.br
%>



Esta matéria foi postada originalmente no ASP4Developers por Marcio Lima (Guardião) (site), que na época era "Programador ASP e VBA, apaixonado por Design, futurismo e ficção.
". Hoje, vai saber...

quinta-feira, 19 de dezembro de 2002

0

Alternando a cor das linhas de uma tabela

Existem muitas formas de alternar a cor das linhas de uma tabela que recebe o resultado de uma consulta. Essa é uma forma que ocupa pouco código.


<%  i = 0 
  do while not rs.eof
     if i mod 2<>0 then
          cor = "#FFFFFF"
     else
          cor = "#e1e1e1"
     end if %>


<tr bgcolor="<%=cor%>">


<%
i = i+1
rs.movenext : loop
%>



Esta matéria foi postada originalmente no ASP4Developers por Mateus Castriani (site), que na época era "Programador ASP, PHP, C#, C++ e webdesigner. Guitarrista nas horas vagas, segue o lema: Mulher, Futebol e Rock 'n Roll .". Hoje, vai saber...

quarta-feira, 18 de dezembro de 2002

0

Menu Java Script

Essa é uma solução simples para fazer um menu em java script através de vetores. O exemplo é bem simples e estático, mas pode ser útil para construir menus dinâmicos.


<table>
<script language="JavaScript" type="text/javascript">
 var opcao=new Array();
 var url=new Array();
  
  opcao[0]="Opção 1";
  opcao[1]="Opção 2";
      
  url[0]="url1.asp";
  url[1]="url2.asp";
  
  for(var i=0;i<opcao.length;i++){
     document.write ("<tr>");
              document.write ("<td bgcolor='#bbbbbb'><a href="+url[i]+">"+opcao[i]+"</a></td>");
              document.write ("</tr>");
  }
</script> 
</table>



Esta matéria foi postada originalmente no ASP4Developers por Mateus Castriani (site), que na época era "Programador ASP, PHP, C#, C++ e webdesigner. Guitarrista nas horas vagas, segue o lema: Mulher, Futebol e Rock 'n Roll .". Hoje, vai saber...

terça-feira, 17 de dezembro de 2002

0

Trabalhando com conexões a bancos de dados


INTRODUÇÃO
Ai vão algumas dicas de como se trabalhar com conexões com o banco de dados, sem causar problemas ao usuário ou derrubar a performance da aplicação/banco de dados.

CONTEÚDO
Já ouvi várias discussões sobre qual a melhor maneira de se trabalhar com conexões. É claro que existem alguns meios que farão com que você perca um pouco da performance, outras criarão risco em relação a disponibilidade da aplicação.

Gostaria de colocar neste artigo, minhas experiências e os prós e contras de algumas formas de se trabalhar com a conexão com o banco de dados.

UMA CONEXÃO PARA TODAS AS PÁGINAS

O que seria uma conexão para todos usuários?
Creio que muita gente trabalha desta maneira, onde você cria apenas um objeto de conexão dentro do objeto Application e o utiliza em todas páginas. Normalmente o objeto de conexão é instanciado é criado no código do arquivo Global.asa.

Prós
Facilita a manutenção do código, por exemplo, quando mudamos um banco de dados Access de diretório ou trocamos a senha do banco de dados, ao invés de mudarmos esta senha em vários locais.

Contras
Em alguns casos (Access especificamente) o banco de dados limita a quantidade de acessos a determinada conexão com o banco de dados, caso no seu site exista uma grande quantidade de visitas simultâneas, existirá uma grande possibilidade dele ficar indisponível para alguns usuários devido a um erro de conexão com o banco de dados.
Certamente será necessário um tratamento em todas as páginas que verifique a conexão com o banco de dados, caso ela tenha caído (o que pode ocorrer com mais facilidade com alguns tipos de banco) a conexão deverá ser aberta novamente.


UMA CONEXÃO PARA CADA ACESSO

Algo muito normal entre os programadores ASP é criar uma conexão dentro do objeto Session, do mesmo modo que uma conexão para todas as páginas que é criada dentro da rotina Application_OnStart dentro do Global.asa, esse modo de trabalhar é colocado dentro da rotina Session_OnStart.

Prós
Facilita a manutenção do código, por exemplo, quando mudamos um banco de dados Access de diretório ou trocamos a senha do banco de dados. Ao invés de mudarmos esta senha em vários locais.
Evitamos problemas com quantidade de acesso simultâneos na mesma conexão.
Caso a conexão caia, perderemos apenas a conexão daquela sessão (perdendo apenas um usuário) e não vários quando como criamos apenas uma conexão.

Contras
Utilização excessiva da memória do servidor WEB, pois diferente da conexão instanciada dentro da coleção contents do objeto application, para cada sessão no seu website será criada uma conexão, e depois que o usuário sai do website ou fecha seu browser, por padrão, a sessão irá expirar depois de 20 minutos de inatividae, causando um excesso de conexões abertas e objetos instanciados na memória do servidor.


UMA CONEXÃO PARA CADA PÁGINA/ACESSO
Todas as páginas abrirão a conexão com o banco de dados. Ou é colocado no início do código de todas as páginas a conexão com o banco de dados, o que dificulta a manutenção do código, o mais normal nessa forma de desenvolver, é criar um arquivo onde a conexão é aberta e outro arquivo que irá fechar a conexão com o banco de dados e depois colocamos um server include ( <!-- #include file="openconn.asp" -->).
Eu normalmente trabalho desta forma sempre, pois considero a melhor, mas essa é só a minha opinião e creio que existam formas melhores para se trabalhar e várias situações que possam alterar a forma com que trabalhamos.

Prós
Evitamos todos os contras dos outros métodos acima, inclusive o consumo da memória do servidor WEB pois o objeto é criado somente por alguns momentos e depois você fecha a conexão e destrói o objeto (set conn = Nothing).

Contras
A quantidade de conexões com o banco de dados aumenta e pode haver uma perda de performance, pois toda vez que o usuário solicita uma página a conexão será aberta antes.
Caso a conexão com o banco de dados não seja fechada no final das páginas, várias conexões ficarão abertas por um certo tempo.

Este é apenas o meu ponto de vista sobre algumas formas de se trabalhar com as conexões utilizadas nas suas páginas ASP.



Esta matéria foi postada originalmente no ASP4Developers por André Guergolet (site), que na época era "Desenvolvedor de aplicativos voltados a WEB à 3 anos. Atualmente trabalha com aplicativos de monitoração de redes utilizando .NET e outros recursos.". Hoje, vai saber...