Pesquisa

Pesquisa personalizada

segunda-feira, 28 de dezembro de 2009

Visualizando HTML no Componente Memo

website, delphi  , html  , TMemo  , TWebBrowser , navegador  , internet  , Microsoft
Nesta dica vamos ver como acessar um website através do Delphi e exibir o código HTML do mesmo, no componente TMemo. Para este exemplo está sendo utlizado o componente TWebBrowser que vai acessar o website e o código fonte em si. É possível fazer muitas coisas interessantes com o TWebBrowser até mesmo criar um navegador de Internet. Um detalhe adicional é que o componente TWebBrowser é baseado no Internet Explorer e a sua documentação está no site de desenvolvedores da Microsof.

Leia Mais: http://www.dicasdelphi.com.br/dica-vizualizando-html-no-componente-memo/

domingo, 13 de dezembro de 2009

Asp gerando .Doc

Pois neste artigo vamos mostrar uma forma de gerar arquivos no formato .doc em uma aplicação ASP .NET em tempo de execução usando somente os recursos da ASP .NET.

O projeto vai usar o recurso do LINQ to SQL para se mapear a tabela Customer do banco de dados Northwind.mdf e assim exibir uma relação de clientes em um componente Dropdownlist em uma página ASP.NET.

Após selecionar um cliente do dropdownlist e clicar no botão de comando será gerado um arquivo doc contendo uma tabela com alguns dados do cliente e um texto com os dados selecionados.

Abra o VWD e crie um novo web site no menu File-> New Web Site usando o template ASP .NET Web site e a linguagem Visual Basic com o nome de geraDoc;

A seguir vamos incluir um novo projeto a partir do menu File->Add New Project e na janela Add New Project selecione o template Class Library e informe o nome Entities e clique em OK;

Asp gerando .Doc, dinamico  , projeto  , vb.net  , dados  , clientes  ,

Leia Mais: http://www.macoratti.net/09/12/asp_gadd.htm

quarta-feira, 11 de novembro de 2009

Compatibilidade com PHP 6

register_globals, php6 , magic_quotes, Arrays longas, operador de referência, Dicas,  compativel ,
Desenvolvedores PHP, assim como todos os outros desenvolvedores, desejam que seus códigos sejam o mais compatível possível. Algumas vezes isso envolve olhar pro passado e ver se os scripts possuem retro-compatibilidade. Porém, algumas vezes, temos que olhar para o futuro para ver o que está mudando e entender o que podemos fazer para tornarmo-nos compatíveis.

PHP 6 é a versão mais recente do PHP. Porém, é importante já irmos considerando as mudanças que tomamos conhecimento até o momento e escrever scripts que serão compatíveis. São pequenas dicas que irão te ajudar a melhorar seus scripts e ainda ganhar uma moral.

Leia Mais

terça-feira, 6 de outubro de 2009

Adicionar o evento OnClick do DBGrid

dbgrid, delphi, programacao , onclick, evento

Meu programa precisa processar algo quando o usuário clicar no DBGrid em um determinado form. O problema é que o DBGrid não possui o evento OnClick. É possível adicionar este evento no DBGrid?

Solução:

É possível sim. Afinal é muito simples. Siga os passos abaixo
para resolver seu problema:

- Monte seu form normalmente, colocando o DBGrid e demais
componentes;


Leia Mais

terça-feira, 15 de setembro de 2009

sexta-feira, 4 de setembro de 2009

Construindo e configurando sites mais seguros

seguranca  , invasao , site  , microsoft  , desenvolvedor  , ataque  , web  , dinamico , banco de dados  , cartao de credito , comandos sql mal intencionadosUm site criado por engenheiros da Microsoft usando Microsoft .NET Framework, Microsoft Windows 2000 Advanced Server, Internet Information Services 5.0 e Microsoft SQL Server 2000 resistiu com sucesso a mais de 82.500 tentativas de ataque.


Este artigo explica como a solução foi construída e configurada, e mostra boas práticas para que administradores de sistemas possam proteger suas soluções.



Introdução

Indivíduos espalhados pelos Estados Unidos foram, convidados a tentar comprometer a segurança dos sites resultantes em troca de prêmios em dinheiro. As brechas aceitáveis consistiam em ataques cruzados com scripts, exposição de código fonte de página web dinâmica, desfiguração de página web, postagem de comandos SQL mal intencionados nas bases de dados e roubo de dados de cartões de crédito das bases de dados utilizadas.

Leia na íntegra

terça-feira, 1 de setembro de 2009

Economizando processamento do servidor - PHP

economizar, servidor, processamento, sql, uploda, https
Um assunto que 90% dos programadores não se preocupam é sobre a economia ou ganho de desempenho no processamento do servidor.

Mas atualmente, é item OBRIGATÓRIO o fato de que é preciso saber e conhecer, para melhorar a performance de um servidor web.

Este artigo vale para: administradores de servidor que programam ou não e programadores que administram servidores ou não. E até mesmo pro seu chefe que acha que o servidor está lento.

O artigo abordará as coisas mais importantes para economizar processamento do do servidor.

Leia na Integra

sexta-feira, 28 de agosto de 2009

Video-player em Action Script 3 no Flash


Neste artigo explica como criar um player de vídeo utilizando ActionScript 3 no Flash.

Tutorial:
Geralmente usam usa-se componentes prontos do Flash para rodar seus vídeos, como o FLVPlayback, mas não sabem que é relativamente fácil criar um próprio player, podendo assim customizar como quiser o seu layout.
Neste tutorial, veremos como criar o player e como adicionas alguns controles no filme como: play, stop, pause e reset.


Leia Mais

terça-feira, 25 de agosto de 2009

DataGrid no Flex com PHP e MySQL

flex  , iis  , apache  , php  ,  mysql  , amfphp  , web
Objetivo é aprendermos a popular um DataGrid, utilizando o PHP como camada intermediária entre o Flex e o MYSQL. Para tanto, utilizaremos o AMFPHP, que é uma alternativa open-source do Flash Remoting.

Pré-requisitos:

01. Noções básicas do Flex 2.0;
02. Possuir um servidor (IIS ou Apache) rodando em localhost;
03. Servidor MYSQL (também em localhost);
04. AMFPHP instalado e configurado.

