quinta-feira, 20 de dezembro de 2012

12 dicas para destruir uma equipe competente


Este texto faz parte da coluna da Plataforma Brasil feito especialmente para os leitores do Saia do Lugar.Por: Gustavo Chierighini, fundador da Plataforma Brasil Editorial.
Todos sabemos como é árduo formar uma equipe eficiente. Em muitas situações são anos de tentativas, com erros e acertos até que em um determinado momento a orquestra se forma.
Geralmente ela é entrosada, comprometida, dotada de uma cultura própria, mas que convive com as particularidades. Ela é o sonho de 10 entre 10 empresários inteligentes.
Mas nem todos atingem esse êxito ao formarem seus quadros, porém entre aqueles que conseguem, um bom número se afunda nas armadilhas do processo de gestão e invariavelmente acabam por destruir aquilo que construíram.
Desta vez, caminhando no sentido inverso, apontaremos aquelas atitudes e práticas que servem para acabar de vez com uma equipe invejável.
1. Atue coberto de soberba e crie um mito sobre você mesmo. Para os seus colaboradores você sempre tem razão;
2. Seja grosseiro ao tratar com as pessoas. Trate-as com desrespeito, com expressões e atitudes rudes e duras;
3. Preocupe-se excessivamente na sustentação da sua autoridade. Preferencialmente imponha-se pelo medo causado, sem se preocupar em ser respeitado de verdade;
4. Persiga e prejudique as carreiras daqueles que são mais críticos. Para estes não abra espaço nem oportunidades. Eles são do contra e não merecem atenção;
5. Trabalhe e exija metas absurdas e inalcançáveis, sempre sob a ótica de que quanto mais pressão melhor;
6. Mantenha um clima de profunda e aguda exigência sobre tudo. Aproveite a oportunidade e elimine o senso de tolerância;
7. Esteja sempre bravo e irritado;
8. Cultive o stress como um valor, crente de que quanto mais melhor;
9. Cultive, absorva e aplique todas as novas modinhas de gestão, criando uma atmosfera de mudança permanente e estabilidade zero;
10. Prestigie seus colaboradores por critérios subjetivos, dignos de uma boa psicologia corporativa de botequim. Deixe de lado o conceito de meritocracia;
11. Atue de forma que a confiança na sua palavra seja nenhuma, afinal de contas você não deve satisfações a ninguém;
12. Explore-os economicamente, de forma a obter o melhor retorno possível, em detrimento de uma equipe bem, ou justamente remunerada.
Pense nisso.
Para ler outros ótimos artigos da coluna da Plataforma Brasil no Saia do Lugar, clique aqui.

sexta-feira, 7 de dezembro de 2012

O segredo para o sucesso. "Não coma o marshmallow" - Joachim de Posada

Qual o segredo para o sucesso?
Confira o que Joachim de Posada diz em apenas 6 min, através de um experiência real.

Bom final de semana.

segunda-feira, 19 de novembro de 2012

O pessimista e o Otimista

Na vida temos muitas barreiras a serem vencidas. Estar disposto a encarar os desafios é o que pode fazer a diferença.


“O pessimista vê dificuldade em cada oportunidade. O otimista vê oportunidade em cada dificuldade.”
(Winston Churchill)

Boa reflexão e uma ótima semana!

segunda-feira, 22 de outubro de 2012

Programação da Feira do Empreendedor 2012 em Teresina


