| 
			
				|  | 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.
 
 |  |