Cadastre-se Revistas DevMedia Cursos
 

Space de EVERSON BORGES VOLACO
Busca Autor


Últimas 20 atualizações de EVERSON BORGES VOLACO

Artigo - Controlando o estado dos botões


Controlando o estado dos botões

Utilizando os eventos do TDataSouce para controlar os botões de uma tela de cadastro

Neste artigo veremos como manipular o estado dos botões de uma tela de cadastro através dos eventos disponíveis no componente DataSource. Através dos eventos OnStateChange e OnDataChange podemos habilitar e desabilitar os botões do formulário de cadastro de acordo com estado ou posição do registro na tela.

 

Nota. Neste artigo foram utilizados o Delphi 7 e o InterBase 7.5 para a criação do exemplo.

Criando a aplicação de exemplo

Inicie uma nova aplicação Delphi (File|New|Application), altere o nome do formulário para FrmPrincipal e save sua unit como untFrmPrincipal.pas. Para o arquivo de projeto de o nome de Customer.dpr. Neste exemplo utilizaremos o banco de dados Employee.gdb o qual acompanha a instalação do InterBase. Adicione ao formulário os componentes SQLConnection (dbExpress), SQLDataSet (dbExpress), DataSetProvider (Data Access), ClientDataSet (Data Access) e Data Source (Data Access). Configure os mesmos como mostra a Figura 1.

 

 

Figura 1. Configurando os componentes não visuais de acesso a dados.

 

Configure o componente SQLConnection (conEmployee) para acessar o banco de dados Employee.gdb. Selecione o componente SQLDataSet (datasetCustomer) e entre com a seguinte instrução SQL em sua propriedade CommandText:

 

SELECT * FROM CUSTOMER;

 

Adicione alguns componentes visuais ao formulário e configure-os de acordo com a Figura 2.

 

 

Figura 2. Adicionando e configurando os componentes visuais da aplicação de exemplo.

 

Selecione o DBGrid e aponte sua propriedade DataSource para dsCustomer. Selecione o formulário e no seu evento OnCreate entre com o seguinte código:

 

conEmployee.Connected := True;

cdsCustomer.Open;

 

Ainda com o formulário selecionado digite o seguinte código em seu evento OnClose:

 

cdsCustomer.Close;

conEmployee.Connected := False;

 

Como comentado no início do artigo utilizaremos dois eventos disponíveis no DataSource (dsCustomer) para habilitar e desabilitar todos os botões do formulário de acordo com a operação efetuada pelo usuário. Configure os botões de acordo com a tabela abaixo:

 

Botão

Name

Evento OnClick

ShowHint

Hint

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
23/02/2010 13:55:00





Artigo - Curso Firebird/InterBase - Capítulo 10 - Exercícios

Capítulo 10 - Exercícios

Nota: Os valores mostrados nas figuras foram adicionados utilizando uma ferramenta, por isso, os valores de campos strings são aleatórios.

Através de alguma ferramenta de administração de banco de dados, crie os seguintes comandos SQL no banco de dados que criamos nesse curso:

1.  Selecionar os dados da tabela Bairro que sejam da cidade de São Paulo;

2.  Selecionar os dados da tabela Caixa no período de 01/12/2005 e 15/12/2005 e que sejam do tipo Entrada (‘E’);

3.  Selecionar os dados da tabela Caixa do tipo Saída (‘S’) e de valor maior que R$ 100,00;

4.  Selecionar os dados da tabela Cidades que sejam do Brasil;

5.  Selecionar os Cli

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
26/11/2009 17:09:00





Video aula - Trabalhando com Threads


Título: Trabalhando com Threads.

Descrição: Veja nesta vídeo aula como trabalhar com vários processos no Delphi utilizando Threads.

Duração: 08:21 min.

Autor: Everson Volaco

Info: Audio/Video

 

-->">
21/09/2009 15:07:00





Artigo - Artigo SQL Magazine 1 - Otimização de Comandos SQL


Esse artigo faz parte da revista SQL Magazine edição 01. Clique aqui para ler todos os artigos desta edição

Otimização de Comandos SQL

 

Mesmo um aplicativo bem projetado poderá experimentar problemas de desempenho se a frase SQL que usa for mal construída. Falhas no projeto do aplicativo e na construção do SQL causam a maioria dos problemas de desempenho em bancos de dados projetados adequadamente. Veremos neste artigo como melhorar o comando SQL, para garantir maior performance em sua execução, tendo como base o ORACLE.

 

