ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

cadastro usando dbexpress

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
lfgdf
Novato
Novato


Registrado: Domingo, 29 de Novembro de 2009
Mensagens: 49

MensagemEnviada: Ter Dez 22, 2009 10:52 pm    Assunto: cadastro usando dbexpress Responder com Citação

pessoal estou tentando desenvolver um sisteminha simples, uma agenda, usando firebird e dbexpress, mas nao sei quais componentes sao usados pra fazer o cadastro, do contato, pois se fosse no interbase eu saberia usar, mas estou kerendo aprender agora no dbexpress, alguem poderia me ajudar?

obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qua Dez 23, 2009 1:28 am    Assunto: Responder com Citação

Amigo é simples, somente não vou expor o método de mestre/detalhe que é um pouco mais complicado, mas a ligação dos componentes eu explico:

Citação:

SQLCONNECTION
0 - Na paleta DBExpress clique no componente SQLConnection1 e dê um duplo clique em cima deste para configurar a conexao, supondo que vc já tenha um banco de dados já criado:

1 - Apos der um duplo clique no componente surgira uma tela, clique no botao + para adicionarmos uma conexão, em driver name escolha Interbase já que vc não deve ainda possuir um driver nativo para firebird como o UIB por exemplo;

2 - Dê um nome a sua conexão;

3 - Em DataBase coloque o diretório do banco de dados local
ficando assim:
propriedade | Local do Banco
Database = LocalHost:F:\Diretorio\CDS.FDB

4 - Mude a propriedade SQLDialect para 3


5 - Caso nao esteja configurado as propriedades Password e User_Name coloque respectivamente:
masterkey e sysdba


6-Em ServerCharset coloque WIN1252


7 - Mude a propriedade do connection LoginPrompt para False

Se vc usa o Firebird como servidor mude a VendorLib para FBClient.dll


Bem esta parte esta configurada...


SQLDATASET
1 - Adicione um SQLDataSet na mesma paleta DBExpress

2 - Mude a propriedade SQLConnection para SQLConnection1

3 - De um clique na propriedade CommandText e Digite o seguinte código:
SELECT * FROM TABELA

4 - Clique duas vezes no componente para chamar o Fields Editor e adicione todos os campos

5 - Selecione o campo da chave primaria e em providerflags marque:
pfInUpdate = False (Fará com que apliccão não passe nenhum valor para a chave primária, isto será atualizado pelo generator no banco de dados)
pfInUpdate = False
pfInWhere = True
pfInKey = True; (Desative se for utilizar num dbgrid)
6 - Mude a propriedade required da chave primária para false, pois o campo autoincremento sera gerado pelo banco de dados

7 - Selecione os outros campos e mude os providersflags
pfInUpdate = True
pfInWhere = False
pfInKey = False;

_____________________________________________________________
Como isto tem fins meramente didáticos, pois em produção jamais se chamariam todos os registros e principalmente em ambientes cliente/servidor

O certo seria assim:

SELECT CAMPO1, CAMPO2 FROM TABELA WHERE ID_COD = :PID_COD

Obs.: eu sempre coloco P antes dos parametros e deixo com o mesmo nome codigo, exceto em algumas situaçoes que deve ser deixado igualzinho.
Neste caso tem-se de dar um Fetch Params para chamar os parametros para o clientdataset

Mas assim teria sempre antes de pesquisar o que se quer alterar e nao trazer todos os registros para a tela...
_____________________________________________________________

DATASETPROVIDER

1 - Na paleta DataAccess coloque um DataSetProvider

2 - Aponte a propriedade DataSet do DataSetProvider para SQLDataSet1

2 - Mude a opção UpdateMode para upWhereKeyOnly


CLIENTDATASET

1 - Ainda na paleta DataAccess adicione um ClientDataSet

2 - Mude a propriedade ProviderName para DataSetProvider1

3 - Selecione o campo da chave primaria e em providerflags marque:
pfInUpdate = False
pfInWhere = True
pfInKey = True; (Desative se for utilizar num dbgrid)

4 - Mude a propriedade required da chave primária para false, pois o campo autoincremento será gerado pelo banco de dados

5 - Selecione os outros campos e mude os providersflags
pfInUpdate = True
pfInWhere = False
pfInKey = False;


DATASOURCE

1 - Na paleta DataAccess adicione um DataSource

2 - Ligue a propriedade DataSet para o ClientDataSet1, cuidado para não direcionar para o SQLDataSet, pois o mesmo é unidirecional...

DBRGID
1 - Em DataControls coloque um DBGrid e aponte sua propriedade DataSource para DataSource1

2 - De um duplo clique e adicione os campos que vc vai trabalhar

Adicione um botão e coloque para aplicar os dados no banco, isto utilizando o dbgrid Ok.

Não há muita diferença em se utilizar de outras formas

ClientDataSet1.ApplyUpdates(0);


Quanto ao mestre detalhe por ser mais complicado o arranjo dos componentes e utilizar bem mais componentes, infelizmente nao poderei explicar aqui...


PS.: nao sei se coloquei tudo aih, ou esqueci de algo, esta janelinha para postar incomoda pelo tamanho para conferir o que foi digitado...


bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB