Sunteți pe pagina 1din 4

Ol pessoal, vamos falar um pouco sobre Delphi e sua integrao com banco de dados Oracle 9i.

Estaremos neste artigo elaborando um pequeno cadastro de clientes onde poderemos realizar algumas operaes bsicas, tais como : inserir, alterar e excluir registros de uma tabela.

Farei primeiramente as ligaes com o Oracle, utilizando os componentes da paleta DBExpress do Delphi. Para este exemple utilize da : Paleta DBExpress: * SQLConnection * SQLQuery Paleta DataControls: * DBGrid Paleta DataAcess * DataSetProvider * ClientDataSet * DataSource Ligaes dos Componentes do Banco: 1 D um duplo clique no componente SQLConnection: 2- Defina uma nova conexo, tambm a Base de Dados, Usurio e Senha, previamente configurados na instalao do Client do Oracle e tambm LoginPrompt com False ( sempre passando os parmetros em Params ). 3 No componente SQLQuery defina a propriedade SQLConnection com o nome que foi dado ao componente SQLConnection. 4 Na propriedade SQL(Strings) do componente SQLQuery defina o SQL de consulta. Ex: select Clientes.Cdigo, Clientes.Nome, Clientes.Cidade from Clientes; 5 Ligue agora a propriedade DataSet do componente DataSetProvider ao SQLQuery. 6 Ligue a propriedade ProviderName do componente ClientDataSet ao DataSetProvider. 7 Ligue a propriedade DataSet do componente DataSource ao ClientDataSet.

8 Ligue a propriedade DataSource do DBGrid ao DataSource E finalmente para visualizar os dados no DBGrid ative o componente ClientDataSet (Active = True ). Sempre lembrando que para a conexo com DBExpress o componente SQLQuery somente o que contm a string de consulta e o componente ClientDataSet ser o responsvel para carreg-la. Passamos agora a manipulao desses dados que foram visualizados no grid. Para isso utilizarei o componente SQLStoredProc da paleta DBExpress. Antes porm de utiliz-lo no Delphi, precisaremos criar os procedimentos no banco. Ento mos a obra !! Utilize algum utilitrio para o Oracle de sua preferncia, o nativo do Oracle o SQL*Plus. Criando o procedimento de Incluso, Alterao e Excluso. CREATE OR REPLACE PROCEDURE IAE_CLIENTES( --Passagem dos Parmetros Tipo Char, PAR_CODIGO CLIENTES.CODIGO%TYPE, PAR_NOME CLIENTES.NOME%TYPE, PAR_CIDADE CLIENTES.CIDADE%TYPE ) AS --Comeo do corpo do Procedimento Begin --Condio para Incluso if Tipo = 'I' then insert into CLIENTES( CODIGO, NOME, CIDADE ) values (PAR_CODIGO, PAR_NOME, PAR_CIDADE); commit work; --Condio para Alterao elsif Tipo = 'A' then update CLIENTES set NOME = PAR_NOME, CIDADE = PAR_CIDADE

where CODIGO = PAR_CODIGO; commit work; --Condio para Excluso elsif Tipo = 'E' then delete from CLIENTES where CLIENTES.CODIGO= PAR_CODIGO; commit work; end if; end IAE_CLIENTES; -- Fim do corpo do Procedimento / OBS.: %TYPE IDENTIFICA QUAL TIPO DE PARAMETRO VOC EST USANDO NO DELPHI. De volta ao Delphi aps criado este procedimento no banco. Instancie agora neste formulrio os seguintes objetos: Paleta Standart * 1 Panel * 3 Edit * 3 Label Paleta Aditional * 3 BitBtn Paleta DBExpress * SQLStoredProc Boto Incluir : 1 Passe os Parmetros : SQLStoredProc1.ParamByName(Par_Codigo).Value:= Edit1.Text; //Cdigo SQLStoredProc1.ParamByName(Par_Nome).Value:= Edit2.Text; //Nome SQLStoredProc1.ParamByName(Par_Cidade).Value:= Edit3.Text; //Cidade SQLStoredProc1.ParamByName(Tipo).Value:= I; //Tipo ( incluso ) SQLStoredProc1.ExecProc; 2 D um Close e um Open no ClientDataSet para atualizar os dados e visualize-os no Grid.

Para os procedimentos de Alterao e Excluso repita a mesma operao com o SQLStoredProc somente ao invs de passar o parmetro I passe o A para alterao e E para excluso. Neste exemplo utilizamos Edit, ento para a visualizao precisaremos atribuir os valores do banco nos respectivos campos. Se houver necessidade, voc poder utilizar o componente SQLDataSet para ser usado em uma seqncia criada no banco. Proceda ento da seguinte forma: 1- Crie a Sequence no banco : CREATE SEQUENCE CLIENTES_CODIGO INCREMENT BY 1 NOCACHE START WITH 0 MINVALUE 0; COMMIT WORK; 2- Instancie o componente SQLDataSet no formulrio e na propriedade commandtext do memo insira: SELECT CLIENTES_CODIGO.NEXTVAL FROM DUAL; 3- No SQLDataSet ainda determine o SQLConnection setado para o SQLConnection que usamos no incio. Para se obter o valor desta seqncia, s usa-lo da seguinte forma: SQLDataSet.Open; //obtendo mais um nmero sequncial SQLStoredProc1.ParamByName(Par_Codigo).Value:= SQLDataSetNextval.AsInteger; //passando este nmero ao campo cdigo SQLDataSet.Close;//fechando o componente Toda vez que o componente SQLDataSet aberto ele dispara a rotina para gerao de um novo nmero, portanto se voc usar este componente para a gerao de nmeros seqenciais no Oracle, no precisar se preocupar como control-lo. isso a pessoal, espero ter ajudado, at uma prxima. Valeu ! Desenvolvido por:Jos Guilherme Blumer fonte: DelphiBR Publicado por: Wesley Bento Moreira

S-ar putea să vă placă și