Confira a programação da Feira do Empreendedor 2012 em Teresina
O SEBRAE/PI divulgou a programação de palestras Magnas e Masters da FEIRA DO EMPREENDEDOR 2012, que acontecerá no Espaço de Eventos FIEPI, de 21 a 25.11, das 17 às 22 h, na Av. Gil Martins, 1810 – Bairro Redenção. O local fica próximo ao Detran e ao Estádio Albertão. Confira a programação:
AUDITÓRIO PALESTRAS MAGNAS - 500 LUGARES
DIA: 21/11
- 20:00 às 21:30 h - “O Processo de Criação e Sua Relação com o Tempo” -Hans Donner
DIA: 22/11
- 18:00 às 19:30 h -“Os Estouros da Pipoca do Valdir" - Valdir da Pipoca
- 20:00 às 21:30 h - “Toda Empresa Deve Produzir Dinheiro”- Gustavo Cerbasi
DIA:23/11
- 18:00 às 19:30 h - “Empreendedorismo no Mundo Digital” - Sandra Turchi
- 20:00 às 21:30 h - “Cenário Econômico Brasileiro” - José Milton Dalari
DIA: 24/11
- 18:00 às 19:30 h – “Geração de Inovações e Diferenciais Competitivo” - Gizela Kasoy
- 20:00 às 21:30 h - “O Que Fazer para Ganhar Dinheiro Novo e não Dinheiro de Novo” - Dimitri Ville
DIA: 25/11
- 20:00 às 21:30 h - “O Segredo do Fracasso” - Murilo Gum
AUDITÓRIO PALESTRAS MASTERS – 200 LUGARES
DIA: 22/11
- 18:00 às 19:30 h - “Os Seis Passos para Empreender no Novo Mundo Digital com Alta Competitividade” - Renato Gosling
- 20:00 às 21:30 h - “o Novo Comportamento e Tendências de Mercado : O Amanhã é Agora” - Ricardo Adriana Lemos
DIA: 23/11
- 18:00 às 19:30 h - “Gestão Ágil : Pense Grande, Comece Pequeno” - Camila Pires - 20:00 às 22:00 h - “Como Inovar e Se Destacar na Era Digital” -Fernando Kimura
DIA: 24/11
- 18:00 às 19:30 h - “A Estratégia do Olho de Tigre” - Renato Grimberg
- 20:00 às 21:30 h - “Dicas & Segredos: Mercado Imobiliário” - Ari Travassos
A Feira do Empreendedor no Piauí vai apresentar, ainda, várias atrações para o público visitante, dentre elas um espaço para formalização de empresas, informações sobre financiamentos, consultorias gratuitas, sala de cinema empresarial, soluções para empresas avançadas, Livraria SEBRAE, Conecte Seu Negócio, Rodada de Negócio e Seminários.
Ao todo, serão 150 eventos em vários segmentos econômicos.
A entrada será 1 kg de alimento não perecível.  
INFORMAÇÕES TÉCNICAS SOBRE A FEIRA E ESTANDES:
Francisco das Chagas da Costa Holanda
Coordenador da Feira do Empreendedor 2012
(86) 3216 1333
holanda@pi.sebrae.com.br
Helder de Freitas Costa
Gestor da FEIRA DO EMPREENDEDOR 2012
(86)3216 1362
helder@pi.sebrae.com.br
E-MAIL DA FEIRA:
feiradoempreendedor@pi.sebrae.com.br 
INFORMAÇÕES GERAIS SOBRE A PROGRAMAÇÃO DA FEIRA:
CALL CENTER 0800 570 0800
Fonte : Helder de Freitas Costa

quinta-feira, 18 de outubro de 2012

Ferramentas ideais para monitorar as redes sociais


É fundamental conhecer as principais necessidades e objetivos da sua empresa nas redes sociais para achar as ferramentas mais adequadas. Seguem algumas das mais interessantes para agendamentos de conteúdos, análise de resultados e métricas, além do monitoramento da sua marca.
Ferramentas de agendamento: Sprout Social, TweetDeck, Hootsuite, o próprio facebook, etc. Com elas você consegue manter suas redes atualizadas com conteúdos em qualquer dia ou horário.
Ferramenta de análise: Google Analytics, TwitterCounter, Facebook Insights, etc. Tão importante quanto as atualizações são as informações que essas ferramentas podem fornecer como base para análises e mensurações da campanha.
Ferramenta de monitoramento: Seekr, Scup, LiveBuzz, Social Metrix, Radian 6, etc. Existem diversas ferramentas para monitorar tanto as redes trabalhadas como outras mídias sociais existentes, além de menções e palavras determinadas como produtos e concorrentes
Fonte : exame

Como formatar a data no MySQL para exibição no select