Começaremos com o AMFPHP, que você encontra em www.amfphp.org. Após ter baixado o pacote, descompacte-o em uma pasta qualquer e torne-a compartilhada para web (sugestão c:\amfphp).

A estrutura deverá ficar como a seguir:

Leia Mais

segunda-feira, 17 de agosto de 2009

Dicas de Firebird - Backup e restore com gbak

firebird, dicas, backup, banco de dados

O InterBase/FireBird possui uma ferramenta de linha de comando específica para fazer e restaurar cópias de segurança (backup). No Windows o nome do programa é gbak.exe e no Linux seu nome é gbak (sem extensão). Em ambos os sistemas a localização deste arquivo é o sub-diretório bin do InterBase/FireBird.

As sintaxes básicas deste comando são:

Para fazer um backup:

gbak -b -user usuario -password senha arquivo_banco arquivo_backup

Para restaurar um backup:

gbak -r -user usuario -password senha arquivo_backup arquivo_banco

Onde:

* usuario: é o nome de login do usuário (geralmente SYSDBA).
* senha: é a senha do usuário.
* arquivo_banco: é o arquivo de banco de dados (geralmente com extensão .gdb).
* arquivo_backup: é o arquivo de backup (geralmente com extensão .gbk).

Exemplo de backup:

gbak -b -user SYSDBA -password masterkey c:\sistema\dados.gdb c:\backup\dados.gbk

Exemplo de restore:

gbak -r -user SYSDBA -password masterkey c:\backup\dados.gbk c:\sistema\dados.gdb

terça-feira, 4 de agosto de 2009

jQuery

jQuery , ajax  , php  , web  , javascripts  , site  , página web
jQuery é uma excelente e leve biblioteca para desenvolvimento rápido de javascripts que interagem com sua página html, com ela podemos atribuir eventos, definir efeitos, alterar ou criar elementos na página, dentre diversas outras infinidades de ações.

Existem ainda vários plugins já feitos em jQuery que nos auxiliam em validações ou máscaras de formulário.

Maravilha, não acham?

E como usar o jQuery?

Antes de tudo devemos baixar a versão da biblioteca, que pode ser uma compilada (mais leve) ou o fonte puro (um pouco maior).

Leve - http://code.google.com/p/jqueryjs/downloads/ detail?name=jquery-1.2.2.pack.js
Não comprimida - http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.2.2.js

Após baixarmos o jQuery, teremos que incluir a sua referência no cabeçalho da página html:

Leia Mais

sexta-feira, 31 de julho de 2009

Dicas Gerais de Sql Server

sql server, dicas, case, filtro, instrucao, registro aleatorio
Registros aleatórios
Vamos supor que queremos retornar 10 registros aleatórios de uma tabela. Como podemos fazer isto?

A partir do SQL Server 7.0, foi implementada uma uma função chamada NEWID(). Esta função gera um identificador interno aleatório. Para retornar registros aleatórios, podemos fazer assim:

SELECT TOP 10 CAMPO1 , CAMPO2 FROM TABELA1
ORDER BY NEWID()

Para cada registro, um valor aleatório diferente é gerado. A ordem do resultado é feita por este valor e a cada execução temos 10 registros diferentes, pois a cláusula TOP limita a quantidade de registros retornados.

Instruções dinâmicas
O SQL Server permite a construção de instruções dinâmicas a partir do comando EXECUTE(). Funciona assim: montamos uma string com o comando que queremos executar dinamicamente e chamamos a função EXECUTE(). Atenção: neste caso, devemos obrigatoriamente utilizar os parênteses:

EXECUTE(“SELECT CAMPO 1 FROM TABELA1 WHERE CAMPO2 = 3”)

Valor de campo e filtro condicional
Nem sempre queremos mostrar o conteúdo de um campo do jeito que ele está armazenado no banco. Por exemplo: Se o conteúdo de um campo for maior que 10, queremos que seja retornada a string ‘muito’. Se for menor ou igual a 10 retorna ‘pouco’.

Fazemos isto utilizando um CASE (estrutura condicional, como um IF de uma linguagem de programação) para o conteúdo do campo:

SELECT CAMPO1 , TIPO = CASE WHEN CAMPO_VALOR > 10 THEN 'MUITO'
WHEN CAMPO_VALOR <= 10 THEN 'POUCO'
END , CAMPO3
FROM TABELA1

Para cada registro o SQL Server fará uma comparação para identificar qual valor deve ser retornado. Tome cuidado ao utilizar o CASE desta maneira pois pode haver perda de performance na instrução por que a cada linha retornada, um pequeno processamento deve ser efetuado.

Podemos também utilizar o CASE para um filtro da instrução (cláusula WHERE):

SELECT CAMPO1 , CAMPO2 FROM TABELA1
WHERE CAMPO2 > CASE CAMPO1 WHEN 'A' THEN 10
WHEN 'B' THEN 5 END

No exemplo acima, quando o valor do CAMPO1 for igual a ‘A’, somente os registros do CAMPO2 que forem maiores que 10 serão retornados. Quando o valor do CAMPO1 for igual a ‘B’, somente os registros do CAMPO2 que forem maiores que 5 serão retornados.

Leia Mais

quinta-feira, 23 de julho de 2009

CSS

css, programacao web, php, html, folha de estilo

Neste artigo relaciono algumas dicas para projetar Folhas de Estilos e espero que elas se constituam em uma fonte de consulta útil para os que se iniciam nas CSS.

1o.-) Organize
2o.-) Ordene
3o.-) Escolha
4o.-) Agrupe
5o.-) Use
6o.-) Tire proveito
7o.-) Escreva
8o.-) Família
9o.-) Nomes
10o.-) Background-image
11o.-) Links
12o.-) Sublinhados
13o.-) Habitue-se


Leia Mais

domingo, 19 de julho de 2009

Mysql no Desktop

