My Writings. My Thoughts.

HTML Encoder

At » 15:48 // 0 Comments »

Esta página HTML irá converter caracteres especiais em entidades HTML. O texto codificado pode ser inserido em outro documento HTML ou blog destacamento e os caracteres reservados (como < e &) vai aparecer normalmente. Digite o texto no campo do formulário abaixo.

O resultado codificado será exibido no campo inferior, enquanto você digita.

HTML para Codificar:



HTML Codificado: (Clique para selecionar)



A codificação HTML é realizada com esta função Javascript:



/* encode html entities */
var char2entity = {
'"' : '&quot;',
'<' : '&lt;',
'>' : '&gt;',
'&' : '&amp;',
"'" : '&#39;' /* IE can't handle &apos; */
};

function encode_entities(str) {
var rv = '';
for (var i = 0; i < str.length; i++) {
var ch = str.charAt(i);
rv += char2entity[ch] || ch;
}
return rv;
}

Marcar checkbox na vertical e horizontal

At » 14:48 // 0 Comments »
Abaixo segue o código de como marcar checkbox (geralmente utilizado para dar permissão a usuários), é possível marcar tanto na horizontal como na vertical. Assim facilita a vida da pessoa que irá dar permissão.





<html>
<head>
<script>
function CheckAll(linha,chkStatus) {
for (var i=0;i<document.acessoUsuarioForm.elements.length;i++) {
var x = document.acessoUsuarioForm.elements[i];

if (x.name == 'chkIncluir'+linha ) {
if(chkStatus == true)
x.checked = true;
else
x.checked = false;
}
if (x.name == 'chkAlterar'+linha ) {
if(chkStatus == true)
x.checked = true;
else
x.checked = false;
}
if (x.name == 'chkExcluir'+linha ) {
if(chkStatus == true)
x.checked = true;
else
x.checked = false;
}
if (x.name == 'chkPesquisar'+linha ) {
if(chkStatus == true)
x.checked = true;
else
x.checked = false;
}
}
}


function CheckAllCol(coluna,chkStatus) {
for (var i=0;i<document.acessoUsuarioForm.elements.length;i++) {
var x = document.acessoUsuarioForm.elements[i];

if(coluna == 1){
if (x.id == 'chkIncluir' ) {
if(chkStatus == true)
x.checked = true;
else
x.checked = false;
}
}

if(coluna == 2){
if (x.id == 'chkAlterar' ) {
if(chkStatus == true)
x.checked = true;
else
x.checked = false;
}
}

if(coluna == 3){
if (x.id == 'chkExcluir' ) {
if(chkStatus == true)
x.checked = true;
else
x.checked = false;
}
}

if(coluna == 4){
if (x.id == 'chkPesquisar' ) {
if(chkStatus == true)
x.checked = true;
else
x.checked = false;
}
}

}
}

</script>