A forma como o banco de dados se organiza para responder a requisição de um aplicativo é diretamente influenciada pela maneira como a frase SQL é construída. Existem vários pontos a serem observados nesta construção. O caminho mais curto é o uso de índices para auxiliar a pesquisa mas, é importante observar, a simples criação de um índice nem sempre é o melhor caminho para otimização de comandos SQL.

 

Alguns conceitos importantes

Antes de partir para como e quais as melhores formas de se aplicar e se escrever  comandos SQL é  importante relembrarmos alguns conceitos importantes.

Existem dois métodos básicos utilizados pelos SGDB´s para localizar dados, também conhecidos como caminhos de acesso. São eles:

-          Full Table Scan: Leitura seqüencial, bloco por bloco, de toda a tabela. Neste método, são verificados registro a registro os critérios de seleção.

-          Index Search: Procura de um índice sobre a coluna definida no critério de seleção, identificando a localização dos registros qualificados.

 

O ORACLE possui seu próprio mecanismo de otimização, chamado otimizador, para executar comandos SQL e dinamicamente determinar que caminho de acesso seguir, dependendo das informações disponíveis. O melhor caminho de acesso é, geralmente, o uso de índices, mas isso nem sempre é verdadeiro. Por exemplo, se existir uma forma de identificar diretamente um registro pelo seu endereço físico, a resposta será mais rápida. (neste caso estamos falando do rowid, endereço físico do registro em uma tabela ORACLE).

 

Ex.:

SELECT rowid INTO :emp_rowid FROM EMP

WHERE emp.empno = 5353 FOR UPDATE OF emp.ename;

 

UPDATE emp SET emp.ename = "OTIMIZADOR"

WHERE rowid = :emp_rowid;

 

Excluindo registros duplicados:

 

DELETE FROM emp e

WHERE e.rowid > (SELECT MIN(x.rowid) FROM emp x

WHERE x.empno = e.empno);

 

Algumas informações para auxiliar o acesso do otimizador:

Verificar nas colunas dentro da cláusula WHERE:

-          Que colunas são índices;

-          Que colunas estão definidas como NOT NULL;

-          Que índices podem ser usados.

 

É possível ajudar o otimizador a procurar o melhor caminho de acesso através da criação de índices e clusters, o que será considerado a partir de agora.

 

Regras de Utilização de Índices

Um índice será usado se :

-          o índice existir;

-          a coluna índice for referenciada na cláusula WHERE;

 

Um índice pode ser usado para testes de:

-          Igualdade:

SELECT e.empno, e.ename FROM emp e

WHERE e.job = ‘CLERK’;

-          Intervalo ilimitado:

SELECT e.empno, e.ename FROM emp e

WHERE e.job > ‘CLERK’;

-          Intervalo limitado:

SELECT e.empno, e.ename FROM emp e

WHERE e.job BETWEEN ‘CLERK’ AND ‘JONES’;

 

A criação de índices deve ser feita com critério. A atualização (inserts, updates e deletes) em tabelas de dados gera uma ação equivalente nos índices, sendo que o tempo de atualização dos índices é superior ao de atualização da tabelas, pois além da colocação do registro em seqüência dentro do índice é necessário a atualização dos ramos das árvores do índice.

Considerando os detalhes acima, índices devem ser criados somente quando necessário, pois a sua simples existência não implica em melhoria de performance, podendo muitas vezes ser a origem de perda de performance.

 

Condições de não utilização de Índices

 

1)    Funções ou Operadores Aritméticos

Se a coluna índice for modificada por uma função ou por operadores aritméticos (+,-,*,/), o índice não será utilizado.

Um índice sobre SAL ou ENAME não será utilizado nos seguintes casos:

 

SELECT e.ename, e.empno FROM emp e

WHERE e.sal*12 = 2400;

 

SELECT e.ename, e.empno FROM emp e

WHERE SUBSTR(e.ename,1,3) = ‘JON’

 

Nos casos acima, as seguintes modificações permitem o uso de índice:

 

SELECT e.ename, e.empno FROM emp e

WHERE e.sal = 2400/12

 

SELECT e.ename, e.empno FROM emp e

WHERE e.ename LIKE ‘JON%’

 

2)    Conversão de Dados