mysql, desktop, windows
O MySQL é o banco de dados mais conhecido no mundo do software livre. Basicamente, a notoriedade desse produto se deve às aplicações web, nas quais o programa é utilizado, quase sempre em parceria com a linguagem PHP, em ambiente Linux. Talvez por isso se tenda a acreditar que o MySQL seja um banco de dados específico para a internet. Não é verdade. Você pode usá-lo em seu desktop, inclusive com o Windows. Neste tutorial, vamos mostrar como instalar o MySQL e com ele criar e gerenciar um banco de dados numa máquina Windows. Uma das vantagens técnicas do MySQL é ser um produto multiplataforma. Assim, você pode montar com ele um banco de dados no ambiente Windows e depois, se for o caso, transferi-lo para o Linux, Mac OS X ou outros sistemas Unix.


Para acompanhar esta tarefa, você vai precisar ter um micro com Windows - 98, Me, NT, 2000 ou XP, o MySQL e um cliente gráfico para o gerenciador de bancos de dados. O MySQL incorpora os recursos para criar e manipular bases de dados, mas não tem uma interface visual. O programa pode ser usado sozinho, mas desse modo cada instrução enviada ao motor de banco de dados deve ser digitada na forma de linhas de comando, em linguagem SQL. Aí entram as comodidades oferecidas por um cliente gráfico.

Leia Mais

quarta-feira, 15 de julho de 2009

PHP 6 A revolução

php 6, programação, dicas, artigos, php
Quando agente começou a se acostumar com o PHP 5 já esta mudando, não é? Como falam a "felicidade de pobre dura pouco.". Mais não vamos desanimar, e aliás o PHP 6 já a um tempinho atrás á ser desenvolvido, e uma das promessas é o suporte ao Unicode, que vai permitir a criação e gestão mais fácil de aplicações internacionalizáveis.

O maior colaborador do PHP o Derick Rethans, falou sobre o PHP 6 á um tempinho atrás. Com o PHP 5.1 vindo aí, fica a pergunta, como vão chamar a próxima versão do PHP??? O Derick deu a sugestão de PHP 6 que já é oficial, isso porquê vai ter uma grande mudança no suporte ao Unicode.

Leia Mais

segunda-feira, 6 de julho de 2009

Dicas de Segurança com Ajax


Com a introdução do Ajax e o conceito de aplicação web o cliente passou a ter uma importancia maior. O javascript passou usado em larga escala e muitos dos dados que ficavam "escondidos e seguros" no servidor agora estão expostos no cliente. Programadores desavisados utilizam Ajax sem o mínimo de segurança expondo assim partes críticas de sua aplicação.

Leia Mais

segunda-feira, 29 de junho de 2009

Trigger em Firebird

banco de dados, firebird, trigger, insert, update, delete
Neste Post, vou descrever um pouco sobre como trabalhar com trigger utilizando o o Banco de Dados Firebird. Meu exemplo vai de encontro ao problema do processo direto inverso, que pode resolver se realizado com Trigger, mas também espero que sirva para outras implementações.

O que é um Trigger?
R: Trigger são gatilhos ligados a enventos em tabelas no Banco de Dados. Este gatilhos são disparados automaticamente sempre que acontece o evento na tabela ao qual o trigger está relacionado. Triggers não tem parâmetros de entrada. Triggers não retornam valores.

Os Eventosque disparam um Trigger, podem ser de:
1) Insert – Ao inserir um registro na tabela.
2) Update – Ao Modificar um registro da tabela.
3) Delete – Ao deletar um registro da tabela.

Continue Lendo

sexta-feira, 26 de junho de 2009

Usando a porta infravermelha com o Compact Framework

irda, infra vermelho, AJAX, PHP, MYSQL, SQLSERVER, VB.NET, DELPHI, COMPACT FRAMEWORK, FIREBIRD
Com todo o oba-oba ao redor do Wi-Fi, do Bluetooth e de outras tecnologias sem-fio, é fácil esquecer a um das formas mais simples e comuns de comunicação sem fio: a infravermelha. Qualquer um que já usou um controle remoto usou o infravermelho! Como usa-se a luz como meio de transporte, é necessário que um ponto “enxergue” o outro, mas mesmo com essa limitação, o infravermelho está cada vez mais popular em aparelhos como câmeras digitais, Celulares, PDA’s e NoteBooks.

Neste artigo será mostrado como usar a porta infravermelha de seu Smartphone (funciona também para PocketPC’s) para transferir informações entre esses dispositivos. Iremos criar uma simples aplicação de Chat usando a classe IrDAClient do Compact Framework. Essa aplicação pode ser bastante útil em reuniões tediosas.

Leia Mais

quarta-feira, 17 de junho de 2009

Flex Open-Source

dicas, flex, adobe, Artigos: AJAX, PHP, MYSQL, SQLSERVER, VB.NET, DELPHI, COMPACT FRAMEWORK, FIREBIRD
Há cerca de 3 anos atrás o Flex era caríssimo. Agora ele é gratuito! Sim, desde que a Adobe comprou a Macromedia, em junho do ano passado, o Flex 2 SDK pode ser baixado, juntamente com 2 compiladores, 1 debugger e as classes de componentes do Flex. E ainda você pode ler todo o help no LiveDocs.

Não que a Adobe decidiu liberar o código fonte do Flex 2 SDK* da noite para o dia, pois isso já havia sido cotado desde a época que o projeto Tamarin foi anunciado, porém não se espera que isso aconteceria até o final do ano.

Quais os benefícios reais para quem está desenvolvendo com Flex?

Se você já consegue desenvolver vários projetos e quer demonstrar novos componentes, estender novas classes, criar novas IDE's que usem e abusem do uso do SDK, você terá privilégios e também terá uma base para fazer suas reportagens de bugs (bugbase), criar novos builds e conseqüentemente novas distribuições como acontece com o Linux.

Mas lembre-se "open-source" não quer dizer que é totalmente gratuito. Programas que fazem parte da cartela de produtos da Adobe, como: Flex Builder, Flex Charts, LiveCycle Data Services, Flash CS3 e alguns produtos que se integram ao Flex, ainda vão continuar sendo pagos.

Não existe por enquanto previsão para que o Flex Charts seja gratuito. Você ainda vai precisar pagar para usá-los.

Leia Mais

quarta-feira, 10 de junho de 2009