Após algumas dificuldades na formatação de data no MySQL para exibição correta nos campo dos formulários e consultas, seja em (php, C#, delphi, ...), utilizei os simples exemplos, demonstrados abaixo, para padronizar a exibição dos campos diretamente na execução da consulta SQL, formatando assim o campo da forma desejada.
SELECT DATE_FORMAT( data_banco , '%d/%c/%y %H:%i:%s' ) AS date FROM tabela_mysql;
 /* Ano com 2 digitos e Hora 24h 
 17/10/12 15:39:47 */
SELECT DATE_FORMAT( data_banco , '%d/%c/%Y %H:%i:%s' ) AS date FROM tabela_mysql;
 /* Ano com 4 digitos e Hora 24h 
 17/10/2012 15:39:47 - Formato da data (00/00/0000)*/
SELECT DATE_FORMAT( data_banco , '%d-%c-%Y %h:%i:%s' ) AS date FROM tabela_mysql;
 /* Ano com 4 digitos e Hora AM-PM 
 17-10-2012 03:39:47 - Formato da data (00-00-0000) */

Abraço a todos !!!

quarta-feira, 10 de outubro de 2012

Tipos de Campos no MySQL, saiba como escolher o tipo correto



Tipos de Campos no MySQL, saiba como escolher o tipo correto


(Este post foi publicado por www.rcoli.com.br, ver fonte)

Este post tem o objetivo de ajudar o desenvolvedor na escolha adequada do tipo de campo que deverá utilizar no banco MySQL para persistir seus dados.
O desenvolvedor inexperiente costuma confundir bastante os tipos de campo da linguagem utilizada (PHP por exemplo) com os tipos que o banco pode armazenar. Um exemplo clássico dessa confusão é o booleano que é automaticamente convertido de true para 1 e false para 0 (zero).  Além disso, há o clássico erro de armazenamento de CPF em campo numérico o que faz com que todos os zeros a esquerda se percam.
Portanto coloco abaixo a tabela com os campos do MySQL para que sirva de um guia de implementação do banco de dados de sua aplicação.
Lembro ainda que antes de mais nada você deve identificar qual o tipo de variável que irá armazenar: número, texto, binário, data,  lista ou combinação destes. Em seguida estimar o tamanho do campo e se será variável ou fixo. O MySQL costuma preencher campos texto não variáveis com espaços em branco. Em seguida, verificar se permitirá nulo ou não, se é uma chave candidata, primária, estrangeira, índice ou único.
Não há uma regra fixa para saber como os bancos deverão ser implementados, mas tenha sempre em mente que neste caso, mais é melhor. Ou seja, é melhor sobrar espaço do que ter uma informação inserida com pedaços faltando. Já viu alguém nascer no “Rio de Jane” pois o desenvolvedor não colocou o campo com o tamanho correto?!
Observações:
  • O tamanho do campo para tipos numéricos não afeta o intervalo de valores que pode ser armazenado na coluna. Colunas definidas como TINYINT (1) ou TINYINT (20) podem armazenar exatamente, os mesmos valores. Em vez disso, para inteiros, o tamanho determina a largura do campo, para casas decimais, o tamanho é o número total de dígitos que pode ser armazenado.
  • Muitos dos tipos de dados têm nomes sinônimos: INT e INTEGER, DEC e DECIMAL, etc
  • O tipo de campo TIMESTAMP é automaticamente definido com a data e hora quando um INSERT ou UPDATE ocorre, mesmo se nenhum valor for especificado para esse campo . Se uma tabela possui múltiplas colunas TIMESTAMP, somente a primeira será atualizada quando um INSERT ou UPDATE é realizado.
  • MySQL também tem diversas variantes para os tipos de texto que permitem o armazenamento de dados binários. Estes tipos são BINARY, VARBINARY, TINYBLOB, MEDIUMBLOB, e LONGBLOB. Esses tipos são usados para armazenamento de arquivos ou dados criptografados.
Tipos Numéricos
TipoUsoTamanho
AtributoMINMAX
TINYINTUm inteiro muito pequenoSigned:-128127
Unsigned0255
SMALLINTUm inteiro pequenoSigned:–3276832767
Unsigned065535
MEDIUMINTUm inteiro de tamanho medianoSigned:–83886088388607
Unsigned016777215
INT or INTEGERUm inteiro de tamanho normalSigned:–21474836482147483647
Unsigned04294967295
BIGINTUm inteiro de temanho grandeSigned:–92233720368547758089223372036854775807
Unsigned018446744073709551615
FLOATUm pequeno número de ponto flutuante (precisão simples)Signed–3.402823466E+38–1.175494351E-38, 0
1.175494351E-383.402823466E+38
Não pode ser unsigned-
OBSSe o número de decimais não for especificado ou for <= 24 será de precisão simples
DOUBLE,
DOUBLE PRECISION,
REAL
Um número de ponto flutuante de tamanho normal (precisão dupla)Signed-1.7976931348623157E+308-2.2250738585072014E-308, 0
2.2250738585072014E-3081.7976931348623157E+308
Não pode ser unsigned-
OBSSe o número de decimais não for especificado ou for 25 <= Decimals <= 53 será de precisão dupla
DECIMAL,
NUMERIC
Um número de ponto flutuante descompactado .SignedSe comporta como um campo CHAR: “descompactado” significa que o número é armazenado como uma string, usando um caractere para cada dígito do valor. O ponto decimal e, para números negativos, o sinal ‘-’ não é contado. Se o decimal for 0, os valores não terão ponto decimal ou parte fracionária.O alcance máximo de valores decimais é o mesmo que para o DOUBLE, mas a faixa atual para um campo DECIMAL dado pode ser limitado pela escolha de comprimento e decimais.
Não pode ser unsigned-
OBSSe Decimais é deixado de fora ele é definido como 0. Se o comprimento é deixado de fora ele é definido como 10. Note que no MySQL 3,22 o comprimento inclui o sinal eo ponto decimal
Campos de Datas
FormatoMINMAX
DATEData‘1000-01-01’‘9999-12-31’
OBSFormato: ‘YYYY-MM-DD’
DATETIMEData e horário‘1000-01-01 00:00:00’‘9999-12-31 23:59:59’
OBSFormato: ‘YYYY-MM-DD HH:MM:SS’
TIMESTAMPTimestamp‘1970-01-01 00:00:00’aproximadamente 2037
OBSFormato: YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD ou YYMMDD, dependendo se M é 14 (ausente), 12, 8 ou 6, podendo ser strings ou números.
Este tipo é recomendável para instruções de INSERT ou UPDATE pois é automaticamente marcado com os valores da operação mais recente quando não informado.
TIMEA time‘-838:59:59’‘838:59:59’
OBSformato: ‘HH:MM:SS’, podem ser strings ou números
YEARAnos com 2 ou 4 digitos. O padrão é 4 digitos4 digitos19012155 e 0000
2 digitos19702069
OBSFormato: YYYY
podem ser strings ou números.
Campos Texto
MINMAX
CHARString de tamanho fixo. Sempre é completada com espaços a direita até o tamanho definido1255 caracteres
OBSEspaços excessivos são removidos quando o valor é trazido.Os valores são ordenados e comparados ignorando caixas altas e baixas de acordo com a codificação padrão, a menos que seja fornecido uma chave binária.
VARCHARString de tamanho variável1255 caracteres
OBSOs valores são ordenados e comparados ignorando caixas altas e baixas de acordo com a codificação padrão, a menos que seja fornecido uma chave binária.Nota: Espaços execessivos são removidos quando o valor é inserido.
TINYTEXT0255 (2^8 – 1) caracteres
TEXT065535 (2^16 – 1) caracteres
MEDIUMTEXT016777215 (2^24 – 1) caracteres
LONGTEXT04294967295 (2^32 – 1) caracteres
Dados Binários
TINYBLOB0255 (2^8 – 1) caracteres
BLOB065535 (2^16 – 1) caracteres
MEDIUMBLOB016777215 (2^24 – 1) caracteres
LONGBLOB04294967295 (2^32 – 1) caracteres
Listas
MINMAX
ENUMEnumeraçãoString que pode conter apenas um valor ou zero65535 valores distintos.
SETListaString que pode conter zero ou mais valores64 itens


Fonte extraída de www.rcoli.com.br e o mesmo postou as suas fontes : 


segunda-feira, 8 de outubro de 2012

Veja ferramentas para proteger sua conta e a de seu filho no Facebook

Aplicativos gratuitos vasculham seu mural e feed no Twitter e avisam caso algum app esteja postando sem você saber ou em caso de conteúdo perigoso.


O Bitdefender Safego é um serviço antiscam gratuito para Facebook e Twitter.

MyPageKeeper monitora todos os itens postados em seu perfil e feed de notícias, e notifica sobre mensagens maliciosas, tal como faz o Bitdefender Safego.

O SocialShield, da Avira, é um serviço de monitoramento gratuito que permite ficar de olho nas contas Facebook, Twitter, MySpace, Google+ e FormSpring do seu filho.

O SocialShield, analisa posts, mensagens, fotos, amigos e outros conteúdos no Facebook do seu filho e alerta sobre qualquer atividade perigosa. Mas, ao contrário SocialShield, o Minor permite que você veja toda a atividade em vez de apenas os itens marcados como potencialmente perigosos.

Fonte: IdgNow

terça-feira, 25 de setembro de 2012

Funções de Data e Hora (Mysql)


Funções de Data e Hora (MySQL)

Na documentação do MySQL pode ser encontrado um bom material sobre essas funções, colocarei a seguir algumas das que eu considero mais importantes: 

  • Time_To_Sec(Tempo) 
Converte o argumento tempo em segundos
Ex.:
SELECT TIME_TO_SEC(NOW())
--
51349
  • NOW(), SYSDATE() 
Retornam data e hora atual
eX.:
SELECT NOW(), SYSDATE()
--
2007-12-17 17:29:21 2007-12-17 17:29:21


  • STR_TO_DATE(string, formato) 
Converte a string em determinado formato e retorna um valor DATETIME
Ex.:
SELECT STR_TO_DATE('03.10.2007 09.20', '%d.%m.%Y %H.%i.:%s');
--
2007-10-03 09:20:00

Fonte: programero

sexta-feira, 14 de setembro de 2012

Dica: 4 sites para deixar a capa de seu perfil no FB mais divertida - Internet - IDG Now!

Dica: 4 sites para deixar a capa de seu perfil no FB mais divertida - Internet - IDG Now!


1. Coverbooth
A página inicial do Coverbooth exibe as fotos de capa mais usadas recentemente por seus usuários. 
2.Covermyfb.com
Além de uma coleção de imagens de arquivo, o Covermyfb.com lhe dá a opção de converter qualquer imagem para sua foto da capa ou até mesmo desenvolver a sua própria.
3.Unique FB Covers
Unique FB Covers é semelhantes a outros sites, embora sua coleção não seja tão extensa como alguns. 
4.FBJunks
Por último, o arquivo de imagens de capa do FBJunks inclui categorias que vão de "abstrato" até "flores" e"whisky". 
Fonte: IDGNow



quarta-feira, 29 de agosto de 2012

Você é motivado em seu trabalho ?

Você é motivado em seu trabalho ?

Descubra como mensurar a sua satisfação no trabalho através desta avaliação e assim refletir sobre o que pode ser feito para que não so a motivação seja retomada mas a melhoria do profissionalismo dentro de sua empresa.

Uma preocupação dos profissionais, hoje, é saber como atravessar um período em que a motivação está baixa. Para avaliar a origem do seu desânimo, use o seguinte modelo, dividido em três conjuntos: 
1) Contexto; 2) Conteúdo e 3) Infraestrutura. 