<style>
table.bordasimples tr td {border:1px solid darkblue;}
table tr.dif td {background: #4278B6; font-color=#FFF;}



body{
font-color=#000000;
font-family: arial, verdana;
font-size: 12px;"
}



</style>
</head>

<body >
<form name="acessoUsuarioForm">

<table border='0' align='center' cellpadding='3' cellspacing='5' class="bordasimples">

<tr class="dif">
<td><font color=#ffffff style="font-family: arial, verdana; font-size: 12px;"><b>&nbsp;&nbsp;Menu</b></font></td>
<td><font color=#ffffff style="font-family: arial, verdana; font-size: 12px;"><b>&nbsp;&nbsp;Incluir</b></font></td>
<td><font color=#ffffff style="font-family: arial, verdana; font-size: 12px;"><b>&nbsp;&nbsp;Alterar</b></font></td>
<td><font color=#ffffff style="font-family: arial, verdana; font-size: 12px;"><b>&nbsp;&nbsp;Excluir</b></font></td>
<td><font color=#ffffff style="font-family: arial, verdana; font-size: 12px;"><b>&nbsp;&nbsp;Consultar</b></font></td>
<td><font color=#ffffff style="font-family: arial, verdana; font-size: 12px;"><b>&nbsp;&nbsp;Marcar Permissão</b></font></td>
</tr>

<tr>
<td></td>
<td align='center'><input type=checkbox name="selallI" onClick="JavaScript:CheckAllCol(1,this.checked);"></td>
<td align='center'><input type=checkbox name="selallA" onClick="JavaScript:CheckAllCol(2,this.checked);"></td>
<td align='center'><input type=checkbox name="selallE" onClick="JavaScript:CheckAllCol(3,this.checked);"></td>
<td align='center'><input type=checkbox name="selallP" onClick="JavaScript:CheckAllCol(4,this.checked);"></td>
<td>&#8592;Vertical &#8595;Horizontal </td>
</tr>


<tr>
<td>
Clientes
</td>
<td align='center'>
<input type="checkbox" name="chkIncluir1" id="chkIncluir" />
</td>
<td align='center'>
<input type="checkbox" name="chkAlterar1" id="chkAlterar" />
</td>
<td align='center'>
<input type="checkbox" name="chkExcluir1" id="chkExcluir" />
</td>
<td align='center'>
<input type="checkbox" name="chkPesquisar1" id="chkPesquisar"/>
</td>
<td align='center'>
<input type=checkbox name="selall1" onClick="JavaScript:CheckAll(1, this.checked);">
</td>
</tr>

<tr>
<td>
Estoque
</td>
<td align='center'>
<input type="checkbox" name="chkIncluir2" id="chkIncluir" />
</td>
<td align='center'>
<input type="checkbox" name="chkAlterar2" id="chkAlterar" />
</td>
<td align='center'>
<input type="checkbox" name="chkExcluir2" id="chkExcluir" />
</td>
<td align='center'>
<input type="checkbox" name="chkPesquisar2" id="chkPesquisar"/>
</td>
<td align='center'>
<input type=checkbox name="selall2" onClick="JavaScript:CheckAll(2, this.checked);">
</td>
</tr>
</table>
</form>
</body>
</html>

Função Javascript de Validação Genérica

At » 11:19 // 0 Comments »
Função Javascript de Validação Genérica


/*
Descrição.: formata um campo do formulário de
acordo com a máscara informada...
Parâmetros: - objForm (o Objeto Form)
- strField (string contendo o nome do textbox)

* - sMask (mascara que define o
* formato que o dado será apresentado,
* usando o algarismo "9" para
* definir números e o símbolo "!" para
* qualquer caracter...
* - evtKeyPress (evento)
* Uso.......: * name="xxx".....
* onkeypress="return txtBoxFormat(document.rcfDownload, 'str_cep', '99999-999', event);">
* Observação: As máscaras podem ser representadas como os exemplos abaixo:
* CEP -> 99.999-999
* CPF -> 999.999.999-99
* CNPJ -> 99.999.999/9999-99
* Data -> 99/99/9999
* Tel Resid -> (99) 999-9999
* Tel Cel -> (99) 9999-9999
* Processo -> 99.999999999/999-99
* C/C -> 999999-!
* E por aí vai...
***/

function txtBoxFormat(objForm, strField, sMask, evtKeyPress) {
var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

if(document.all) { // Internet Explorer
nTecla = evtKeyPress.keyCode;
} else if(document.layers) { // Nestcape
nTecla = evtKeyPress.which;
} else {
nTecla = evtKeyPress.which;
if (nTecla == 8) {
return true;
}
}

sValue = objForm[strField].value;
// Limpa todos os caracteres de formatação que
// já estiverem no campo.
// toString().replace [transforma em sring e troca elementos por ""]
sValue = sValue.toString().replace( "-", "" );
sValue = sValue.toString().replace( "-", "" );
sValue = sValue.toString().replace( ".", "" );
sValue = sValue.toString().replace( ".", "" );
sValue = sValue.toString().replace( "/", "" );
sValue = sValue.toString().replace( "/", "" );
sValue = sValue.toString().replace( "/", "" );
sValue = sValue.toString().replace( "(", "" );
sValue = sValue.toString().replace( "(", "" );
sValue = sValue.toString().replace( ")", "" );
sValue = sValue.toString().replace( ")", "" );
sValue = sValue.toString().replace( " ", "" );
sValue = sValue.toString().replace( " ", "" );
fldLen = sValue.length;
mskLen = sMask.length;

i = 0;
nCount = 0;
sCod = "";
mskLen = fldLen;

while (i <= mskLen) {
bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ":") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " ") || (sMask.charAt(i) == "."))

//Se for true utiliza elementos especiais aumenta a máscara
if (bolMask) {
sCod += sMask.charAt(i);
mskLen++;
//Caso false mostra o sValue(o q foi digitado)
} else {
sCod += sValue.charAt(nCount);
nCount++;
}
i++;
}

objForm[strField].value = sCod;
if (nTecla != 8) { // backspace
if (sMask.charAt(i-1) == "9") { // apenas números...
return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9
else { // qualquer caracter...
return true;
}
} else {
return true;
}
}