Gráfico Cascata no Flex

Gráficos, Cascata, Flex, Apoio a Decisão, BI, Artigos: AJAX, PHP, MYSQL, SQLSERVER, VB.NET, DELPHI, COMPACT FRAMEWORK, FIREBIRD
Após um longo período sem artigos, volto à ativa com um bem interessante e bastante usual para quem desenvolve sistemas de apoio à decisão e sistemas de business intelligence.

O gráfico de cascata (waterfall, ou flying bricks chart, em inglês) é uma ferramenta que facilita a demonstração de parcelas de um valor. Ele é muito utilizado na apresentação da divisão da receita e exibição do que resta de lucro em DRE, da entrada de caixa ao saldo final em demonstrativos de Fluxo de Caixa, mas pode-se utilizá-lo em qualquer situação em que seja necessário mostrar a "quebra" de um número.

Neste artigo vou demonstrar como desenvolver um gráfico de cascata em Adobe Flex, estendendo um ColumnChart de forma simples.

Leia Mais

domingo, 7 de junho de 2009

Migrar do Delphi 7 para o Delphi 2009

Artigos:Migração,  AJAX, PHP, MYSQL, SQLSERVER, VB.NET, DELPHI, COMPACT FRAMEWORK, FIREBIRD
A Rede de Desenvolvedores da Embarcadero tem um documento de 60 páginas listando todas as diferenças desde o Delphi 7 até o Delphi 2009. Então se você está com dúvidas para baixar o Delphi 2009 por ser um lançamento da Embarcadero vale a pena conferir este documento e consultar todas as diferenças entre o Delphi 7 e o Delphi 2009. É bom isso também pois quando você realizar um upgrade e abrir os seus projetos antigos no Delphi 2009 você não tenha surpresas não muito legais, e se caso você tiver vai ser mais fácil encontrar solução para o problema de troca da versão 7 para a versão 2009.




terça-feira, 2 de junho de 2009

Diferenças entre o VB6 e o VB.NET

Artigos: AJAX, PHP, MYSQL, SQLSERVER, VB.NET, DELPHI, COMPACT FRAMEWORK, FIREBIRD
Linguagem e Sintaxe

1 . Mudanças

Esses topicos representam características que existiam, mas são tratadas de forma diferente:

* Variaveis

VB6 VB.NET
Integer Short
Long Integer
Currency Decimal
Variant Object


terça-feira, 26 de maio de 2009

Gerar dicionário de dados SQL Server 2000

Artigos: AJAX, PHP, MYSQL, SQLSERVER, VB.NET, DELPHI, COMPACT FRAMEWORK, FIREBIRD
Script SQL Server 2000 para gerar dicionário de dados do seu banco de dados
SQL Server

Este script te permite gerar um dicionário de dados para qualquer banco de dados SQL Server 2000. Você pode colocá-lo no query analizer, escolher o banco de dados e gerar ou se for de sua necessidade criar uma stored procedure. O fato de ser apenas para SQL Server 2000, é porque existe um local onde você pode colocar descrições para os campos das tabelas do banco que não existia no SQL Server 7.0

Segue o código:

SET NOCOUNT ON

DECLARE @Id_Tabela int, @Nome_Tabela varchar(50)
PRINT 'BANCO DE DADOS: ' + UPPER(db_name())
PRINT ''
DECLARE tabelas CURSOR FOR SELECT Name, ID FROM sysobjects WHERE xtype = 'U' AND Name <> 'dtProperties'
ORDER BY Name
OPEN tabelas
FETCH NEXT FROM tabelas INTO @Nome_Tabela, @Id_Tabela
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'TABELA: ' + UPPER(@nome_tabela)
select nome_campo = LEFT(RTRIM(LTRIM(sc.name)),40),
tipo_campo = LEFT(RTRIM(LTRIM(st.name)),20), tamanho_campo = sc.length, descricao_campo = ISNULL(sp.value,'')
FROM syscolumns sc, systypes st, sysproperties sp WHERE sc.id = @Id_Tabela AND sc.xtype = st.xtype
and sc.colid *= sp.smallid and sp.id = @Id_Tabela

ORDER BY sc.colid
PRINT ''
FETCH NEXT FROM tabelas INTO @Nome_Tabela, @Id_Tabela
END
CLOSE tabelas
DEALLOCATE tabelas

SET NOCOUNT OFF


Leia Mais

quarta-feira, 20 de maio de 2009

Usar MySQL com PHP

Artigos: AJAX, PHP, MYSQL, SQLSERVER, VB.NET, DELPHI, COMPACT FRAMEWORK, FIREBIRD
A Base de Dados mais comum para a linguagem php é o mysql, podes fazer o download no site mysql.com. No entanto podes utilizar outras bases de dados como, oracle, Sybase, mSQL, PostgreSQL ou qualquer um com ligação ODBC. Neste tutorial vamos utilizar como padrão o mysql.

Para o php interagir com uma base de dados SQL, independente da base de dados, existem três comandos básicos que devem ser utilizados: um que faz a ligação com o servidor da base de dados, um que seleciona a base de dados a ser utilizada e um que executa uma "query" SQL.

Ligação com o servidor


A ligação com o servidor da base de dados mySQL em PHP é feita através do comando mysql_connect, que tem a seguinte sintaxe:

int mysql_connect(string /* endereço do servidor */ , string /* nome do utlizador */ , string /*password*/ );

Os parâmetros são bastante simples: o endereço do servidor, o nome do utlizador e a password para a ligação. A função retorna um valor inteiro, que é o identificador da ligação estabelecida e deverá ser armazenado numa variável para ser utilizado depois. No nosso exemplo, temos como servidor da base de dados a mesma máquina que corre o servidor http, como login do utlizador "root" e password "teste":

$ligacao = mysql_connect("localhost", "root", "teste");

Assim, se a ligação for bem sucedida (existir um servidor no endereço especificado que possua o utlizador com a password fornecida), o identificador da ligação fica armazenado na variável $ligacao.

Os comandos para outras base de dados são diferentes, mas usam padrões parecidos.

Seleção do base de dados