O primeiro conjunto é o contexto, representa o tipo de empresa em que você trabalha. 

  • Qual é a sua relação com o negócio? 
  • Você sente orgulho da empresa? 
  • Existe alguma afinidade entre você e o produto ou serviço que ela fornece? 

O segundo conjunto é o conteúdo, ou seja, o retorno que esse trabalho lhe proporciona. 

  • O que você faz tem uma importância relativa na empresa? 
  • Você faz diferença? 
  • Seu desempenho faz diferença? 
  • As pessoas com quem você trabalha desafiam a sua inteligência e o seu comportamento? 

O terceiro conjunto é a infraestrutura. ou seja, as ferramentas de trabalho, a tecnologia de informação, dos sistemas e processos que envolvem a sua atividade. 

  • Você está à vontade no exercício de suas tarefas? 
  • Você domina as tecnologias que são necessárias ao desempenho da sua função? 
  • Tem tido um treinamento adequado? 

Responder a todas essas perguntas já lhe dará uma boa noção das razões de seu desânimo com o trabalho. 

Espero ter ajudado, abraço a todos.

Fonte : Voce SA.

sexta-feira, 27 de julho de 2012

botão limpar e voltar (JavaScript)



botão limpar

botão voltar
<input onclick="window.history.back(); return false;" type="button" value="Voltar" />
ou ...
<input onclick="history.go(-1)" type="button" value="Voltar" />