A conversão de dados pode inibir a utilização do índice da coluna em questão se usado inadvertidamente.

Na seguinte sentença, um índice sobre a coluna HIREDATE não será usado:

 

SELECT e.ename, e.empno FROM emp e

WHERE TO_CHAR(e.hiredate, ‘month dd,yyyy’) = ‘january 23,1982’

        

Esta mesma sentença SQL, modificada, usará o índice como segue:

 

SELECT e.ename, e.empno FROM emp e

WHERE e.hiredate = to_date(‘january 23,1982’ , ’mounth dd,yyyy’)

 

Se na cláusula WHERE os predicativos utilizam dados de tipos diferentes, o ORACLE automaticamente converte um deles sem a preocupação sobre a melhor escolha para a utilização dos índices. A conversão por default é escolhida, pelo caso mais comum (Ex.: O valor de uma coluna, onde o tipo é number, rowid ou date, comparado com uma constante de tipo char).

Em qualquer caso é muito recomendado o controle da conversão dos dados de maneira explícita.

 

3)    Caso de colunas com valores NULL

Os índices não contêm referência para valores do tipo null. Isto quer dizer que os valores null podem ser recuperados somente através de uma leitura seqüencial completa da tabela (Full Table Scan).

No comando abaixo o índice sobre a coluna COMM não será utilizado:

 

SELECT e.ename, e.empno FROM emp e

WHERE e.comm is null

      

Neste código o otimizador considera que a maioria dos registros dentro da tabela são valores not null e irá escolher a leitura seqüencial (Full Table Scan):

 

SELECT e.ename, empno FROM emp e

WHERE e.comm > = 100

 

A velocidade de execução dependerá dos dados da tabela. Se a maioria dos registros contiver valores não nulos, a cláusula "comm is not null" será mais rápida.

Os índices concatenados não terão referência para os registros onde todas as colunas que o compõem tiverem valores nulos.

 

4)    Caso de predicados com a condição "NOT EQUAL"

Os índices sobre colunas referenciadas pela condição not equal não serão usadas. O otimizador considera que o número de registros que irão satisfazer a condição será maior do que os registros que não a satisfazem.

O índice sobre DEPTNO não será usado na seguinte sentença SQL:

 

SELECT e.ename, e.empno FROM emp e

WHERE e.deptno !=10

 

No comando abaixo, o índice sobre deptno será utilizado:

 

SELECT e.ename, e.empno FROM emp e

WHERE not e.deptno > 20

 

O ORACLE executará a sentença SQL como e.deptno <= 20

 

5)    Casos de sentenças SQL com cláusula "ORDER BY"

A cláusula ORDER BY aumenta consideravelmente a necessidade de recursos para execução de uma sentença SQL. Em geral, tabelas temporárias serão necessárias para operação de sort.

É possível evitar a utilização de tabelas temporárias se um índice sobre a coluna alvo do order by existir. As seguintes condições devem ser cumpridas:

-          A coluna order by deve ser definida com not null;

-          A coluna order by deve ser uma simples coluna índice ou as primeiras colunas de índice concatenado;

-          A cláusula order by deve conter somente colunas e não expressões;

-          Não deve haver qualquer cláusula group by, distinct ou for update;

-          Não deve haver nenhum outro acesso alternativo que seja prioritário sobre o índice da coluna order by;

 

A seguinte sentença SQL será executada via índice em DNAME se os requisitos mencionados acima forem respeitados:

 

SELECT d.dname FROM dept d order by d.dname;

 

SELECT d.dname, d.deptno FROM dept d

WHERE d.loc = ‘dallas’ order by      d.dname;

 

SELECT d.dname, d.loc FROM dept d

WHERE d.dname != ‘accouting’ order by d.dname;

 

Na sentença abaixo, se um índice sobre a coluna LOC existir, tornar-se-á prioritário e o índice sobre dname não será usado:

 

SELECT d.dname, d.deptno FROM dept d

WHERE d.loc = ‘dallas’ order by      d.dname;

 