Uma vez ligadoo, é preciso selecionar abase de dados existente no servidor com o qual desejamos trabalhar. Isso é feito através da função int mysql_select_db, que tem a seguinte sintaxe:

int mysql_select_db(string /*nome da dase de dados*/, int /*ligacao*/ );

O valor de retorno é 0 se o comando falhar, e 1 no caso de sucesso. O nome da base de dados a selecionar é o primeiro parâmetro fornecido, seguido pelo identificador da ligação. Se este for omitido, o interpretador PHP tentará utilizar a última ligação estabelecida. Recomenda-se sempre escrever esse valor, para facilitar a legibilidade do código. No nosso exemplo, a base de dados a ser selecionada possui o nome "ged":

$ok = mysql_select_db("ged", $ligacao);

Após a execução deste comando qualquer consulta executada para aquela ligação utilizará a base de dados selecionada.

A variável $ok se for 0 deve lançar a informação não foi possível estabelecer uma ligação.

Execução de queries SQL


Após estabelecida a ligação e selecionada a base de dados a ser utilizada, quase toda a interação com o servidor mySQL pode ser feita através de consultas escritas em ANSI SQL ( Padrão Structured Query Language), com o comando mysql_query, que utiliza a seguinte sintaxe:

int mysql_query(string consulta, int [ligacao] );

O valor de retorno é 0 se falhar ou 1 no caso de sucesso. Sucesso aqui significa que a consulta está sintaticamente correcta e foi executada no servidor. Nenhuma informação sobre o resultado é retornado deste comando. No caso da consulta ser um comando SELECT, o valor de retorno é um valor interno que identifica o resultado, que poderá ser tratado com a função mysql_result() ou outras. A string query não deve conter ponto-e-vírgula no final do comando, e o identificador da ligação é opcional. Vamos criar uma tabela como exemplo:

$cria = "CREATE TABLE exemplo (codigo INT AUTO_INCREMENT PRIMARY KEY, nome VARCHAR(40), email VARCHAR(50))";

mysql_query($cria, $ligacao);


Ou

$insere = "INSERT INTO exemplo (nome,email) VALUES ("Fulano","teste@email.com.br");

mysql_query($insere, $insere);


Se o comando retornar uma consulta, seria necessário guardar essa consulta numa variavel como vector. Ou mesmo que não retorne uma consulta, mas se for necessário saber se realmente o comando foi executado, podes usar uma variável para testar.

$consulta = "SELECT nome, email FROM exemplo WHERE nome = 'Teste'";

$resultado = mysql_query($consulta, $ligacao);