Chamada no input:

<input name="txt" id="txt" value="<% = rst("nome_do_campo") %>" onkeypress="return txtBoxFormat(this.form, this.name, '99/99/9999', event);">

Pressão na entrega do projeto

At » 11:22 // 0 Comments »

PostgreSQL - pg_dump

At » 08:02 // 0 Comments »
Name
pg_dump -- extrai um banco de dados do PostgreSQL para um arquivo script ou de exportação

Synopsis
pg_dump [-a | -s] [-b] [-c] [-C] [-d | -D] [-f arquivo] [-F formato] [-i] [-n | -N] [-o] [-O] [-R] [-S] [-t tabela] [-v] [-x] [-X palavra_chave] [-Z 0...9] [-h hospedeiro] [-p porta] [-U nome_do_usuário] [-W] nome_bd

Descrição
O pg_dump é um utilitário para salvar um banco de dados do PostgreSQL em um arquivo script ou de exportação. Os arquivos script são no formato texto-puro e contêm os comandos SQL necessários para reconstruir o banco de dados no estado em que este se encontrava no momento que foi salvo. Estes scripts podem ser usados até para reconstruir o banco de dados em outras máquinas com outras arquiteturas e, com algumas modificações, até em outros SGBDR. Além do script, existem outros formatos de exportação feitos para serem usados em conjunto com o pg_restore para reconstruir o banco de dados, que permitem ao pg_restore selecionar o que deve ser restaurado, ou mesmo reordenar a restauração dos itens. Estes formatos de exportação também são projetados para serem portáveis entre arquiteturas.

O pg_dump salva as informações necessárias para regerar todos os tipos, funções, tabelas, índices, agregações e operadores definidos pelo usuário. Adicionalmente, todos os dados são salvos no formato texto para que possam ser prontamente importados, bem como tratados por ferramentas de edição.

O pg_dump é útil para exportar o conteúdo de um banco de dados a ser movido de um PostgreSQL para outro.

Quando usado com um dos formatos de exportação e combinado com o pg_restore , o pg_dump fornece um mecanismo de exportação e importação flexível. O pg_dump pode ser usado para exportar todo o banco de dados e, posteriormente, o pg_restore pode ser usado para examinar o arquivo e/ou selecionar que partes do banco de dados devem ser importadas. O formato mais flexível produzido é o "personalizado" (custom, -Fc), que permite a seleção e a reordenação de todos os itens exportados, sendo comprimido por padrão. O formato tar (-Ft) não é comprimido e não permite reordenar os dados durante a importação mas, por outro lado, é bastante flexível; além disso, pode ser tratado por outras ferramentas como o tar.

Ao executar o pg_dump deve-se examinar a saída procurando por advertências (escritas na saída de erro padrão), atento especialmente às limitações listadas abaixo.

O pg_dump cria cópias de segurança consistentes, mesmo se o banco de dados estiver sendo usado concorrentemente. O pg_dump não bloqueia os outros usuários que porventura estejam acessando o banco de dados (leitura ou gravação).


Opções
O pg_dump aceita os seguintes argumentos de linha de comando (As formas longas das opções estão disponíveis apenas em algumas plataformas).

nome_bd - Especifica o nome do banco de dados a ser exportado.

-a
--data-only

Exporta somente os dados, não o esquema (definições dos dados).

Esta opção só faz sentido para o formato texto-puro. Para os outros formatos esta opção pode ser especificada ao se chamar o pg_restore.

-b
--blobs

Exporta os objetos binários grandes (blobs).

-c
--clean

Gera comandos para excluir (drop) os objetos do banco de dados antes de criá-los.

Esta opção só faz sentido para o formato texto-puro. Para os outros formatos esta opção pode ser especificada ao se chamar o pg_restore.

-C
--create

Inicia a saída por um comando para criar o próprio banco de dados e se conectar ao banco de dados criado (Com um script assim, não importa em qual o banco de dados se está conectado antes de executar o script).

Esta opção só faz sentido para o formato texto-puro. Para os outros formatos esta opção pode ser especificada ao se chamar o pg_restore.

-d
--inserts

Exporta os dados como comandos INSERT (em vez de COPY), tornando a importação muito lenta, porém os arquivos exportados tornam-se mais portáveis para outros SGBDR.

-D
--column-inserts
--attribute-inserts