segunda-feira, 18 de junho de 2012

Manipulando campo Blob (Arquivo de imagem, video, documentos, etc)

Manipulando Campo Blob no delphi
Após muitas dificuldades de utilizar o recurso segue simplificadamente como utilizei para ler e exibir o conteúdo de arquivos em banco de dados.

Carregar o conteudo de um arquivo na coluna da tabela do banco de dados
TBlobField(Tabela.FieldByName('NomedaColuna')).LoadFromFile('NomeArquivo.NomeExtensao');

Salvar o conteudo da tabela em um arquivo fisico do disco
TBlobField(MyTable.FieldByName('NomedaColuna')).SaveToFile('NovoArquivo.NomeExtensao');
Limpar conteudo da tabela
TBlobField(MyTable.FieldByName(' NomedaColuna' )).Clear;

with MyTable do
if not TBlobField(MyTable.FieldByName(´SOM)).IsNull then
TBlobField(MyTable.FieldByName(´SOM)).SaveToFile(´MyWaveCopy.wav´);

Para saber quanto um campo BLOB está ocupando num registro do seu arquivo
em byte, use a propriedade BlobSize:
TBlobField(MyTable.FieldByName('NomedaColuna').BlobSize;

Usando os mesmos métodos, você também pode armazenar e manipular filmes
AVI, apresentações, documentos, etc

Abraço a todos !!!

quarta-feira, 30 de maio de 2012

Trabalhando com DataSet (Insert, edit, post, last, prior, first, ...)

Trabalhando com DataSets

Um DataSet é um conjunto de dados organizado em forma de tabela (em linhas e colunas). As colunas são os campos e as linhas são os registros. Todo o acesso a bancos de dados no Delphi é feito através de DataSets. Os componentes Table e Query são os tipos principais de DataSets. Neste capítulo, veremos as propriedades, eventos e métodos dos DataSets. Tudo que veremos aqui vale para os componentes Table e Query.

Abrindo e fechando DataSets

Para alterar ou ler os dados em uma DataSet, você deve primeiro abrir o DataSet.
  • Para abrir um DataSet, realize uma das seguintes operações:
  • Altere a propriedade Active do DataSet para True.
Isso pode ser feito em tempo de desenvolvimento no Object Inspector, ou em tempo de execução. O seguinte comando abre o componente chamado "Table1":
Table1.Active := True;
  • Use o método Open no DataSet, como abaixo:
Query1.Open;
Quando um DataSet é aberto os dados conectados a ele são lidos e exibidos automaticamente (se houver componentes onde os dados possam ser exibidos, é claro). No exemplo do capítulo anterior, abrimos um componente Table em um formulário para que os dados fossem exibidos imediatamente em um componente DBGrid.
Você deve sempre fechar um DataSet depois de usá-lo, para liberar recursos do sistema.
  • Para fechar um DataSet, realize uma das seguintes operações:
  • Altere a propriedade Active do DataSet para False.
  • Use o método Close no DataSet, como em Table1.Close

Estados de um DataSet

Um DataSet pode estar em vários estados diferentes. O estado de um DataSet determina o que pode ser feito (ou está sendo feito) com o DataSet. O valor da propriedade State de um DataSet determina o seu estado atual. Veja a seguir uma descrição breve dos estados mais importantes em que pode estar um DataSet.

Estado
(valor de State)

Significado

dsInactive

O Dataset está fechado. Seus dados não estão disponíveis (não podem ser lidos nem alterados).

dsBrowse

O Dataset está aberto. Seus dados podem ser visualizados, mas não podem ser alterados. Este é o estado padrão de um DataSet.

dsEdit

O DataSet está aberto. O registro atual pode ser modificado.

dsInsert

O DataSet está aberto. Um novo registro acaba de ser inserido.


O estado dsBrowse é o estado padrão. Quando um DataSet é aberto, ele é colocado automaticamente neste estado. Vários métodos de um DataSet podem ser usados para alterar o seu estado. Na ilustração a seguir, são mostrados os quatro estados mais importantes e os métodos que podem ser usados para passar de um estado para outro.

Estados de um DataSet
Para usar um dos métodos da ilustração, simplesmente use o nome do DataSet seguido pelo nome do método. O trecho de código abaixo, por exemplo, altera cinco vezes o estado de um componente Table.
procedure TForm1.Button1Click(Sender: TObject);
begin    Table1.Open; // O estado muda para dsBrowse ...
    Table1.Edit; //... muda para dsEdit...
    Table1.Insert; //... muda novamente para dsInsert ...
    Table1.Close; //... e finalmente muda para dsInactive
end;

Navegando em um DataSet

Os DataSets teriam pouca utilidade se não fosse possível percorrer e consultar (navegar) os seus registros. Há vários métodos e propriedades úteis para a navegação de DataSets.
Para permitir a navegação de seus registros, todo DataSet contém um cursor que indica o registro atual (ou linha atual) do DataSet. É no registro atual que são feitas alterações, ou onde são inseridos (ou removidos) registros. Todos os métodos de navegação alteram a posição do cursor. Veja uma descrição breve desses métodos na tabela a seguir:

Método

Descrição

First

Move o cursor para o primeiro registro do DataSet.

Last

Move o cursor para o último registro do DataSet.

Next

Move o cursor para o próximo registro do DataSet (imediatamente depoisdo registro atual). Se o cursor já estiver no último registro, nada acontece.

Prior

Move o cursor para o registro anterior do DataSet (imediatamente antes do registro atual). Se o cursor já estiver no primeiro registro, nada acontece.

MoveBy(num)
Move o cursor o número de registros especificado em num. Um valor positivo move o cursor para frente; um valor negativo move-o para trás. Por exemplo, Table1.moveBy(-10) move o cursor 10 registros para trás na tabelaTable1.

Se o número de registros especificado for maior do que o número que se pode mover, o cursor é movido para o primeiro ou o último registro, dependendo da direção do movimento.

Além dos métodos descritos acima, há duas propriedades que indicam se o cursor chegou ao final ou ao início de um DataSet: BOF e EOF.

Propriedade

Descrição

BOF

BOF é alterado para True quando o cursor está no primeiro registro do DataSet. BOF é a abreviação de Begin of File – "Início do Arquivo".

Quando o cursor estiver em qualquer registro que não seja o primeiro do DataSet, o valor de BOF é False.

EOF

EOF é alterado para True quando o cursor está no último registro do DataSet. EOF é a abreviação de End of File – "Final do Arquivo".

Quando o cursor estiver em qualquer registro que não seja o último do DataSet, o valor de EOF é False.

Modificando Datasets

Pode-se alterar um DataSet diretamente, modificando valores campo a campo, ou adicionando e removendo registros inteiros. Os seguintes métodos permitem fazer essas alterações:

Método

Descrição

Edit

Coloca o DataSet no estado dsEdit. Isto permite a alteração dos valores do registro atual. Muitos componentes chamam esse método implicitamente para permitir a alteração direta dos valores de um DataSet. O componente DBGrid, por exemplo, entra no estado dsEdit usando o método Edit, quando se dá um duplo clique em um dos registros.

Append

Adiciona um registro vazio ao final do DataSet. O estado do DataSet muda paradsInsert.

Insert

Adiciona um registro vazio na posição atual do cursor. O estado do DataSet muda para dsInsert (como para o método Append).

Post

Tenta enviar o novo registro ou o registro alterado para o banco de dados. Se tudo correr bem, o DataSet é colocado no estado dsBrowse. Caso contrário, o estado do DataSet não é alterado. O comando Post é um tipo de confirmação da última entrada.

Muitos componentes chamam Post automaticamente (quando se passa de um registro para outro em um DBGrid, por exemplo).

Cancel

Cancela a última operação (uma alteração em um registro, por exemplo) e coloca o DataSet no estado dsBrowse.

Delete

Apaga o registro atual e coloca o DataSet no estado dsBrowse.


Fonte : angelfire

segunda-feira, 28 de maio de 2012

Usando xp_fixeddrives para monitorar o espaço livre em disco


Usando xp_fixeddrives para monitorar o espaço livre em disco

Por Gregory A. Larsen

Como um DBA uma de suas responsabilidades é monitorar disco espaço . Você sempre precisa ter certeza de que você tem o suficiente para suas bases de dados, backups de banco de dados e quaisquer outros tipos de arquivos que você pretende armazenar no seu servidor. Se você não controlar o seu espaço em disco e verifique se você tem espaço suficiente, eventualmente, um de seus processos de banco de dados críticos ou componentes vai falhar, porque não é possível alocar o espaço em disco ele precisa.

Há um número de diferentes métodos para monitorizar a utilização do espaço de disco. Não vou discutir os métodos diferentes que você poderia usar, eu só vou escrever sobre um. O método que eu vou discutir é um método de monitoramento simples espaço que usa um SQL Server em situação irregular estendido xp_fixeddrives procedimento armazenado chamado. Os xp_fixeddrives estendido procedimento armazenado retorna um conjunto de registros que contém o número de megabytes de espaço livre para cada unidade física associada com a máquina do SQL Server.
Agora é simples basta executar o comando xp_fixeddrives cada tantas vezes do Query Analyzer para analisar a quantidade de espaço livre, embora este método é muito demorado para administradores de banco de dados ocupados. Um método melhor seria automatizar executando este comando periodicamente para rever a quantidade de espaço livre. Com a aproximação automática, você pode realizar o que quer que você achar mais adequado com as informações de espaço livre. Eu posso pensar de um casal de diferentes tarefas de DBA, onde informações de espaço livre pode ser valioso. A primeira coisa seria alertar o DBA quando o espaço livre cai abaixo de um limite específico em qualquer unidade do SQL Server, ea segunda seria a de acompanhar historicamente o espaço livre em disco para o gerenciamento da capacidade do espaço.
Primeiro, vamos olhar como construir um processo para alertar o DBA quando qualquer uma das unidades de disco do SQL Server cai abaixo de um determinado limite. Para utilizar as informações xp_fixeddrives neste processo automatizado alertando que eu preciso para obter as informações emitidas pelos procedimentos de armazenamento prolongados em uma tabela SQL Server ou variáveis ​​de aplicativo, para que eu possa programaticamente tomar decisões sobre se uma unidade já passou do limite de espaço livre. Para obter as informações xp_fixeddrives em uma tabela temporária eu uso o seguinte T-SQL.

create table #FreeSpace(
 Drive char(1), 
 MB_Free int)