6)    Casos de sentenças SQL contendo funções MAX ou `MIN

Um índice será usado para executar uma sentença SQL com MAX ou MIN se as seguintes condições forem satisfeitas:

-         

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
05/08/2009 09:35:00





Video aula - Trabalhando com arquivos XML no Delphi


Título: Trabalhando com arquivos XML no Delphi.

Descrição: Veja nesta vídeo aula como trabalhar com arquivos XMl no Delphi.

Duração: 08:38 min.

Autor: Everson Volaco

Info: Audio/Video

 

-->">
20/05/2009 15:57:00





Video aula - Mestre/Detalhe com dbExpress


Título: Mestre/Detalhe com dbExpress.

Descrição: Veja nesta vídeo aula como trabalhar com Master/Detail utilizando dbExpress.

Duração: 08:31 min.

Autor: Everson Volaco

Info: Audio/Video

 

-->">
19/05/2009 14:01:00





Video aula - Criando campo "auto-incremento" com generator no Firebird


Título: Criando campo "auto-incremento" utilizando Generator no Firebird.

Descrição: Veja nesta vídeo aula como criar um campo auto-incremento no Firebird, utilizando o objeto Generator.

Duração: 07:30 min.

Autor: Everson Volaco

Info: Audio/Video

-->">
16/04/2009 09:48:00





Exemplo - Módulo I - Relatórios com QuickReports (e-Book Atualizado e Corrigido)


Módulo I - Relatórios com QuickReports

capaModulo2_Relatorios.jpg

-->">
23/03/2009 12:20:00





Artigo - Curso InterBase/Firebird - Parte 4 - Instalação do IB/FB no Windows e Linux

Instalação do IB/FB no Windows e Linux

Nesse capítulo veremos como instalar e iniciar, tanto no ambiente Windows como no Linux, o banco de dados InterBase e Firebird. A instalação desses bancos é bastante simples no ambiente Windows. No Linux também não há muito segredo para instalar e iniciar o banco de dados.

Durante esse capítulo, mostraremos de forma bastante detalhada as etapas para instalação e configuração do servidor de banco de dados InterBase e Firebird.

Nota: A configuração mínima de hardware recomendado pela Borland é de 32 MB de memória e 20 MB de espaço livre em disco para a instalação completa do produto. A recomendação ideal para o funcionamento do InterBase é de 64 MB de memória.

InterBase

A instalação do InterBase 7.5 é bastante rápida e simples. Veremos a seguir, a instalação passo a passo da versão trial (disponível para download no site oficial) no ambiente Windows.

Instalação no Windows

Para o ambiente Windows, o InterBase 7.5 está homologado para as versões Windows 2000 (Service Pack 2), Windows Server 2003, Windows NT 4.0 (Service Pack 6A ou superior) e Windows XP. Isso não significa que o InterBase não funcione em outras versões do Windows, apenas que a Borland recomenda e garante o funcionamento do InterBase nas versões descritas anteriormente.

Para fazer o download da versão Server Edition de avaliação, você precisa especificar um e-mail para receber a chave de registro do produto para poder utilizá-lo durante o período de avaliação que é de 90 dias. Caso o e-mail informado para receber o arquivo de registro não esteja registrado na Borland, um registro será solicitado antes que o download possa ser executado.

Nota: A Borland envia um arquivo TXT para o e-mail informado no registro, que deve ser copiado para o diretório de instalação do InterBase.

Na página de Login basta clicar sobre o botão New User para criar um usuário registrado. O registro é rápido, simples e g

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
07/08/2008 17:33:00





Artigo - Curso InterBase/Firebird - Parte 3 - Principais características e diferenças do IB/FB

Principais características e diferenças do IB/FB

Nesse capítulo, veremos algumas das principais características de cada servidor de banco de dados, como também, algumas diferenças existentes entre eles. Como visto no Capítulo 1, o Firebird nasceu a partir do código fonte do InterBase 6.0, onde, a partir de então passou a ser mantido e melhorado por uma grande equipe, mantendo sua distribuição e evolução seguindo a licença IPL.

O InterBase por sua vez, continuou, e continua evoluindo, onde a Borland mantendo e implementando nossas funcionalidades em seu banco de dados, que, atualmente encontra-se na versão 7.5.

No primeiro capítulo também foram listados algumas das principais características de cada banco de dados. Nesse terceiro capítulo listaremos mais algumas características e particularidades existentes no InterBase e no Firebird. Na Tabela 3.1 temos as principais características/funcionalidades dos dois bancos. Vale salientar que algumas características/funcionalidades do Firebird, não presentes na Tabela, podem ser implementadas na versão 2.0 do servidor.

Característica/Funcionalidade

InterBase 7.5

Firebird 1.5

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
07/08/2008 17:33:00





Artigo - Curso Interbase/Firebird - Parte 2 - Conceitos básicos sobre banco de dados

Conceitos básicos sobre banco de dados

Um banco de dados é uma coleção de tabelas inter-relacionadas, onde cada tabela armazena dados específicos. Banco de dados funciona como um contêiner de objetos, onde além de armazenar as tabelas e seus dados, pode conter índices e outros objetos para ajudar no gerenciamento dos dados.

Tabelas

O principal objeto de um banco de dados relacional é a tabela (Table). Um banco de dados pode conter diversas tabelas armazenadas, onde essas tabelas podem se relacionar entre si, contendo a habilidade de relacionar informações entre diferentes tabelas. Uma tabela é uma matriz de duas dimensões contendo colunas e linhas (Figura 2.1).

 

 

image001b.gif

 Figura 2.1. Tabela em um banco de dados relacional

Cada tabela do banco de dados é formada por linhas e colunas, onde cada coluna diz respeito a um campo da tabela e cada linha a um registro.

Colunas

Uma tabela pode ter uma ou mais colunas (Columns). Em um modelo relacional cada coluna é chamada de atributo. Em um banco de dados, uma coluna pode ser chamada também de campo (Field). Cada coluna pode armazenar um tipo diferente de dados. Normalmente a partir do nome dado a coluna, podemos identificar o tipo de dados armazenados nela. Como cada coluna pode armazenar um tipo diferente de informação, ela pode ser definida como um determinado tipo (Type).

Em um banco de dados relacional, uma coluna pode ser criada com diversos tipos diferentes, como texto, número, data, hora etc. Ao definir uma coluna como do tipo data (Date), por exemplo, os valores a serem armazenados nessa coluna serão validados para ser

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
07/08/2008 17:31:00





Artigo - Curso InterBase/Firebird - Parte 1 - Introdução geral

Sobre este curso

 

Este curso on-line da DevMedia sobre os bancos de dados, InterBase e Firebird é dividido em dois módulos: Básico e Avançado. O objetivo desses módulos, é abordar por completo os bancos de dados InterBase e o Firebird.

O Módulo I (Básico) é destinado tanto a desenvolvedores que já conhecem conceitos de banco de dados e já utilizam algum em suas aplicações, mais querem conhecer e passar a utilizar o InterBase e/ou Firebird, e a iniciantes no assunto sobre bancos de dados relacionais.

Abordaremos conceitos básicos como definição de tabelas e campos, passando pela instalação dos produtos e ferramentas para gerenciamento dos mesmos, como também veremos a linguagem SQL usada para definição e manipulação de dados. No final desse módulo, veremos como criar aplicações Delphi fazendo acesso e uso das funcionalidades básicas de ambos os bancos de dados.

O Módulo II (Avançado) é destinado a desenvolvedores que já estudaram e aplicaram os tópicos do Módulo I ou que já conheçam e utilizam os bancos IB/FB e queiram aperfeiçoar seus conhecimentos para que possam aplicar conceitos avançados em seus bancos de dados, para através disso, ter maior estabilidade, gerenciamento, performance e segurança em suas aplicações de banco de dados InterBase/Firebird.

Esse módulo, abrange conceitos como Views, Stored Procedures, Triggers e Generators, como também toda a parte de gerenciamento de grupos e usuários, e administração do servidor e seus banco de dados hospedados. 

 

 

Nota: Para uma melhor estruturação das figuras e tabelas, criamos uma convenção quanto à numeração das mesmas. Por exemplo, a primeira legenda a seguir refere-se à Figu

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
07/08/2008 17:28:00





Curso Online - Curso Online - Sistema SysCash

CURSO ONLINE

 

SysCash

 

Autor: Everson Volaco

Visibilidade: para assinantes da revista ClubeDelphi ou disponível através de Créditos DevMedia

 

Confira nesse curso online os principais tópicos e funcionalidades referente ao sistema SysCash publicado a partir da edição 63 da ClubeDelphi. Veja como trabalhar com heranção de formulários, usuários do banco de dados, relatórios parametrizados no Rave Reports e muito mais!

 

Clique aqui para entrar na página do curso!

-->">
18/03/2008 11:28:00





Video aula - Trabalhando com constraints e integridade referencial - Módulo I - Capítulo 9


Autor: Everson Volaco
Título: Curso de InterBase Firebird - Módulo I , capítulo 9
Tempo: 28:54
Mini resumo: Esta é a sexta vídeo aula do  capítulo 9 , Módulo I. Ela  mostra passo a passo como trabalhar com constraints e integridade referencial
cnologias utilizadas: InterBase , Firebird 
Exemplos construídos: Criação de constraints e integridade referencial
Palavras chaves: InterBase , Firebird 

-->">
13/03/2008 10:45:00





Video aula - Utilizando Triggers e Generators - IBExpert - Módulo II, Capítulo 4


Autor: Everson Volaco
Título: Curso de InterBase Firebird - Módulo II , capítulo 4
Tempo: 13:09
Mini resumo: Esta vídeo aula  mostra como utilizar Triggers e Generators no IBExpert , banco de dados InterBase e Firebird
Tecnologias utilizadas: InterBase , Firebird
Exemplos construídos: Instalação
Palavras chaves: InterBase , Firebird
-->">
13/03/2008 10:43:00





Video aula - Utilizando InterBase/Firebird com IBExpress - Módulo I - Capítulo 11


Autor: Everson Volaco
Título: Curso de InterBase Firebird - Módulo I , capítulo 11
Tempo: 52:16
Mini resumo: Esta nona vídeo aula mostra como utilizar o os componentes IBExpress com InterBase/Firebird
Tecnologias utilizadas: InterBase , Firebird 
Exemplos construídos:
Palavras chaves: InterBase , Firebird 

-->">
13/03/2008 10:35:00





Video aula - Instruções SQL - Buscando dados parte 1 - Módulo I - Capítulo 10


Autor: Everson Volaco 
Título: Curso de InterBase Firebird - Módulo I , capítulo 10
Tempo: 39:51
Mini resumo: Esta vídeo aula  mostra várias instruções select no InterBase e Firebird Tecnologias utilizadas: InterBase , Firebird 
Exemplos construídos: Instalação
Palavras chaves: InterBase , Firebird 

-->">
13/03/2008 10:28:00





Video aula - Utilizando Dominios , Tabelas Índices com IBExpert - Módulo I - Capítulo 8


Autor: Everson Volaco
Título: Curso de InterBase Firebird - Módulo I , capítulo 8
Tempo: 7:44
Mini resumo: Esta é a sexta vídeo aula do  capítulo 8 , Módulo I. Ela  mostra passo a passo como criar e utilizar Dominios , Tabelas e Índices com IBExpert
Tecnologias utilizadas: InterBase , Firebird , IBExpert
Exemplos construídos: Criação de Dominios , Tabelas e Índices  com IBExpert
Palavras chaves: InterBase , Firebird , IBExpert

-->">
13/03/2008 10:25:00





Video aula - Instruções SQL para manipulação de dados Módulo I - Capítulo 10


Autor: Everson Volaco 
Título: Utilizando Tabelas no IBExpert - Módulo I - Capítulo 10
Tempo:
Mini resumo: Veja nesta vídeo aula do Módulo I - capítulo 10:Instruções SQL para manipulação de dados
Tecnologias utilizadas: 
Exemplos construídos: 
Palavras chaves:
-->">
13/03/2008 10:24:00





Video aula - Criando e gerenciando banco de dados IB/FB - Módulo I , capítulo 7


Autor: Everson Volaco 
Título: Criando e gerenciando banco de dados IB/FB -  Módulo I , capítulo 7
Tempo:
Mini resumo: Veja a quinta vídeo aula do Módulo I , capítulo 7 : Criando e gerenciando banco de dados IB/FB
Tecnologias utilizadas: 
Exemplos construídos: 
Palavras chaves:
-->">
12/03/2008 16:43:00





 

Everson Borges Volaco (everson@rhealeza.com.br) é desenvolvedor e instrutor certificado Borland, com experiência em aplicações cliente/servidor, usando Delphi, Interbase e Oracle. Possui três certificações oficiais Borland: Borland Delphi 7.0, Borland CaliberRM 6.0 e Borland StarTeam 6.0.
Arquivo de atualizações
 2010
 2009
 2008
 2007
 2006
 2005

Estatísticas do Autor:
Número de posts: 132
Características dos posts deste autor:
Conteúdo:
Utilidade:
115 7
 
DevMedia Group - Tel: (21) 3382-5038 - www.devmedia.com.br
Todos os Direitos Reservados a DevMedia Group