Exporta os dados como comandos INSERT com nomes explícitos das colunas (INSERT INTO tabela (coluna, ...) VALUES ...), tornando a importação muito lenta, mas é necessário se for desejado mudar a ordem das colunas.

-f arquivo
--file=arquivo

Envia a saída para o arquivo especificado. Se for omitido, a saída padrão é usada.

-F formato
--format=formato

Seleciona o formato da saída. O formato pode ser um dos seguintes:

p

Exporta um script SQL para um arquivo texto-puro (padrão)

t

Exporta um arquivo tar adequado para servir de entrada para o pg_restore. Usando este formato de exportação pode-se reordenar e/ou excluir elementos do esquema durante a restauração do banco de dados. Também é possível limitar quais dados são importados durante a restauração.

c

Exporta um arquivo personalizado apropriado para servir de entrada para o pg_restore. Este é o formato mais flexível porque permite a reordenação da importação dos dados, assim como dos elementos do esquema. Este formato também é comprimido por padrão.

-i
--ignore-version

Ignora a diferença de versão entre o pg_dump e o servidor de banco de dados. Como o pg_dump trabalha muito ligado aos catálogos do sistema, toda versão do pg_dump é feita para ser usada somente com a versão correspondente do servidor de banco de dados. Use esta opção se for necessário desconsiderar a verificação de versão (mas, se o pg_dump falhar, não diga que não foi avisado).

-n
--no-quotes