insert into #FreeSpace exec xp_fixeddrives
Como você pode ver, eu criei uma tabela temporária chamada # FreeSpace para inserir os registros que xp_fixeddrives saídas. Esta tabela temporária é então preenchida quando o "insert into" instrução é executada. Agora esse código por si só não alertar o DBA, embora não obter as informações de espaço livre para cada unidade em sua caixa de SQL Server em uma tabela temporária onde algum código T-SQL pode processá-lo para alertar o DBA.
O método que estou usando para controlar o processo de alerta de limite é um trabalho do SQL Agent que é executado de hora em hora. Cada hora o trabalho do agente SQL Server coleta as informações de espaço livre para cada unidade do SQL Server em uma tabela temporária, como o descrito acima. Então, para cada unidade de eu recuperar as informações de espaço livre a partir desta tabela temporária e compará-lo a um limiar que definiu para cada unidade. Se a quantidade de espaço livre cai abaixo do limiar de configuração especial para a unidade, então eu enviar e-mail do DBA usando xp_sendmail. Aqui está um exemplo de algum código que faz exatamente isso.

declare @MB_Free int

create table #FreeSpace(
 Drive char(1), 
 MB_Free int)

insert into #FreeSpace exec xp_fixeddrives

select @MB_Free = MB_Free from #FreeSpace where Drive = 'C'

