 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
lfgdf Novato

Registrado: Domingo, 29 de Novembro de 2009 Mensagens: 49
|
Enviada: Ter Dez 22, 2009 10:52 pm Assunto: cadastro usando dbexpress |
|
|
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 |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Qua Dez 23, 2009 1:28 am Assunto: |
|
|
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 |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|