Suprime as aspas (") em torno dos identificadores a menos que seja absolutamente necessário. Pode causar problemas na importação dos dados exportados se existirem palavras reservadas usadas pelos identificadores. Este era o comportamento padrão para o pg_dump antes da versão 6.4.

-N
--quotes

Inclui aspas em torno dos identificadores. Este é o padrão.

-o
--oids

Exporta os identificadores de objeto (OIDs) para todas as tabelas. Deve-se usar esta opção quando a coluna OID é referenciada de alguma maneira (por exemplo, em uma restrição de chave estrangeira). Caso contrário esta opção não deve ser usada.

-O
--no-owner

Não gera comandos para definir o mesmo dono do objeto do banco de dados original. Tipicamente, o pg_dump gera comandos \connect (específico do psql) para definir o dono dos elementos do esquema. Consulte também as opções -R e -X use-set-session-authorization. Observe que a opção -O não impede todas as reconexões ao banco de dados, mas somente àquelas que são usadas exclusivamente para acertar o dono.

Esta opção só faz sentido para o formato texto-puro. Para os outros formatos esta opção pode ser especificada ao se chamar o pg_restore.

-R
--no-reconnect

Proíbe o pg_dump gerar um script que requeira reconexões com o banco de dados quando for realizada a importação. Usualmente, um script de importação necessita reconectar várias vezes como usuários diferentes para especificar o dono original dos objetos. Esta opção é um instrumento bastante rudimentar, porque faz o pg_dump perder a informação sobre o dono, a menos que seja usada a opção -X use-set-session-authorization.

Uma das razões possíveis para não se desejar a reconexão durante a importação é o acesso ao banco de dados requerer intervenção manual (por exemplo, senhas).

Esta opção só faz sentido para o formato texto-puro. Para os outros formatos esta opção pode ser especificada ao se chamar o pg_restore.

-s
--schema-only

Exporta somente o esquema (definições dos dados), sem os dados.

-S nome_do_usuário
--superuser=nome_do_usuário

Os scripts e os arquivos de exportação gerados pelo pg_dump necessitam do privilégio de superusuário em certos casos, como desativar gatilhos ou definir o dono dos elementos do esquema. Esta opção especifica o nome do usuário a ser usado nestes casos.

-t tabela
--table=tabela

Exporta os dados da tabela apenas.

-v
--verbose

Especifica o modo verboso.

-x
--no-privileges
--no-acl

Impede gerar os privilégios de acessos (comandos GRANT/REVOKE).

-X use-set-session-authorization
--use-set-session-authorization

Normalmente, se o script (modo texto-puro) gerado pelo pg_dump necessita trocar o usuário corrente do banco de dados (por exemplo, para definir o dono correto do objeto) é usado o comando \connect do psql. Este comando na verdade abre uma nova conexão, o que pode requerer a intervenção manual (por exemplo, senhas). Se for usada a opção -X use-set-session-authorization, então o pg_dump vai usar o comando SET SESSION AUTHORIZATION. Embora produza o mesmo efeito, requer que o usuário que for fazer a importação do banco de dados a partir do script gerado seja um superusuário. Esta opção substitui a opção -R.

Como o SET SESSION AUTHORIZATION é um comando SQL padrão, enquanto o \connect somente funciona no psql, esta opção também aumenta a portabilidade teórica do script gerado.

Esta opção só faz sentido para o formato texto-puro. Para os outros formatos esta opção pode ser especificada ao se chamar o pg_restore.

-Z 0..9
--compress=0..9

Especifica o nível de compressão a ser usado nos arquivos com formatos que suportam compressão (atualmente somente o formato personalizado suporta compressão).

O pg_dump também aceita os seguintes argumentos de linha de comando para os parâmetros de conexão:

-h hospedeiro
--host=hospedeiro

Especifica o nome da máquina onde o servidor está executando. Se o nome iniciar por uma barra (/), é considerado como sendo o diretório do soquete do domínio Unix.

-p porta
--port=porta

Especifica a porta Internet TCP/IP, ou o soquete do domínio local Unix, onde o servidor está aguardando as conexões. O padrão para o número da porta é 5432, ou o valor da variável de ambiente PGPORT (se estiver definida).

-U nome_do_usuário

Nome do usuário para se conectar.

-W

Força a solicitação da senha. Deve acontecer automaticamente se o servidor requerer autenticação por senha.


Exemplos
Para exportar um banco de dados:

$ pg_dump meu_bd > db.out

Para importar este banco de dados:

$ psql -d database -f db.out

Para exportar um banco de dados chamado meu_bd que contém objetos grandes para um arquivo tar:

$ pg_dump -Ft -b meu_bd > bd.tar

Para importar este banco de dados (com os objetos grandes) para um banco de dados existente chamado novo_bd:

$ pg_restore -d novo_bd bd.tar

Para exportar um banco de dados chamado nome que contém criação do banco junto com insert dos dados existente:

pg_dump -d -U db_user -h ip_banco -f nome.sql nome_banco

Problema x Solução (FOCO)

At » 02:46 // 0 Comments »
Um paciente vai num consultório psicológico e diz pro doutor:

- Toda vez que estou na cama, acho que tem alguém embaixo. Aí eu vou embaixo da cama e acho que tem alguém em cima. Pra baixo, pra cima, pra baixo, pra cima. Estou ficando maluco!
- Deixe-me tratar de você durante dois anos. - diz o psicólogo. - Venha três vezes por semana, e eu curo este problema.
- E quanto o senhor cobra? - pergunta o paciente.
- 120 reais por sessão - responde o psicólogo.
- Bem, eu vou pensar - conclui o sujeito.

Passados seis meses, eles se encontram na rua.
- Por que você não me procurou mais? - pergunta o psicólogo.
- A 120 reais a consulta, três vezes por semana, dois anos, ia ficar caro demais, ai um sujeito num bar me curou por 10 reais.
- Ah é? Como? - pergunta o psicólogo.
O sujeito responde:
- Por 10 reais ele cortou os pés da cama…


Muitas vezes o problema é sério, mas a solução pode ser muito simples!
HÁ GRANDE DIFERENÇA ENTRE FOCO NO PROBLEMA E FOCO NA SOLUÇÃO!

Encapsulamento em Java

At » 20:22 // 0 Comments »
Olá developers Java, vou falar um pouco sobre ENCAPSULAMENTO em java, O Encapsulamento é uma forma de proteger os atributos de uma classe, de forma a não ser acessada de qualquer forma em qualquer classe do projeto, mas o conteúdo desses atributos pode ser acessado somente através de métodos específicos. Geralmente os métodos que permitem a escrita no conteúdo dos atributos é iniciado por "Get", e os métodos de leitura de "Set".

Por exemplo:

public String getNome(){
return nome;
}

public void setNome(String n){
nome = n;
}



Protegeremos os atributos através do modificador de acesso Private utilizado na declaração do atributo antes do tipo da variável.

Por exemplo:

private String nome;


Quando utilizamos o modificador private somente a classe onde o atributo foi declarado será visível, por isso devemos criar métos que realizem o acesso aos atributos, como queremos que sejam acessados por outras classes, então o modificador de acesso usado para os métodos será public.

A classe deverá ficar mais ou menos assim:


public class Cliente
{
private String nome;

public void setNome(String n)
{
nome = n;
}

public String getNome(){
return nome;
}
}


Qualquer dúvida é só postar, até a próxima se Deus quiser...

My videos. Featured videos.

My photos. Now you know me.


Esse não sou eu, mas posso acabar sendo...

Browse Flickr

My lifestream. Stay updated with me.