-- Free Space on C drive Less than Threshold
if @MB_Free < 1024
  exec master.dbo.xp_sendmail 
     @recipients ='greg.larsen@netzero.net',
     @subject ='SERVER X - Fresh Space Issue on C Drive',
     @message = 'Free space on C Drive 
                 has dropped below 1 gig'

select @MB_Free = MB_Free from #FreeSpace where Drive = 'F'

-- Free Space on F drive Less than Threshold
if @MB_Free < 2048 
   exec master.dbo.xp_sendmail 
     @recipients ='greg.larsen@netzero.net',
     @subject ='SERVER X - Fresh Space Issue on C Drive',
     @message = 'Free space on F Drive 
                 has dropped below 2 gig'
Este exemplo apenas verifica o espaço livre em dois discos, mas poderia facilmente ser modificado para lidar com unidades adicionais. Esse código de exemplo pode ser colocado diretamente em uma etapa de trabalho do SQL Agent, ou pode ser construído em um procedimento armazenado que é executado por uma etapa de trabalho. Ao construir um trabalho de agente do SQL Server para executar o código acima, o DBA será notificado logo após uma unidade atinge o seu limite de espaço designado livre.Este alertando de espaço livre baixo esperança de permitir que o tempo de DBA para resolver o problema de espaço livre antes torna-se crítico, e faz com que os processos a falhar. Note-se que o código acima tem um limite de espaço livre diferente para cada unidade.

Outro uso do xp_fixeddrives poderia ser a de controlar o uso de espaço em disco ao longo do tempo. Diga-lhe para onde se reúnem as informações de espaço livre em intervalos regulares, por exemplo, semanal, e armazená-lo em uma tabela de banco de dados. Isso poderia ser feito usando o método acima para preencher a tabela # FreeSpace temporária. Ao reunir informações sobre o espaço livre ao longo do tempo e armazená-lo em uma tabela permanente do SQL Server, você será capaz de produzir um gráfico de tendência, mostrando seu disco de horas extras consumo de espaço. Ao comparar a quantidade de espaço livre entre dois pontos no gráfico que será capaz de determinar o espaço de disco consumido entre os intervalos. Ter a taxa de consumo de espaço em disco é valioso no rastreamento quão rápido as suas aplicações estão consumindo seu espaço de disco livre disponível. Esta informação taxa de crescimento é importante para determinar quanto espaço em disco é necessário para suportar suas aplicações para o próximo ano.