printf("Nome: ", mysql_result($resultado,0,"nome"), "
\n");
printf("e-mail: ", mysql_result($resultado,0,"email"),"
");

quarta-feira, 13 de maio de 2009

Tutorial De Join

Artigos: AJAX, PHP, MYSQL, SQLSERVER, VB.NET, DELPHI, COMPACT FRAMEWORK, FIREBIRD

Existem dois tipo de JOIN, o INNER JOIN e o OUTER JOIN. o OUTER JOIN pode ser de tres tipos: LEFT OUTER JOIN, RIGHT OUTER JOIN ou FULL OUTER JOIN. Ou, pra simplificar: LEFT JOIN, RIGHT JOIN ou FULL JOIN.

Leia Mais

quarta-feira, 6 de maio de 2009

Otimização MySql

Artigos: AJAX, PHP, MYSQL, SQLSERVER, VB.NET, DELPHI, COMPACT FRAMEWORK, FIREBIRD
Desempenho. Essa é a palavra chave que orienta e estimula o desenvolvimento do popular sistema de gerenciamento de banco de dados MySQL. Sendo considerado também o fator determinante para o seu sucesso, é o desempenho que se sobressaí sobre as demais qualidades (e defeitos) desse banco de dados.

Entretanto, por si só o MySQL não irá garantir a melhor performance para uma aplicação, pois assim como todo banco de dados, o desempenho em relação a aplicação depende de vários conceitos inter-relacionados. Durante uma análise, conhecer esses conceitos e aplicá-los poderá, em diversos casos, fabricar resultados mais positivos na performance do sistema do que simplesmente adicionar memória RAM.


Leia Mais

quinta-feira, 30 de abril de 2009

FirePHP: Depurador de códigos PHP

Artigos: AJAX, Dicas PHP, Depurador
Muitos já estão acostumados com a utilização do FireBug para depurar os seus códigos Javascript, HTML e CSS. Mas e o que fazer com o PHP? Nada de quebrar a cabeça. Agora temos mais uma grande ajuda no desenvolvimento Web. O FirePHP!

Utilizado a partir do próprio FireBug, o FirePHP é uma ferramenta interessante para depurar códigos de scripts PHP. Para instalar a extensão é só acessar

https://addons.mozilla.org/pt-BR/firefox/search?q=FirePHP&cat=all

Leia Mais

sexta-feira, 24 de abril de 2009

Oracle compra a Sun Microsystems por US$ 7,4 bilhões

Java, Sun, Oracle, Mercado de TI
A desenvolvedora de softwares empresariais Oracle fechou um acordo para comprar a Sun Microsystems por US$ 7,4 bilhões, anunciaram as empresas nesta segunda-feira (20). O negócio foi aceito por unanimidade pelo conselho de diretores da Sun, mas ainda precisa de aprovação dos acionistas da empresa e de entidades reguladoras de comércio.

"A compra da Sun transforma a indústria de TI, combinando softwares empresariais e sistemas de computador para situações críticas", afirma Larry Ellison, executivo-chefe da Oracle, em nota. O negócio vem à tona cerca de duas semanas depois que a IBM encerrou as negociações com a Sun.

Scott McNealy, presidente do conselho da Sun, classificou o acordo como "um marco nessa indústria".

A compra une duas aliadas históricas. Segundo o jornal "The New York Times", historicamente grande parte das vendas da área de banco de dados da Oracle era feita em cooperação com servidores da Sun. Entretanto nos últimos anos a Oracle tornou HP e Dell parceiras mais fortes, fazendo com que o volume de negócios da Sun diminuísse.


Será que o Java vai ser pago?



Fonte: Folha OnLine

segunda-feira, 20 de abril de 2009

Upload com Ajax

Dicas Ajax, PHP, Web, Internet
Upload usando apenas AJAX não é viável no ambiente da Internet pois, por motivos de segurança, os navegadores por padrão não dão acesso ao sistema de arquivos para o JavaScript (se quiser descobrir como ativar esta característica não padrão, leia aqui, mas acredito não ser muito útil ajax upload dessa forma).

Esta minha função utiliza técnicas que envolvem iframes. Este post aqui é só para o código.

Leia Mais

segunda-feira, 13 de abril de 2009

Dicas Firebird

Firebird
Criar e usar domínios (domain's)

No InterBase e FireBird domínios são como tipos de dados. Tais domínios têm grande semelhança com o conceito de domínio aplicado à matemática, ou seja, um domínio define um conjunto de valores válidos para uma dada situação.

Podemos criar qualquer banco de dados sem fazer uso explícito de domínios. No entanto usar domínios explicitamente pode deixar o banco de dados mais organizado, com regras claras e bem definidas, e ainda conseguir uma economia substancial de mão de obra na construção e manutenção do banco.

Para demonstrar a utilidade dos domínios, vamos criar dois exemplos.

Exemplo 1 - Sem uso explícito de domínios:

CREATE TABLE Cliente(
Codigo INTEGER NOT NULL,
Nome VARCHAR(40) NOT NULL,
Fone VARCHAR(20),
Fax VARCHAR(20),
Celular VARCHAR(20),
Renda NUMERIC(9,2) DEFAULT 0 NOT NULL,
CONSTRAINT PK_Cliente PRIMARY KEY(Codigo),
CONSTRAINT CHK_Cliente_Codigo CHECK(Codigo > 0),
CONSTRAINT CHK_Cliente_Renda CHECK(Renda >= 0));

Exemplo 2 - Com uso explícito de domínios:

CREATE DOMAIN DM_ChavePrimaria INTEGER NOT NULL CHECK(VALUE > 0);
CREATE DOMAIN DM_NomePessoa VARCHAR(40) NOT NULL;
CREATE DOMAIN DM_Fone VARCHAR(20);
CREATE DOMAIN DM_Renda NUMERIC(9,2) DEFAULT 0 NOT NULL CHECK(VALUE >= 0);

CREATE TABLE Cliente(
Codigo DM_ChavePrimaria,
Nome DM_NomePessoa,
Fone DM_Fone,
Fax DM_Fone,
Celular DM_Fone,
Renda DM_Renda,
CONSTRAINT PK_Cliente PRIMARY KEY(Codigo));

Comentários:

* O benefício imediato do uso explícito de domínios é a organização do código que define as tabelas.
* Como um mesmo domínio será usado em várias tabelas (exemplo: DM_NomePessoa), ganharemos muito tempo ao definir outras tabelas que comporão o banco de dados.
* O domínio DM_Fone é um exemplo que demonstra como um mesmo domínio pode ser usado para colunas diferentes que possuem conteúdos semelhantes.
* Os domínios DM_ChavePrimaria e DM_Renda mostram aspectos mais interessantes na declaração de domínios, tais como a especificação de um valor padrão (DEFAULT) e regras para validação (CHECK).
* Se mais tarde resolvermos alterar os nomes de pessoas para 50 caracteres, ou seja, VARCHAR(50), bastará alterar a definição do domínio DM_NomePessoa e todos os campos definidos com este domínio serão automaticamente ajustados. Neste caso bastaria o comando ALTER DOMAIN DM_NomePessoa TYPE VARCHAR(50).
* Nos bancos de dados que crio, uso domínios explicitamente para todos os campos de todas as tabelas, mesmo onde aparentemente são desnecessários. Mas é bom lembrar que domínios mal definidos podem trazer mais prejuízos do que benefícios. Portanto, antes de sair criando domínios deliberadamente, faça um estudo minucioso do banco de dados a ser construído.

Autor: Daniel P. Guimarães
Home-page: www.tecnobyte.com.br

quinta-feira, 2 de abril de 2009

Criando um cliente para Amazon Web Services (AWS) no Pocket PC

Artigos: AJAX - PHP - MYSQL - SQLSERVER - VB.NET - DELPHI - COMPACT FRAMEWORK - FIREBIRD
Recentemente eu adquiri um dispositivo IPAQ PocketPC, e depois de checar todos os aplicativos nativos, veio a idéia de criar meu primeiro programa usando o .Net Compact Framework (.Net CF).

Entre várias possibilidades, eu decidi pôr em prática uma idéia que sempre vinha à minha cabeça quando eu visitava livrarias em busca de livros técnicos importados, que é a possibilidade de checar a cotação (ou seja, o número de "estrelas") que o livro tem no site Amazon.com, que é um bom indicativo se o livro é bom ou se é uma "bomba".

A boa notícia é que a Amazon possui um conjunto de web services muito completo, "Amazon Web Services"(AWS), que permite checar todas as informacões relativos a livros, CDs e DVDs, bem como jogos e tudo mais que é vendido no site.

Tal aplicativo exige conexão à Internet, naturalmente, mas acredito ser uma questäo de tempo até as grandes lojas e shopping-centers no Brasil oferecerem serviço de internet wireless (Wi-Fi) para seus clientes, como já é comum nos EUA e Europa.

Apesar de ter sido escrito com .Net CF, o código que você verá abaixo é virtualmente idêntico ao que seria necessário em aplicacões ASP.Net e Windows.Forms (com excecão da interface com o usuário), e para quem não possui dispositivos móveis vale a pena lembrar que é possível usar emuladores para testar seus programas.

Vamos lá então!

Leia Mais

quinta-feira, 26 de março de 2009

Função para gerar senhas aleatórias

Artigos: AJAX - PHP - MYSQL - SQLSERVER - VB.NET - DELPHI - COMPACT FRAMEWORK - FIREBIRD

Essa é uma dica simples e que para os que trabalham com redes sem fio pode ser muito útil. O que a função faz é gerar um string com caracteres hexadecimais, mas que podem ser adaptados para qualquer outro tipo. Esta função recebe como parâmetros o comprimento da senha como um integer, e outros três parametros do tipo boolean que indicam se estarão presentes letras minúsculas, maiúsculas e números.

Leia Mais

segunda-feira, 23 de março de 2009

Preenchimento automatico da combo a medida que se digite

Artigos: AJAX - PHP - MYSQL - SQLSERVER - VB.NET - DELPHI - COMPACT FRAMEWORK - FIREBIRD
Quando voce digita uma letra em uma combo, ele mostra o primeiro item que o conteudo contenha o que voce digitou. Exemplo de em digitar 'C' ele vai mostrar o primeiro item com C (Carlos) e o cursor ficara parado entre o C e o A, a pendida que eu vou digitando ele vai preenchento com um item que satisfaca o que eu digitei.
Igual a digitacao dos enderecos das paginas no explorer.

No seu formulario coloque:

Leia Mais

sexta-feira, 13 de março de 2009

Script SQL Server 2000 para gerar dicionário de dados do seu banco de dados

Artigos: AJAX - PHP - MYSQL - SQLSERVER - VB.NET - DELPHI - COMPACT FRAMEWORK - FIREBIRD

SQL Server

Este script te permite gerar um dicionário de dados para qualquer banco de dados SQL Server 2000. Você pode colocá-lo no query analizer, escolher o banco de dados e gerar ou se for de sua necessidade criar uma stored procedure. O fato de ser apenas para SQL Server 2000, é porque existe um local onde você pode colocar descrições para os campos das tabelas do banco que não existia no SQL Server 7.0

Leia Mais

terça-feira, 10 de março de 2009

Dicas MySql: Combinando INSERT + SELECT para duplicação de registros

Artigos: AJAX - PHP - MYSQL - SQLSERVER - VB.NET - DELPHI - COMPACT FRAMEWORK - FIREBIRD
Essa semana surgiu a necessidade de duplicar um registro numa de minhas tabelas do banco de dados MySQL. A solução mais prática encontrada foi, ao invés de criar um INSERT por extenso copiando os valores do registro a ser duplicado, combinar o uso do INSERT com SELECT.

Vale lembrar que essa dica é para aqueles que já possuem uma certa experiência em comandos SQL.

sexta-feira, 6 de março de 2009

Contador de visitas php/Mysql

Artigos: AJAX - PHP - MYSQL - SQLSERVER - VB.NET - DELPHI - COMPACT FRAMEWORK - FIREBIRD
O que vamos fazer?
Um simples contador de visitas que utiliza MySQL.

Como funciona?
O sistema pega a data atual e o ip do visitante, após pegar esses dados ele verifica se os mesmo ja forma inseridos na tabela. (Verifica a data e o ip / Compara data atual + ip visitante com todos os registros da tabela)

- Criei uma classe chamada "visita", nela possui as funções:
visita();
Funciona como construtor, pega o ip do visitante e a data atual e armazena nas variaveis $ip e $data;
conectar();
Conexão com o banco
verificaVisitante();
Essa função faz as comparações, verifica se ja visitou. Caso não tenha visitado, insere novo registro.
imprime();


Seleciona todos os registros da tabela e imprime na tela


segunda-feira, 2 de março de 2009

SCRIPT PARA MOSTRAR FOTOS COM TRANSIÇÃO

Artigos: AJAX - PHP - MYSQL - SQLSERVER - VB.NET - DELPHI - COMPACT FRAMEWORK - FIREBIRD


Existem muitos tipos de sites onde as fotos são importantes para o sucesso do mesmo. O site de um hotel precisa ser repleto de bonitas fotos. Mas como apresentar estas fotos de forma elegante para os visitantes? Este script que você encontrará no site http://lifedraft.de/projekte/dhonishow/ faz isto muito bem. Ele é perfeito para colocar uma apresentação de fotos na capa de um site de hotel, restaurante ou qualquer que se venda através de uma bela foto. Basta visitar o site para ver na mesma página uma demonstração, o botão para download e alguns códigos prontos para fazer o script funcionar.



Leia Mais

sábado, 28 de fevereiro de 2009

Utilizando SGBD FireBird 2.0 com ADO.NET

Artigos: AJAX - PHP - MYSQL - SQLSERVER - VB.NET - DELPHI - COMPACT FRAMEWORK - FIREBIRD
ADO.NET é uma “reconstrução”, do antigo ADO, sendo completamente integrado com o .NET Framework, disponibilizando um grande número de classes e possibilitando em uma comunicação bem mais fácil com os SGBD’s.
Ou seja, ele nada mais é que um conjunto de classes definidas pelo .NET Framework, que auxilia na comunicação com os SGBD’s.

Vantagens de Usar o ADO.NET

Algumas das vantagens em utilizar o ADO.NET é que você contará com uma alta escalabilidade, desempenho, segurança, performance em seu sistema e maior produtividade.
Agora com o ADO.NET, ao utilizar um DataSet, o mesmo, por padrão, trabalha desconectado. Os dados ficam armazenados em um cachê local, assim a conexão pode ser fechada e o cliente pode trabalhar desconectado, e caso seja necessário uma atualização dos dados, basta efetuar uma nova conexão.


Leia Mais

terça-feira, 24 de fevereiro de 2009

Instalando o .NET Compact Framework 2.0 SP2 em seu Dispositivo Móvel

Artigos: AJAX - PHP - MYSQL - SQLSERVER - VB.NET - DELPHI - COMPACT FRAMEWORK - FIREBIRD
Pocket PC, Celulares ou qualquer dispositivo móvel com Windows CE 5.0 ou maior.

Este artigo é um passo a passo para você instalar o framework 2.0 Service Pack 2.0 em seu dispositivo. É de simples entendimento.

Requisitos:

- Sistema operacional Windows CE 5.0;

- Dispositivo Móvel (pocket PC, celular);

- Active Sync instalado

Se seu sistema operacional do computador for Windows Vista, instale como active sync o programa ?Windows Móbile Device Center?, caso for Windows XP, instale o Active Sync 4.0 pra mais.


A instalação

1. Baixe o programa de 37.6 MB do site da Microsoft (link: http://www.microsoft.com/downloads/details.aspx?FamilyID=aea55f2f-07b5-4a8c-8a44-b4e1b196d5c0&DisplayLang=en)
2. Realize o procedimento de instalação normalmente em seu computador, porém conecte o seu dispositivo na porta USB e ative o sincronizador antes de começar a instalação do framework.
3. Depois da instalação e todo o procedimento corretamente instalado em seu computador verifique se está tudo correto e sem qualquer erro no adicionar e remover programas.
4. Caso não tenha instalado automaticamente em seu dispositivo móvel através do active sync a instalação terá que ser manual;
5. O framework instala muitas coisas em sua máquina (PC) e uma delas são arquivos .cab. Procure o arquivo .cab e transfira para o seu dispositivo móvel (NETCFv2.ppc.armv4.cab).
6. Localização do arquivo: C:\PROGRAMS FILES\MICROSOFT.NET\SDK\COMPACTFRAMEWORK\V2.0\WINDOWS CE\wce400\armv4\.....
7. Copie e cole esse arquivo em seu dispositivo móvel, não precisa de caminho específico.
8. Coloque o arquivo tanto na parte de arquivos ou na memória SD, tanto faz.
9. O mesmo possui relativamente 7 MB de tamanho.
10. Depois que o instalador estiver dentro do dispositivo móvel, clique uma vez e faça a instalação normalmente.


sexta-feira, 20 de fevereiro de 2009

Artigos: AJAX - PHP - MYSQL - SQLSERVER - VB.NET - DELPHI - COMPACT FRAMEWORK - FIREBIRD
Você pode animar seu form de uma forma divertida e sem componentes, apenas uma procedure.

/////PROCEDURE PARA EXECUTAR TAREFA

procedure TForm1.Animar_Form(Qtd_quadros,V_sleep,V_width,V_height: integer;status_fechar:Boolean);
var V_sub_width, V_sub_heigth, pt_medio : integer;
begin

with Form1 do begin

if status_fechar then begin ////////////FECHANDO O FORM


V_sub_width := (V_Width div qtd_quadros);
V_sub_heigth := (V_Height div qtd_quadros);
pt_medio := 1;

while pt_medio <= (qtd_quadros div 2) do begin pt_medio := pt_medio + 1; Top := Top + V_sub_heigth; Left := Left + V_sub_width; Width := Width - (V_sub_width+10); Height := Height - (V_sub_heigth+10); Application.ProcessMessages; sleep(V_sleep); end; end else begin /////////////ABRINDO O FORM NOVAMENTE V_sub_width := (V_Width div qtd_quadros); V_sub_heigth := (V_Height div qtd_quadros); pt_medio := 1; while pt_medio <= (qtd_quadros div 2) do begin pt_medio := pt_medio + 1; Top := Top - V_sub_heigth; Left := Left - V_sub_width; Width := Width + (V_sub_width + 10); Height := Height + (V_sub_heigth + 10); Application.ProcessMessages; sleep(V_sleep); end; end; end; end; ///////CHAMANDO A PROCEDURE //////PARA FECHAR O FORM Animar_Form(30,10,Form1.Width,Form1.Height, true); /////PARA ABRIR O FORM Animar_Form(30,10,500,200, false); O 30 -> Quatidade de quadros, eu uso em média 30 quadros
O 10 -> Sleep do projeto ou seja o tempo necessário de intervalo de quadros
O 500 -> Tamanho do form em width
O 200 -> Tamanho do form em Height



terça-feira, 17 de fevereiro de 2009

Entendendo a exceção DivideByZeroException

Artigos: AJAX aPHP - MYSQL - SQLSERVER - VB.NET - DELPHI - COMPACT FRAMEWORK - FIREBIRD
A exceção DivideByZeroException ocorre em tempo de execução quando tentamos dividir um valor integral ou decimal por zero. Veja um exemplo em VB.NET:
Module Module1
Sub Main()
Dim valor As Integer = 10

'tenta efetuar uma divisão por 0
Dim result As Integer = valor \ 0

Console.ReadKey()
End Sub
End Module
Ao tentarmos executar este trecho de código teremos a seguinte mensagem de erro:
System.DivideByZeroException was unhandled
Message="Attempted to divide by zero."
Source="Estudos_VB_Console"
StackTrace: ***

Veja que, por questões de espaço, resolvi omitir o rastreio da pilha de exceção. Contudo, o mais importante é a mensagem:
Attempted to divide by zero.

É por meio dessa mensagem que conseguimos identificar o erro. Veja agora como tratar esta exceção usando um bloco Try...Catch:
Module Module1
Sub Main()
Dim valor As Integer = 10
'tenta efetuar uma divisão por 0
Try
Dim result As Integer = valor \ 0
Catch e As DivideByZeroException
Console.WriteLine("Tentativa de divisão por zero - " _
& "Erro: " & e.ToString())
End Try

Console.ReadKey()
End Sub
End Module

quinta-feira, 5 de fevereiro de 2009

Dicas e Truques sobre consultas complexas no SQL Server

Artigos: AJAX - PHP - MYSQL - SQLSERVER - VB.NET - DELPHI - COMPACT FRAMEWORK - FIREBIRD

Totalização de resultados
Como elaborar uma coluna de saldo acumulando valores



Concatenação e delimitação
Como juntar vários resultados em uma única linha com algum caractér delimitador


O TOP “N”
Como retornar a N ocorrências relacionadas a um conjunto de registros


PIVOT & PIVOT dinâmico
Como transformar linhas em colunas usando o Operador PIVOT e superar suas limitações


Consultas Hierárquicas
Como elaborar consultas em relacionamentos hierárquicos (autorelacionamento)


domingo, 18 de janeiro de 2009

Backup no MySQL

Artigos: AJAX - PHP - MYSQL - SQLSERVER - VB.NET - DELPHI - COMPACT FRAMEWORK - FIREBIRD
Existem inúmeras maneiras de se fazer backup no MySQL. Creio que o modo mais utilizado seja o backup feito pelo comando 'mysqldump', que permite uma combinação enorme de parâmetros.

Em todos os comandos abaixo, substitua as palavras 'usuario', 'senha' e 'arquivo_saida'.

1. backup de todos os bancos existentes com conteúdo e estrutura (-A equivale a --all-databases):