Monitoramento de espaço em disco disponível e as taxas de crescimento são um par de coisas que um DBA deve ser espetáculo. Sem o acompanhamento você corre o risco de ficar sem espaço e causando problemas críticos para a sua aplicação. Caso você não tenha vindo a acompanhar a disponibilidade de espaço em disco e uso, então você pode considerar como você pode usar xp_fixeddrives para apoiar as necessidades do seu monitor.

quarta-feira, 11 de abril de 2012

Como zerar o campo autoincremento no MySQL (Indentity Increment)?

Para zerar o campo autoincremento no MySQL (Indentity Increment), você pode utilzar os seguintes comandos descritos abaixo:
1)
TRUNCATE TABLE [Nome da tabela]
2)
ALTER TABLE [tablename] AUTO_INCREMENT = [numero]
3)
ALTER TABLE [nome da tabela] CHANGE [nome da coluna] [nome da coluna] INT( 11 ) DEFAULT NULL AUTO_INCREMENT

* o INT (11) é apenas para representar um tipo de dados qualquer.

Abraço a todos !!!

terça-feira, 27 de março de 2012

Como configurar logon e utilizar o Crystal Reports com ASP.net e C#

Como configurar logon e utilizar o Crystal Reports com ASP.net e C#

Geralmente os desenvolvedores fazem os relatórios direcionados para um banco de dados, mas ao publicar no servidor ou quando o IP do servidor é modificado percebe-se que o relatório necessita de logon para poder ser aberto, o que é bastante desagradável para o usuário, criando uma vulnerabilidade para a aplicação. Para resolver este problema podemos configurar o relatório e a conexão em tempo de execução, para isto basta utilizar os métodos de configuração do crystal reports. 
Ao me deparar com estes problemas relacionados e realizar consultas na web e no msdn, utilizei o código abaixo faz a conexão de logon do relatório.

Obs.: O relatório pode ser desenvolvido apontado para qualquer servidor, mas na hora de execução as configurações serão feitas antes da abertura do mesmo.
Como utilizar :
1)
Crie um relatório no crystal reports (Add - New Item - Crystal report).
Informe o nome que no exemplo é "relatorio.rpt" e salve.
Configure os campos que serão exibidos no relatório e salve.
2)
Crie uma página aspx (Add - New Item - web form).
Informe o nome que no exemplo é "RelRelatorio.aspx" e salve.
Insira o componente CrystalReportViewer no design da página.
informe a propriedade ID, que no exemplo é "csRelatorio".
-- código do reportviewer com a exibição de conexão falsa.
Obs.: não esqueça de por no início "<" e no final o ">"
//CR:CrystalReportViewer ID="csRelatorio" runat="server" AutoDataBind="true" //EnableDatabaseLogonPrompt="False" EnableParameterPrompt="False"


3)
No código fonte C# da página RelRelatorio.aspx utilize os dois métodos informados no exemplo abaixo(ConfiguraCrystalReports e SetDBLogonForReport), depois no método page load chame o método ConfiguraCrystalReports.
Pronto o relatório já esta configurado.
//  ====  Codigo fonte da pagina "Aspx" que chama o relatorio "RPT"  ====
// configuração do Crystal reports 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;




namespace AplicativoWeb.Relatorios
{
public partial class RelRelatorio : System.Web.UI.Page
{
// Load da pagina 
protected void Page_Load(object sender, EventArgs e)
{
   ConfiguraCrystalReports();
}
// configuração do Crystal reports 
private void ConfiguraCrystalReports()
{
 ReportDocument rpt = new ReportDocument();
 string reportPath = Server.MapPath("relatorio.rpt");
 rpt.Load(reportPath);
 ConnectionInfo myConnectionInfo = new ConnectionInfo(); 
 myConnectionInfo.ServerName = "servidor"; // Utilize o nome do servidor ou IP
 myConnectionInfo.DatabaseName = "Nome_Banco_de_Dados";
 myConnectionInfo.UserID = "usuario";
 myConnectionInfo.Password = "senha";
 SetDBLogonForReport(myConnectionInfo, rpt);
 csRelatorio.ReportSource = rpt;
}
// Conexao de logon do relatorio 
private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument ArquivoReport)
{
Tables tables = ArquivoReport.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
  TableLogOnInfo tableLogonInfo = table.LogOnInfo;
  tableLogonInfo.ConnectionInfo = connectionInfo;
  table.ApplyLogOnInfo(tableLogonInfo);
}
}
}
}
Espero ter auxiliado aos demais usuários Asp.NET e C# na utilização de relatórios com o Crystal Reports.